| Age | Commit message (Collapse) | Author |
|
|
|
Previously the last selection was kept implicitly to statisfy the invariant
that at least one selection needs to exist.
|
|
With the current model the differences between normal and visual mode
is that in the latter selections are anchored (meaning one endpoint
remains fixed), while in normal mode both endpoints can in principle
be updated simultaneously (currently they are always colapsed to a
singleton selection, giving the impression of cursors).
|
|
This window local register holds the last active selections.
|
|
This should keep the EOF markers visible when another option is enabled.
The whole UI option handling is a bit of a mess. In the longterm more of
the drawing code should be moved into Lua.
|
|
Conflicts:
view.c
view.h
|
|
Conflicts:
view.c
|
|
|
|
|
|
|
|
|
|
The anchor needs to be set after the cursor was positioned,
otherwise the cursor placement will immediately destroy the
selection for in the non-anchored case.
|
|
|
|
Dispose all invalid and merge all overlapping selections.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This unifies cursors and selections. The cursor are now represendted
as singleton selections.
|
|
|
|
|
|
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
|
|
Use something like dos2unix(1) and unix2dos(1), if you
need to edit such files.
|
|
|
|
|
|
This makes sure that a successive view_update call returns
true and as a result the status bar will be correctly redrawn.
|
|
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.
|
|
Before cebb24b36ac45cc7c6912481cacd29ef9d5c68b9 a mark
at the start of the file was treated specially to always
return position zero.
Since this was no longer the case the following would
insert text before the visible area:
<PageDown><PageUp><PageUp>ifoo
|
|
This should fix selection changes after shift operators
in visual mode. The problem was that the NOP motion which
is executed when switching back into visual-line mode
destroys the selection if the cursor is not already placed
on a selection boundary.
Fix #501
|
|
In a file with windows style \r\n line endings scrolling
up would wrap around to the end of the file.
|
|
They will still not be displayed correctly, but at least they
should no longer cause memory errors.
|