| Age | Commit message (Collapse) | Author | Files | Lines |
|
eg. if your long line is a comment with green fg, and you set your
column color bg red while not specifying the fg, then the result is
green fg on red bg.
Prior to this change the result would be default fg on red bg, thus
one char in the long line of green text would look odd/wrong.
Of course if you do explicitly set the column color fg to default in your
theme then the result will not be what you expect - ideally we need
an UNSPECIFIED color type instead of relying on DEFAULT.
|
|
|
|
|
|
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.
|
|
Do not initalize curses UI before it is actually needed.
Move vis command line argument parsing logic into main.c.
This fixes `vis -v` output and exit status.
Fix #351
|
|
|
|
|
|
The language map translation should not take modifiers into account.
For example if `a` is mapped to `b` then `<M-a>` should also be mapped
to `<M-b>`.
Fix #404
|
|
Make window status bar content configurable via Lua.
|
|
|
|
|
|
|
|
This caused issues on OpenBSD where it crashed the terminal.
Also on Mac OS X suspend via ^Z (Ctrl-Z) was missing a \r i.e.
the shell prompt was not properly redrawn.
While in principle user interfaces should not have to depend on
libtermkey, in practice this won't be an issue unless we are
adding a non-terminal based UI (which won't happen anytime soon).
This reverts commit 8f92b98848f9366e78c7aa824615bade83971513.
Close #311
|
|
|
|
A concrete user interface implementation should not have to depend
on libtermkey. Therefore the vis core now uses an independent instance
to parse keys.
|
|
Close #224
|
|
|
|
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
|
|
Both registers are currently treated identically.
The actual system integration is performed by two shell
scripts vis-copy and vis-paste.
|
|
Display Lua errors in a dedicated window/file. A typo or missing
dependency (e.g. lpeg) in visrc.lua will no longer silently fail
without any indication.
The Lua integration in view.h is not yet converted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Styles can now be specified as strings which will make them
easier to specify from outside the editor.
The following style attributes can be given in a comma separated
list:
bold
italics
underlined
fore:color
back:color
where color is either a hex value of the form #aabbcc or one
of the predefined colors:
black
red
green
yellow
blue
magenta
cyan
white
|
|
Key bindings are now specified as symbolic key strings, this
will eventually allow run time configurable key mappings.
This introduces a bulid time dependency on libtermkey which
can be found at:
http://www.leonerd.org.uk/code/libtermkey/
|
|
This cleans up the existing selection handling code and adds the
necessary bits to eventually support multiple cursors/selections.
The cursor position is kept track of using marks, which means
retrieving the cursor position is no longer a constant time operation.
Furthermore the terminal cursor is no longer used, instead the whole
window is redrawn after every cursor movement.
|
|
By now ui-curses.[hc] are the only files dealing directly with
curses related functions. Integration of a proper mainloop is
still pending.
|
|
|
|
|
|
Also apply syntax rules every time the file name changes.
|
|
|
|
Win -> View, window_* -> view_*
|
|
|
|
:set rnu
Based on a patch by Sebastian Götte.
|
|
In theory only ui-curses.[hc] should depend on curses, however in
practice keyboard input is still handled in vis.c. Furthermore the
syntax definitions as well as keyboard bindings and selection code
in window.c still depends on some curses constants.
There is also a slight regression in that the window status bar
does not show the current mode name. This and related global state
should be eliminated in the future.
|