| Age | Commit message (Collapse) | Author | Files | Lines |
|
The character following a movement_key command should not be subject to
keymap translation since it is used to find characters in the document.
|
|
|
|
|
|
|
|
Previously this was done implicitly through the primary cursor
which was always adjusted when a new cursor is being created.
However, this is no longer the case and we do not want to iterate
through all cursors when creating a new one.
In the longterm we might want to store cursors in a contiguous
memory location (i.e. an array) instead of chaising pointers
all over the place.
|
|
We currently have the invariant that the primary cursor is always
placed within the visisble viewport.
Previously view_cursors_new would automatically make the new cursor
primary. This in turn causes the viewport to be adjusted triggering
lots of unnecessary redraws. As a result commands creating many new
selections might become unbearably slow.
Instead the caller has to explicitly make the new cursor primary.
|
|
|
|
This should fix #412 properly.
|
|
|
|
|
|
The argument needs to be a valid regular expression. It currently
clobbers the last used search term and hence allows repeated searches
using `n` and `N` respectively.
|
|
|
|
Commit 3570869c removed the lexers sub directory from the Lua search
path. Update the comment and readme to reflect this change.
|
|
|
|
|
|
This should also (at least partially) address the issues raised
in #440 and #442.
|
|
The cursor needs to be adjusted after every insertion, not
just the first one. The implementation is currently rather
ugly because it clobbers the dot register with pseudo keys.
|
|
Rather than inserting a newline and then looking for leading white space
of the previous line we now gather the white space before newline insertion.
Also we no longer indent empty lines.
Close #472
|
|
Releases for attr and acl are pretty old and their build systems are
really borked. The code in git head looks a lot better, so use that.
|
|
|
|
Make sure the selection setting code (used to restore selections)
does not move the cursor.
Fix #479
|
|
Can be NULL if no cursor is associated with the given selection (this is
currently never the case).
Avoids a loop through all cursors when clearing selections.
|
|
This esentially performs an insertion sort. Rather than iterating the list
from the start every time keep track of the latest change and optmize for
monotonically increasing file positions.
|
|
Terminal.app sets $TERM=xterm-256color and ships a corresponding
terminfo description advocating that it is capable of color changes
to the 256 color palette when in fact it can not.
We introduce a new boolean option "change-256colors" which is
true by default but can be used to disable color changes. It is
automatically set if Terminal.app is detected using $TERM_PROGRAM.
This should fix display artifacts as described in #456.
|
|
|
|
|
|
We had several elf executables that were not stripped properly. Move the
filenames to a dedicated variable and use that to not miss anything.
|
|
Does not work for the current implementation of `O` because the
"lookbehind" i.e. second to last processed key is `<Up>` and not
`<Enter>`.
Fix #383
|
|
Currently the key handling functions do not know through which mapping
they were invoked. As an example the `count` handler exploits the
implementation detail that the input queue is stored in contiguous
memory, meaning `keys[-1]` gives access to the digit being pressed.
This adds infrastructure to keep track of the two most recently processed
keys of the input queue.
The information is guaranteed to be accurate for the initial invocation
of the key handler but will be overwritten in case new keys are pushed
to the input queue (e.g. through vis_keys_feed).
|
|
Hook it up via Lua to <C-k> in insert and replace mode.
Close #460 #475
|
|
|
|
|
|
A count of zero is different than specifying no count.
This fixes `0G` which previously moved to the start of the file.
Fix #474
|
|
This should fix segfaults for commands like `:{ q i/foo/ }` or
`:x/pattern/ q` where a command invalidates the current window.
The checks are a bit too strict, for example a destructive command at the
end of a non-nested group would be fine, but is currently also rejected.
|
|
Previously something like `5ifoo<Escape>:<Escape>` would insert
foo into the command prompt.
|
|
|
|
|
|
|
|
<Enter> at the end of the file now inserts two newlines, unless there is
already one in place. This ensures that in 'normal' operation the file
is always new line terminated (as mandated by POSIX). It also means that
there is no problem displaying the right amount of ~ symbols at the end
of the file.
Unlike in vim the cell beyond the end of the file remains adressable
even in normal mode. This means something like the following (starting
from an empty file) might be a little confusing:
o<Escape><Left>dd
Because the starting position is beyond the last newline of the file,
nothing will be deleted.
For now we prefer to avoid the additional complexity, and difference
in behavior between normal and insert mode, needed to fix this slight
inconsistency.
Fix #294
|
|
Handle zero length pieces gracefully. At some point
we should write a comprehensive set of unit tests
for the iterator API.
|
|
We already did this change for acl (commit cc551cb0). In attr it shows
slightly different symptoms and happens for parallel builds only. The
fix is the same.
|
|
While memory consumption should be improved, backward searches
will still be slow, because they are implemented in terms of
repeated forward searches. It needs to be investigated whether
the underlying automaton can have its transitions reversed and
essentially run backwards, as is the case in sam.
|
|
|
|
|
|
|
|
Strictly speaking we actually not wrap around, but search
backwards starting from the first cursor. This is seems
more useful when for example renaming a local variable
but not starting from its declaration.
Close #305
|
|
|
|
For any reason acl decides do build getfacl and setfacl on `make [...]
install-lib install-dev`, which may fail. Make sure to not fail by
installing from libacl and include subdirectories.
|
|
|
|
The manual was already mentioning that.
Fix #468
|