| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Fail if there is already a cursor located at the requested position.
|
|
The number of columns i.e. maximal number of cursors located on the
same line can be obtained by view_cursors_column_count.
Column addressing is zero based, valid indexes are [0, max-1].
Assuming there is a cursor on every letter:
a
b c
d e f
g h
i
max column would be 3, and the following would iterate over the
cursors forming the second column [c, e, h]:
for (Cursor *c = view_cursors_column(view, 1); c; c = view_cursors_column_next(c, 1))
...
|
|
This is currently only enforced upon creation i.e. we assume
that after creation a cursor can not change its relative ordering
with respect to its neighbors.
The existing code assumes that when iterating through cursors with:
for (Cursor *c = view_cursors(view); c; c = view_cursors_next(c))
...
new cursors created with view_cursors_new do not show up.
This assumption is preserved under the following conditions:
* it only holds for the most recent view_cursors call
As a consequence when doing nested iterations new cursors
will be yielded once the inner view_cursors call was performed.
* view_cursors_primary_get is not called
|
|
|
|
|
|
|
|
|
|
This for example affects the default background color and cursor
related settings.
|
|
|
|
|
|
The currently visible display port is always adjusted
in a way that the primary cursor is visible.
|
|
|
|
|
|
Allow colorcolumn to be greater than the view width.
Lines that wrap now have the colorcolumn highlighted.
|
|
That is from now on use vis:method instead of vis.method
|
|
|
|
|
|
This allows them to be placed into the read only ELF section.
|
|
Disable absolute line numbers for large files (currently
anything bigger than 32MiB). This speeds up moving around
with for example nn% since no new lines need to be calculated.
Of course movements like :nn will be unaffected.
The optimizations can be disabled by explicitly enabling
absolute line numbers as in :set number
|
|
|
|
Close #148
|
|
It returns the range covered by the selection of the primary cursor.
|
|
This reverts 2f4b69cc67e8863e5789817ed5097158e6163621. There are
likely still some problems left when editing the end of a file
at end of the visual area.
|
|
Holding down <Backspace> at the end of the file should not
keep the cursor on the middle line of the window.
|
|
The last new line is added to the cell matrix but failure
is reported to indicate that there is no space left for
further characters.
|
|
This for example now correctly displays tab characters at
the very start of the visible area.
|
|
Lua support can now be disabled at compile time using:
$ make CONFIG_LUA=0
This commit also adds an initial Lua API and provides a few
default hooks.
We now also require Lua >= 5.2 due to the uservalue constructs.
In principle the same functionality could be implemented using
function environments from Lua 5.1.
|
|
The only used event handler was used to update the '< and '>
marks which is now taken care of by the leave handler of the
visual modes.
|
|
|
|
|
|
|
|
They now belong to the cell holding the corresponding regular
(i.e. non-combining) character. This also means that at least
in theory a cell could hold arbitrary amounts of data, in
practice it is limited to 16 bytes.
|
|
Increase the number of bytes to consider for syntax highligthing
before the visisble area. This should improve the handling of long
block comments.
Closes #110
|
|
When a file was being displayed in multiple windows changes in one
could confuse the other.
|
|
If a change occured on the very first shown character, it was not
properly reflected in the view.
|
|
|
|
|
|
|
|
|
|
|
|
For now the vis table has only one member "lexers".
|
|
|
|
The view_draw function renders the text into the cells
array and resyncs the cursor position. The syntax
highlighting is applied in view_update, which also
instructs the ui to update.
|
|
|
|
The lua based lexers are searched in the following order:
$VIS_PATH/lexers
$HOME/.vis/lexers
/usr/share/vis/lexers
followed by the standard lua package.path
|
|
|
|
The new approach first scrolls the window up such that the current
cursor line lies below the current visible area, then the viewport
is adjusted until the line is once again visible (at the bottom of
the window).
Closes #85
|
|
|
|
Do not create empty windows, more importantly do not overwrite
random memory.
Closes #80
|