aboutsummaryrefslogtreecommitdiff
path: root/vis.c
AgeCommit message (Collapse)AuthorFilesLines
2015-12-26vis: refactor Lua integrationMarc André Tanner1-103/+15
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.
2015-12-20vis: fix forceful redraw <C-l>Marc André Tanner1-0/+4
2015-11-28vis: do not switch to normal mode when leaving ? and / promptMarc André Tanner1-1/+1
2015-11-28view: remove ViewEvent infrastructureMarc André Tanner1-14/+2
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.
2015-11-28vis: improve switching to prompt modeMarc André Tanner1-5/+5
A call to vis_prompt_show will now automatically switch to prompt mode. Within the prompt leave/enter handlers the focused window (vis->win) will still point to the document window not the one referring to the prompt. The selection marks '< and '> are now only updated when a visual mode is left.
2015-11-28vis: add cmd argument to VIS_OP_FILTERMarc André Tanner1-5/+19
2015-11-27vis: implement filter operator !Marc André Tanner1-5/+17
It currently works by switching to visual mode and then opening the command prompt with a default range which refers to the currently active selection.
2015-11-27vis: change semantics of operator implementation return valueMarc André Tanner1-3/+3
The return value of operator implementations denoting the new cursor position is interpreted in the following way: - EPOS dispose the cursor - [0, text_size] place the cursor accordingly - otherwise i.e. > text_size keep the cursor position unchanged The newly introduced last case is useful for operators which are called from visual mode, but do not want to change the current selection.
2015-11-23vis: improve replacement of combining charactersMarc André Tanner1-6/+1
2015-11-08Update year numbers in Copyright clauseMarc André Tanner1-1/+1
2015-11-08Remove trailing white space from source filesMarc André Tanner1-4/+4
2015-11-08ui: load syntax theme based on the number of supported colorsMarc André Tanner1-1/+0
The theme to use can be overriden via the $VIS_THEME environment variable. $ VIS_THEME=solarized vis
2015-11-08vis: introduce vis namespace for lua objectsMarc André Tanner1-2/+6
For now the vis table has only one member "lexers".
2015-11-08vis: try to support all lua versions >= 5.1Marc André Tanner1-1/+1
Make lpeg module table explicitly global, which should work with the different module loading semantics.
2015-11-08vis: factor out syntax highlighting codeMarc André Tanner1-0/+3
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.
2015-11-08vis: implement :set themeMarc André Tanner1-3/+25
2015-11-08vis: experimental support for lua/lpeg based syntax highlightingMarc André Tanner1-3/+81
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
2015-11-08vis: remove regex based syntax highlightingMarc André Tanner1-49/+1
2015-11-08vis: more comments and cleanupsMarc André Tanner1-19/+13
2015-11-07vis: prefix enum VisMotion values with VIS_Marc André Tanner1-30/+30
2015-11-07vis: tweak enum VisTextObject namesMarc André Tanner1-26/+26
2015-11-07vis: prefix enum VisOperator values with VIS_Marc André Tanner1-19/+19
2015-11-07vis: API documentation and cleanupMarc André Tanner1-11/+8
2015-11-07vis: introduce vis_cancel APIMarc André Tanner1-4/+8
2015-11-07vis: move modes into separate fileMarc André Tanner1-282/+1
2015-11-07vis: move operators to separate fileMarc André Tanner1-238/+13
2015-11-07vis: move motions to separate fileMarc André Tanner1-262/+0
2015-11-07vis: move :-commands into their own fileMarc André Tanner1-1206/+4
2015-11-06vis: fix cursor position after charwise pasteMarc André Tanner1-0/+7
p and P should leave the cursor on the last inserted character to ease repetition. Closes #92
2015-11-06vis: do something reasonable upon visual repeatMarc André Tanner1-0/+4
We do currently deliberately not support visual repeat. However when there exist multiple cursors, repeating an operator, which acted on a previous visual selection, should not collapse the cursors.
2015-11-06vis: fix operators to correctly handle multiple selectionsMarc André Tanner1-4/+8
Operators must not switch modes, they might be called multiple times (once for every cursor/selection). Closes #91. The concrete problem was that op_change for the first cursor switched to insert mode, which cleared all the remaining selections. Hence the other cursors had nothing to operate on. Reverts parts of d395687b.
2015-11-03vis: add vis_keys_inject to place keys into the input queueMarc André Tanner1-6/+24
This function can only be used from within key handlers. The position argument has to point to a valid key from within the same input buffer after which the new input will be inserted.
2015-11-02vis: free input_queue at exitVirgile Andreani1-0/+1
2015-11-02vis: let keys entered via API affect macro recordingMarc André Tanner1-4/+5
2015-11-02vis: make append (a and A) commands repeatableMarc André Tanner1-2/+10
2015-11-02vis: improve count handling for dot commandMarc André Tanner1-2/+12
2015-11-02vis: improve dot commandMarc André Tanner1-53/+88
Use an implicit macro to make changes in insert/replace mode repeatable.
2015-10-27vis: make Vis an opaque type, hide implementaton detailsMarc André Tanner1-11/+108
2015-10-27vis: introduce vis_macro_recording APIMarc André Tanner1-0/+4
2015-10-27vis: introduce vis_prompt_enter APIMarc André Tanner1-4/+19
This is a really bad API/abtraction but at least it allows us to hide some implementation details.
2015-10-27vis: clean up tab/newline insertion codeMarc André Tanner1-2/+42
2015-10-27vis: introduce pseudo operators for putMarc André Tanner1-9/+21
In principle put is not really an operator, however it still should be repeatable and respect count.
2015-10-26vis: introduce explicit operators for cursor creationMarc André Tanner1-2/+7
2015-10-26vis: introduce explicit operators for case changesMarc André Tanner1-6/+19
2015-10-26vis: move key handling functions to main.cMarc André Tanner1-747/+348
2015-10-26vis: merge editor.c into vis.cMarc André Tanner1-101/+589
2015-10-25vis: introduce vis_key_next APIMarc André Tanner1-5/+4
2015-10-25vis: introduce vis_register_{get,set} APIMarc André Tanner1-6/+21
2015-10-25vis: introduce vis_count_{get,set} APIMarc André Tanner1-9/+19
2015-10-25vis: introduce vis_motion_type APIMarc André Tanner1-1/+5