aboutsummaryrefslogtreecommitdiff
path: root/vis.h
AgeCommit message (Collapse)AuthorFilesLines
2017-09-15vis: remove ! operatorMarc André Tanner1-2/+0
Use visual mode and :| to filter text through external commands. The mapping was already reused for selection complement.
2017-07-17vis: specify window in mark related APIMarc André Tanner1-2/+2
This should also fix coverity issue 157024.
2017-07-11vis: cleanup register related APIMarc André Tanner1-7/+14
Also expose all register slots through the Lua API.
2017-07-10vis: implement jump list in terms of marksMarc André Tanner1-3/+6
2017-07-08vis: cleanup marks implementationMarc André Tanner1-26/+27
We now use ' to refer to marks. Mark a is set using 'am and restored using 'aM while this is slightly harder to type than ma and 'a it is consistent with register usage for yank/put and allows a default mark to be used which is handy for quick selection manipulation primitives.
2017-07-07vis: use marks instead of registers to store selectionsMarc André Tanner1-2/+2
The key binding remain the same, but the selections are now stored on a per-buffer basis.
2017-07-04vis: implement `gv` by means of new "^ registerMarc André Tanner1-0/+1
This window local register holds the last active selections.
2017-06-15vis: implement pairwise selection combinator: unionMarc André Tanner1-0/+1
2017-06-15vis: add function to query which register was specifiedMarc André Tanner1-0/+1
2017-06-15vis: add basic infrastructure to store selections in registersMarc André Tanner1-0/+18
2017-06-15vis: rename uses of Cursor to SelectionMarc André Tanner1-1/+1
2017-05-27vis: remove unused enumeration constantsMarc André Tanner1-2/+0
2017-05-06vis: add vis_interrupt{,requested} functionsMarc André Tanner1-0/+12
2017-05-06vis: add doxygen commentsMarc André Tanner1-167/+531
Rename some structures, add typedefs for function pointers, remove unused arguments from vis_run.
2017-05-03vis: introduce count iterator to handle interrupted flagMarc André Tanner1-0/+10
2017-04-20vis: add # register to insert cursor numberMarc André Tanner1-0/+1
2017-04-20vis: start cleaning up register related codeMarc André Tanner1-0/+3
Now that register.h is no longer used by view.h we can move the struct and function declarations to vis-core.h.
2017-04-18vis: rename vis_register_set to vis_registerMarc André Tanner1-1/+1
2017-04-09vis: remove handling of \r\n line endingsMarc André Tanner1-2/+1
Use something like dos2unix(1) and unix2dos(1), if you need to edit such files.
2017-04-04vis: add motions to move by codepointsMarc André Tanner1-0/+2
Some people might prefer this for <Backspace> behavior. Except for that and debugging purposes using `ga` and `g8` it is not yet that useful.
2017-03-31vis: add non-default actions for vi compatible n/N motionsMarc André Tanner1-0/+2
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
2017-03-31vis: rename search related constantsMarc André Tanner1-2/+2
2017-03-22vis: fix syntax highlighting glitches with split windowsMarc André Tanner1-0/+1
When a file was being displayed in multiple windows and changes were performed to the one showing the preceding file region, the syntax highlighting of the window showing the later parts would get messed up.
2017-03-21vis: make `cw` and `cW` more vim compatibleMarc André Tanner1-0/+2
If the starting position is: * on a space or tab use the `w` motion * on the last letter of a word use `l` or `e` depending on whether a count was given. This also applies for single letter words. * otherwise use the `e` motion As in vim `cw` and `dw` behave differently, whether that is desirable remains to be seen. Might fix #521
2017-03-19vis: add infrastructure for user specified operatorsMarc André Tanner1-0/+5
2017-03-19Move :set horizon option implementaiton to luaMarc André Tanner1-1/+1
2017-03-19Move :set theme option implementation to luaMarc André Tanner1-2/+0
2017-03-19Move :set syntax option implementation to luaMarc André Tanner1-4/+0
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.
2017-03-19vis: add infrastructure to dynamically add :set optionsMarc André Tanner1-0/+15
2017-03-14Restructure display codeMarc André Tanner1-0/+2
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.
2017-03-07vis: remove now unused #defineMarc André Tanner1-6/+0
2017-03-05vis: add file argument to vis_pipe_collectMarc André Tanner1-1/+1
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