| Age | Commit message (Collapse) | Author | Files | Lines |
|
By now we have efficient forward searches using the TRE regex backend.
Further improvements can be discussed in #488.
Close #260
|
|
Fix #487
|
|
|
|
Fixes CID 141179
|
|
Fixes CID 137371
|
|
Fixes CID 141180
|
|
|
|
We now guarantee the existence of at least one non-sentinel
piece at all time and allow iterators to recover from these
delimiting pieces.
|
|
In an ideal world this should never happen. However,
if for some reason all cursors/selections become
invalid, default to an empty range. This at least
allows to terminate the editor gracefully whereas
before the command would silently be ignored.
|
|
Unlike EOF address 0 needs no special treatment.
|
|
This should fix display issues when entering the first newline of a file.
|
|
|
|
This allows lines like
: ${FOO:="${bar}/baz"}
to be highlighted correctly.
|
|
|
|
Fix `gN` and delimited inner variants when given a count.
|
|
|
|
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.
|