| Age | Commit message (Collapse) | Author |
|
The `history_since_<id>` value expansion allows incremental parsing of a
buffer's history.
declare-option int my_last_history_id
define-command my-process-history ...
# process the initial buffer history
my-process-history %val{bufname} 0 %val{history}
set-option buffer my_last_history_id 0
# only process new history changes on idle
hook buffer NormalIdle %{
evaluate-commands %exp{
my-process-history \
%%val{bufname} \
%%opt{my_last_history_id} \
%%val{history_since_%opt{my_last_history_id}}
}
set-option buffer my_last_history_id %val{history_id}
}
|
|
file.cc/hh should not know about Context, Buffer, etc... It should
be a pretty low level set of helper functions. Move buffer related
functions to buffer_utils and extract busy indicators to callers.
|
|
Commit 582c3c56b (Do not add trailing newline to non-scrolling fifo
buffers, 2024-01-28) completely forgot about stdin buffers,
breaking the ability to make them scrolling via "ge".
For example
while sleep 1; do
seq $LINES
date
done | kak
Let's fix that by adding the trailing newline back for stdin buffers.
Unlike "edit -scroll", don't scroll until the user explicitly moves
the cursor.
|
|
expose that method so that various commands can take advantage of
it for performance or simplicity purposes.
|
|
The real technical limit is with lines bigger than 2 GiB and buffers
with more than 2 Gi lines, refactor buffer loading to make it possible
to load those files.
Fix an overflow with the hash_data function at the same time
|
|
Keep track of inserted ranges instead of trying to re-derive them.
Fixes #3556
|
|
Pass the client stdin fd to the server and open a fifo buffer
from it.
Fixes #3394
|
|
This makes it possible to do :select `%val{selections_decs}` and to
correctly combine $kak_quoted with those.
|
|
Fixes #3284
|
|
|
|
|
|
Do not access Buffer::m_changes to find the inserted range, return
it directly from Buffer::insert and Buffer::replace. This fixes a
wrong behaviour where replacing at eof would lose the selected end
of line (as the implementation does not actually replace that end
of line)
|
|
Closes #3201
|
|
Buffer begin never has a word character before, and end is always
preceeded by an end-of-line.
Fixes #2420
|
|
As for the *debug* buffer, buffers with the debug flag wont get
used for cycling through buffer, or word completion.
|
|
Maintain it as well during buffer creation even if the hooks are not executed
in client context.
Fixes #818
|
|
Add a ColumnCount type and use it in place of CharCount whenever
more appropriate, take column size of codepoints into account for
vertical movements and docstring wrapping.
Fixes #811
|
|
|
|
|
|
Add a Buffer::replace method to handle the replacements properly
Fixes #633
|
|
|
|
Current behaviour was matching ^ $ for the current search start/end
(and \b was always matching begin/end as well).
Fixes #536
|
|
|
|
|
|
Reloading used to be implicit in the buffer creation function,
which is not always nice, as code that explicitely wanted to
reload a buffer could not say so.
|
|
time_t has a resolution of one second, which cause troubles when
a file changes multiple time during that same second.
|
|
|
|
|
|
|
|
|
|
Note that kakoune still needs to read the whole buffer first, only
once stdin is closed can it execute the keys.
|
|
|
|
This way, update only needs to be called once everything is done
as we always modify after the next selection to be used.
|
|
BufferCoord -> ByteCoord
DisplayCoord -> CharCoord
Moved their definition along with LineAndColumn into coord.hh
|
|
|
|
Will read to a *stdin* fifo buffer
|
|
|