aboutsummaryrefslogtreecommitdiff
path: root/vis.h
AgeCommit message (Collapse)AuthorFilesLines
2017-02-24vis: make help texts optional to produce a smaller binaryMarc André Tanner1-1/+15
$ ./configure --disable-help shrinks the binary by about 20K on a x86_64 system.
2017-02-10vis: introduce vis_keys_utf8Marc André Tanner1-0/+4
2017-02-05vis: add file argument to vis_pipeMarc André Tanner1-1/+1
2017-01-28vis: keep track of most recently processed keys of input queueMarc André Tanner1-0/+3
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).
2017-01-20vis: slightly cleanup repeat code, always set dot registerMarc André Tanner1-1/+1
2017-01-18vis: do not take undo snaphots while replaying a macroMarc André Tanner1-0/+3
The vis_keys_feed function is currently unaffected by this change. It still creates individual undo points. While this is probably undesirable from an API point of view, it keeps the lua based tests that use undo points working.
2017-01-13vis: introduce registers 0-9 and & to capture search matchesMarc André Tanner1-0/+10
These are currently only updated for `x` and `y` sam commands, whether they should be updated for other search related activities (`/`, `?`, `n`, `N`, `*`, `#` etc.) needs to be investigated.
2017-01-10vis: add register description to :help outputMarc André Tanner1-10/+10
2017-01-10vis: add valid marks to :help outputMarc André Tanner1-2/+2
2017-01-06vis: simplify mode lookup for :map and :unmapMarc André Tanner1-0/+1
2016-12-31vis: allow user registered :-commands to specify a help textMarc André Tanner1-1/+1
2016-12-31vis: typedef function type not pointer to functionMarc André Tanner1-2/+2
2016-12-29vis: cleanup key action lifetime managementMarc André Tanner1-6/+11
2016-12-27vis: properly free dynamic key bindingsMarc André Tanner1-0/+3
The handling of :unmap needs to be revisited at some point.
2016-12-23Apply format string attribute to printf style functionsMarc André Tanner1-2/+2
Not strictly C99 conform, but widely supported and easy enough to NOP for compilers which do not support it. Besides it was already used to mark certain functions as noreturn.
2016-12-21vis: implement `gh` and `gl` to move by relative byte offsetsMarc André Tanner1-0/+2
2016-12-21vis: implement `go` to move to absolute byte positionMarc André Tanner1-0/+1
2016-12-20vis: improve literal insertion via <C-v> in insert modeMarc André Tanner1-0/+2
2016-12-19vis: introduce vis_register_from utility functionMarc André Tanner1-0/+1
2016-12-09vis-lua: expose input key event in insert and replace modesMarc André Tanner1-0/+2
2016-12-08vis: rename some internal C function pointersMarc André Tanner1-3/+3
2016-12-03vis: improve :set option number parsingMarc André Tanner1-1/+0
Only accept numbers in range [0, INT_MAX]. Reject trailing garbage, where before something like `:set cc 50NaN` worked it will now cause an error. Close #418
2016-11-28vis: move mark description into core codeMarc André Tanner1-0/+1
2016-11-25vis: fix I/O redirection bugs, cleanup vis_pipeMarc André Tanner1-5/+5
The `:!` command did redirect stdout to a pipe which was used by `vis-menu` to return the selected entry. However, this breaks other interactive commands such as `:!/bin/sh` where command output was never displayed. Instead we modified `vis-menu` to re-open /dev/tty for its user interface which makes it work as a regular filter `:|` This patch also obsoletes the interactive flag previously passed to the vis_pipe function. Interactive mode is instead enabled by piping an invalid range.
2016-11-22vis-lua: introduce pre-save hookMarc André Tanner1-0/+1
The first argument is the file object while the second argument denotes the full path to which it will be written. Path might be `nil` if the file is going to be written to stdout. The Lua function is expected to return a boolean value indicating whether the write operation should proceed or be aborted.
2016-11-22vis-lua: pass path as second argument to file_save_post event hookMarc André Tanner1-1/+1
The passed path can be different from file.name for instance when opening a file `a` and then doing `:w b` where file.name will be the former and path the latter.
2016-11-21vis-lua: rename file_save event to file_save_postMarc André Tanner1-1/+1
Indicating that the event is triggered *after* a successfull write.
2016-11-16sam: use default shell command for <, >, | and ! when applicapleMarc André Tanner1-0/+1
If the shell command is omitted, the last shell command (of any type) is substituted. The most recently used shell command is stored in a new register currently named `!`.
2016-11-15vis: generalize special stdin handlingMarc André Tanner1-0/+5
In preparation to move argument parsing code out of vis.c.
2016-11-09vis: add replace operator VIS_OP_REPLACEMarc André Tanner1-0/+2
Delete the given range and insert the same number of replacement characters.
2016-11-09vis: unify VIS_OP_{INSERT,REPLACE} implementationMarc André Tanner1-2/+2
They both perform a motion before changing mode.
2016-09-25vis: disable language map for replacement character of `r` commandMarc André Tanner1-0/+2
The character following the `r` command in normal mode should be treated as regular input given in insert/replace mode, that is no tranformation should be applied. Temporarily disable the language map for this reason. Close #382
2016-09-25vis: move file name and word completion logic to a shell scriptMarc André Tanner1-0/+3
The shell script should be reviewed for quoting issues, currently it allows command injections as in: $ vis-complete "'; rm -f some-file; echo " However it is intended for interactive usage and from within vis it is only ever called with a valid completion prefix. The file name completion logic now supports nested directories. Close #347
2016-08-24vis: implement gJ like behaviorMarc André Tanner1-0/+1
The behavior is not exactly the same because vim preserves any existing white spaces wihle we remove existing ones but do not insert additional ones. The vim behavior (essentially only deleating new lines) can be achived using something like: :x/\n/d Close #374
2016-08-24vis: add vis_mode_get functionMarc André Tanner1-0/+1
2016-08-24vis: overhaul input queue handlingMarc André Tanner1-4/+2
Let vis_keys_feed always have an immediate effect. Previously, if called from a key input handler the keys would just be added to the input queue and processed once the current key handler returned. This also affects the exposed Lua API.
2016-05-26vis: use normalized absolute file names as internal representationMarc André Tanner1-2/+0
Try to display a shorthand version in the status bar, this currently only works for files below the current working directory of the editor process.
2016-05-22vis: refactor status line handlingMarc André Tanner1-2/+1
Make window status bar content configurable via Lua.
2016-05-22vis: add function to change window statusbar contentMarc André Tanner1-0/+2
2016-05-22vis: add functions to query window sizeMarc André Tanner1-0/+3
2016-05-22vis: consider :set horizon setting when syntax highlightingMarc André Tanner1-1/+1
2016-05-22vis: move syntax highlighting to pure Lua codeMarc André Tanner1-0/+6
2016-05-18vis: add #define for VIS_MENUMarc André Tanner1-0/+11
2016-05-18vis: add an interactive mode to vis_pipe{,_collect}(...)Marc André Tanner1-2/+6
Previously the interactive mode was implicitly enabled by passing an invalid range. However for some use cases (e.g. completion) we need to be able to pipe a given text range to an external process without also redirecting stderr (which is used to draw the slmenu interface on top of vis).
2016-05-18vis: introduce vis_pipe_collect utility functionMarc André Tanner1-0/+5
2016-05-13vis: clean up key mapping implementationMarc André Tanner1-4/+5
2016-05-08Fix autoindent when using ORichard Burke1-0/+3
2016-05-04vis: enable large file optimizations for files with long linesMarc André Tanner1-2/+0
2016-05-01vis: further cleanup input handling, introduce vis_keys_feed APIMarc André Tanner1-8/+6
2016-05-01vis: cleanup input handling, improve macro replayMarc André Tanner1-7/+6