| Age | Commit message (Collapse) | Author | Files | Lines |
|
Use upper case Unicode (U+XXXX) notation for `ga`.
Fix #568
|
|
Rename some structures, add typedefs for function pointers, remove unused
arguments from vis_run.
|
|
|
|
|
|
This simplifies the code and ensures consistent behavior.
|
|
|
|
Decouple register content from cursors. Previously each cursor had
exactly one corresponding register. Now each register can save a
list of values whose lifetime is not tied to the cursor.
If multiple cursors exist and a put with a register holding only
a single value is performed, then this value is inserted at every
cursor location. If there are fewer values available than cursors,
then only the matching ones will be used. If a register holding
multiple values is inserted in a single cursor context, only the
first value will be used. Another option would be to join all
existing values. The details of this behavior might be changed
in the future.
<C-r> in insert mode has not yet been adapted and register handling
in general needs to be cleaned up further.
Fix #527
|
|
|
|
As currently implemented this will only work for operations which are
individually fast, but repeated many times (e.g. `1000000itext<Escape>`).
|
|
Fix #534
|
|
|
|
Some people might prefer this for <Backspace> behavior. Except for that
and debugging purposes using `ga` and `g8` it is not yet that useful.
|
|
Fix #531
|
|
https://mentors.debian.net/package/vis
|
|
The following key mappings should result in the vi behavior:
:map! normal n <vis-motion-search-repeat>
:map! normal N <vis-motion-search-repeat-reverse>
The default remains unchanged, that is `n` (`N`) always searches towards
the end (start) of the file.
Fix #470
|
|
|
|
Do not create an invalid cursor when no further match exists.
|
|
It is no longer possible to change the used syntax by assigning to the
`win.syntax = name` field, instead the function win:set_syntax(name)`
should be called.
The distinction between filetype and syntax lexer to use should probably
be clarified/cleaned up at some point.
|
|
The intention of this is not to slowly reimplement curses but to provide
a minimal working terminal UI backend which can also be used for debugging,
fuzzing and in environments where curses is not available.
Currently no attempt is made to optimize terminal output. The amount of
flickering will depend on the smartness of your terminal emulator.
|
|
Use pull instead of push based model for display code. Previously view.c
was calling into the ui frontend code, with the new scheme this switches
around: the necessary data is fetched by the ui as necessary.
The UI independent display code is moved out of view.c/ui-curses.c into
vis.c. The cell styles are now directly embedded into the Cell struct.
New UI styles are introduced for:
- status bar (focused / non-focused)
- info message
- window separator
- EOF symbol
You will have to update your color themes.
The terminal output code is further abstracted into a generic ui-terminal.c
part which keeps track of the whole in-memory cell matrix and #includes
ui-terminal-curses.c for the actual terminal output. This architecture
currently assumes that there are no overlapping windows. It will also
allow non-curses based terminal user interfaces.
|
|
|
|
Previously the following had no effect:
$ echo foo | vis +"set syntax markdown" -
Fix #512
|
|
|
|
$ ./configure --disable-help
shrinks the binary by about 20K on a x86_64 system.
|
|
This can also be implemented using Lua, if desired.
|
|
By now we should have the necessary Lua API to implement this as an
extension.
|
|
|
|
This results in a slightly smaller binary while still avoiding #ifdefs.
Close #494
|
|
These do not really belong into the editor core. If desired they
could be implemented in Lua instead.
|
|
|
|
|
|
Unlike vim we do not respect `:set expandtab` here.
|
|
Fix #491
|
|
Fixes CID 141179
|
|
The character following a movement_key command should not be subject to
keymap translation since it is used to find characters in the document.
|
|
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.
|
|
|
|
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.
|
|
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
|
|
A count of zero is different than specifying no count.
This fixes `0G` which previously moved to the start of the file.
Fix #474
|
|
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
|
|
This was never really implemented properly and is not really needed
anyway.
Close #345
|
|
Fix #372
|
|
|
|
|
|
|
|
Shows hex values up to the next UTF-8 encoded character.
|
|
|
|
|
|
|