| Age | Commit message (Collapse) | Author |
|
Various places in Kakoune code used to modify selections so that
cursors would not lie on an end of line. Remove those to increase
Kakoune's consistency and simplicity.
Now that end of lines are highlighted separately, they should not
be handled specially in most commands.
|
|
|
|
l and h are now respectively "next character" and "previous character"
|
|
When on an end of line, certain behaviours can be surprising, for
example delete will join the following line (which makes sense, and
is consistent, but hard to predict if we do not know the cursor is
on and end of line).
As Kakoune is moving more and more towards treating end of lines
as any other character, making it clear when the cursor lies on
them seems like a good way to reduce surprise.
|
|
Avoiding end of line is a behaviour we avoid (pun intended) more and more
in Kakoune source code, now that end of lines are regularly selected, it
makes no sense to just to next line when last modification lies on an EOL
(and it probably did not make much sense back when that code was written).
|
|
select_sentence could create a buffer iterator preceeding the
buffer begin, leading to a crash trying to read line -1.
|
|
disabled"
This reverts commit 55621fb4cc9c01972317182dd6a8ed3ced0e1f9e.
This should not be necessary as :exec/eval already save those registers
and reset them by default, and it breaks the ability to use those
registers during an eval/exec (as the commands behave differently)
|
|
There does not seem to be any reasonable use cases of not collapsing
jumps when the input is not comming from the user. Always collapse
them.
It could make sense to move jump collapsing out of context_wrap as
in general any action not comming directly from the user should
collapse them, at the moment a comment or mapping will not collapse
jumps, which is unfortunate.
|
|
Reword various comments to make some tricky parts of the regex
engine easier to understand.
|
|
|
|
|
|
|
|
informations, dont, incrementaly, alignement
|
|
|
|
|
|
|
|
Window::on_option_changed calls hooks, which can do anything
including adding/removing options in the various option managers
Fixes #1863
|
|
Avoid accumulating the flattened options into a vector, generate
a lazy range that will give the proper list.
|
|
Aliases are considered again in command name completion, but only
if they are more than 3 charactes long. This should prevent cluttering
with aliases while still letting long ones being completed.
|
|
|
|
Fixes #1860
|
|
The keymap mode was passed to on_next_key_with_autoinfo, which
means the mapping was applied directly by the InputHandler.
That led to the first key being interpretted as a mapping, then
all following keys being executed normally, as if typed in the
parent mode of the user mapping.
|
|
Fixes #1857
|
|
|
|
|
|
|
|
|
|
|
|
|
|
No need to go through a static list and then copy them one by
one in a vector.
|
|
|
|
|
|
Fixes #1825
|
|
Avoid storing a big vector of tokens, read them one by one, and
store only the current command.
|
|
|
|
|
|
Fixes #1843
|
|
It was specified only in two call sites, and everywhere now only uses
the pass policy, which is the default.
|
|
The debug buffer is a bit special as lots of events might mutate it,
permitting it to be modified leads to some buggy behaviour:
For example, `pipe` uses a ForwardChangeTracker to track buffer
changes, but when applied on a debug buffer with the profile flag
on, each shell execution will trigger an additional modification
of the buffer while applying the changes, leading to an assertion
failing as changes might not be happening in a forward way anymore.
Trying to modify a debug buffer will now raise an error immediatly.
|
|
forward (which controls if we are compling for forward or backward
matching) is always statically known, and compilation will first
compile forward, then backward (if needed), so by having separate
compiled function we get rid of runtime branches.
|
|
|
|
|
|
Limit to 100K of data for now, as we diff at the byte level.
|
|
|
|
Not only are display columns rarely used to give error positions,
but they make the parsing much slower as for each token we need to
compute the column in the line.
|
|
|
|
Fixes #1831
|
|
If we reload a buffer, it means its underlying file exists, hence the
New flag does not make sense anymore. It could be that the file appeared
on the filesystem in the meantime.
|
|
Fixes #1829
|
|
This fixes compilation on OSX where pkg-config is not installed
by default.
|