summaryrefslogtreecommitdiff
path: root/vis.c
AgeCommit message (Collapse)Author
2015-10-22vis: refactor startup codeMarc André Tanner
2015-10-22ui: introduce and use ui specific die(...) functionMarc André Tanner
2015-10-22vis: overhaul signal handlingMarc André Tanner
2015-10-22vis: remove config selection based on argv[0]Marc André Tanner
I would still like to experiment with a busybox style editor multiplexer which behaves like vi(m), emacs or nano depending on argv[0].
2015-10-22vis: remove global state from key input handlingMarc André Tanner
2015-10-22vis: remove yet more global stateMarc André Tanner
2015-10-22vis: remove yet more global state from motion functionsMarc André Tanner
2015-10-22vis: rename motion typeMarc André Tanner
2015-10-22vis: remove more global state from motion functionsMarc André Tanner
2015-10-22vis: pass editor instance to keyboard action functionsMarc André Tanner
2015-10-22vis: remove more global stateMarc André Tanner
2015-10-22vis: pass editor instance to command handling funcitonsMarc André Tanner
2015-10-22vis: pass editor instance to mode handling functionsMarc André Tanner
2015-10-22vis: refactor operator implementationMarc André Tanner
Pass editor instance and text to operate on as parameter instead of using global state.
2015-10-22vis: include :-commands in :help outputMarc André Tanner
2015-10-22vis: improve :help text, add separate status mode namesMarc André Tanner
2015-10-15vis: preserve ui options when splitting windowsMarc André Tanner
Closes #72
2015-10-14vis: introduce special keys which allow mappings to editor actionsMarc André Tanner
Key bindings in vis are always recursive, hence mapping ~ to ~l will cause an infinite loop. Instead vis supports special editor "keys" which map to internal editor functions. As an example one can thus map ~ to <vis-operator-case-swap>l or even <vis-operator-case-swap><cursor-char-next> Furthermore this makes it possible to completely unmap core editor features such as operators, the corresponding funtionality is still available via its corresponding special key.
2015-10-14view: cleanup whitespace replacement symbol handlingMarc André Tanner
2015-10-14view: cleanup option handlingMarc André Tanner
2015-10-14ui: refactor syntax style definitionsMarc André Tanner
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
2015-10-11vis: properly ignore tab at command promptMarc André Tanner
Closes #77
2015-10-05vis: add rudimentary :help commandMarc André Tanner
2015-10-05vis: fix key alias implementationMarc André Tanner
2015-10-05vis: introduce keyboard actionsMarc André Tanner
This adds another level of indirection by defining keyboard actions which will likely eventually be used by a :map command.
2015-10-05vis: add rudimentary support for key aliasesMarc André Tanner
This will eventually be exposed via a :map style command.
2015-10-05vis: cleanup keyboard handling implementationMarc André Tanner
2015-10-05vis: convert mark handling to new input handling codeMarc André Tanner
2015-10-05vis: convert insertion of register from insert modeMarc André Tanner
2015-10-05vis: convert register specification to new input handling codeMarc André Tanner
2015-10-05vis: convert macro recording / replay to new input handling codeMarc André Tanner
2015-10-05vis: convert insert verbatim to new input handling codeMarc André Tanner
2015-10-05vis: convert to/till movements to new input handlingMarc André Tanner
2015-10-05vis: adapt r (replace) to new input handlingMarc André Tanner
2015-10-05vis: change key binding function prototypesMarc André Tanner
The idea is to work more like a finite state machine. Every function gets an additional argument keys which holds the already read keyboard input. The return value of the functions should point to the first not consumed key. A return value of NULL indicates that more input is needed. The function will be called again from the editor core when more input is available. These changes are mostly mechanical and in many cases not optimal, they will be cleaned up in further commits.
2015-10-05vis: rework input handling using libtermkeyMarc André Tanner
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/
2015-08-09vis: fix :edit! commandMarc André Tanner
It now correctly re-edits the file (i.e reloads it from disk).
2015-08-09vis: fix repeated use of file open dialogMarc André Tanner
2015-08-09vis: cancelling wildcard open causes crashDavid B. Lamkins
Closes #65
2015-08-08text: rename some functions to improve consistencyMarc André Tanner
2015-08-08text: introduce helper function text_delete_rangeMarc André Tanner
2015-08-07vis: limit to/till movements to current lineMarc André Tanner
2015-08-06vis: implement gv to restore last selectionMarc André Tanner
2015-08-06vis: implement al and il text objectsMarc André Tanner
2015-08-06vis: implement gp and gP add count support to put operationsMarc André Tanner
2015-08-02vis: use file open dialog also for :editMarc André Tanner
2015-08-02vis: use I and A instead of CTRL-O for new cursors in visual modeMarc André Tanner
I and A creates a new cursor at start/end of every selected line.
2015-08-02vis: add text objects `af` and `if`Marc André Tanner
They try to match C-like function definitions. The inner variant only contains the function body.
2015-08-02vis: add motions [[, [], ][, ]]Marc André Tanner
They behave not like in vim, but instead try to find the start/end of C-like function definitions. The first character stands for the direction [ for backwards, ] for forwards. The second character denotes the start [ or end ] respectively.
2015-08-01vis: support `ae` and `ie` text objectsMarc André Tanner