aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-11-08Update READMEMarc André Tanner1-1/+30
2015-11-08vis: factor out syntax highlighting codeMarc André Tanner3-47/+62
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é Tanner3-3/+36
2015-11-08vis: implement :set cursorlineMarc André Tanner5-0/+30
2015-11-08vis: experimental support for lua/lpeg based syntax highlightingMarc André Tanner11-48/+499
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-08Overhaul build systemMarc André Tanner2-6/+122
Add separate per library {C,LD}FLAGS and use default values from pkg-config to allow for finer control. Disable pkg-config by setting PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= Override flags completely by specifying them as arguments to make: $ make CFLAGS_CURSES="your custom flags for curses" Also introduce a new, experimental Makefile target standalone. It tries to build a self contained statically linked vis binary. All dependencies (musl, ncurses, termkey, lua, lpeg) are build from source. Lua is patched to include lpeg as a statically built module.
2015-11-08Import LPeg based lexers from Scintillua 3.6.1-1Marc André Tanner108-0/+11252
These are Copyright (c) 2007-2015 Mitchell and released under the MIT license.
2015-11-08vis: remove regex based syntax highlightingMarc André Tanner10-792/+17
2015-11-08vis: more comments and cleanupsMarc André Tanner4-96/+84
2015-11-07text-motion: do not treat ' as string delimiter in match bracketMarc André Tanner1-2/+2
Currently symbols inside a string are ignored. This means that if the opening (closing) symbol is inside (outside) the string while the closing (opening) one is outside (inside), it will not be matched. It is not yet clear whether this "optimization" is useful. Closes #97
2015-11-07vis: shadow default register while in prompt modeMarc André Tanner2-2/+12
Editing operation in prompt mode should not affect the default register.
2015-11-07vis: prefix enum VisMotion values with VIS_Marc André Tanner6-264/+225
2015-11-07vis: tweak enum VisTextObject namesMarc André Tanner3-78/+78
2015-11-07vis: prefix enum VisOperator values with VIS_Marc André Tanner6-101/+88
2015-11-07vis: API documentation and cleanupMarc André Tanner7-99/+151
2015-11-07vis: introduce vis_cancel APIMarc André Tanner4-8/+13
2015-11-07vis: move modes into separate fileMarc André Tanner3-282/+287
2015-11-07vis: move operators to separate fileMarc André Tanner4-238/+247
2015-11-07vis: move motions to separate fileMarc André Tanner4-262/+272
2015-11-07vis: move :-commands into their own fileMarc André Tanner4-1206/+1230
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-04vis: fix definition of space motionMarc André Tanner1-1/+1
We do not instruct libtermkey to specially report the space key. Hence it is not reported as <Space> but simply as a " " (0x20). Closes #89
2015-11-03vis: make open line commands (o and O) repeatableMarc André Tanner1-7/+6
The implementation of O is a bit of a hack and has a few issues: - does not respect auto indentation settings - does not meaningfully repeat when given a count
2015-11-03vis: make single character replace (r command) repeatableMarc André Tanner1-7/+9
2015-11-03vis: add vis_keys_inject to place keys into the input queueMarc André Tanner2-6/+25
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-03buffer: add buffer_insert to insert data at an arbitrary positionMarc André Tanner2-10/+23
Use it to implement buffer_{pre,ap}pend.
2015-11-03vis: add some default bindings for <Delete>Marc André Tanner1-0/+3
2015-11-03vis: let libtermkey map <DEL> to <Backspace>Marc André Tanner2-6/+1
2015-11-02vis: map <DEL> to <Backspace>Marc André Tanner1-1/+5
Closes #87
2015-11-02text: return end of changed range in text_redoMarc André Tanner1-0/+2
This affects the cursor placement when redoing changes in single cursor mode. Closes #42
2015-11-02vis: free input_queue at exitVirgile Andreani1-0/+1
2015-11-02vis: make I command repeatableMarc André Tanner2-1/+7
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é Tanner3-4/+32
2015-11-02vis: improve count handling for dot commandMarc André Tanner1-2/+12
2015-11-02vis: improve dot commandMarc André Tanner2-55/+92
Use an implicit macro to make changes in insert/replace mode repeatable.
2015-10-31travis: try to fix build once moreMarc André Tanner1-3/+3
2015-10-31vis: adapt some comments to new input handling codeMarc André Tanner1-8/+9
2015-10-31view: make zb command more robustMarc André Tanner1-4/+2
The new approach first scrolls the window up such that the current cursor line lies below the current visible area, then the viewport is adjusted until the line is once again visible (at the bottom of the window). Closes #85
2015-10-29build: introduce make local Makefile targetMarc André Tanner2-9/+44
This merges parts of the build system overhaul found in the lua branch.
2015-10-27ui: make color parsing more robustMarc André Tanner1-0/+2
2015-10-27vis: map C-c to leave insert modeMarc André Tanner1-1/+1
2015-10-27ui: properly restore terminal state upon exitMarc André Tanner1-2/+5
2015-10-27Update source tree overview section in READMEMarc André Tanner1-2/+2
2015-10-27build: merge parts of the build system changes from lua branchMarc André Tanner2-14/+15
Should hopefully fix build on Mac OS X.
2015-10-27vis: make Vis an opaque type, hide implementaton detailsMarc André Tanner4-137/+151
2015-10-27vis: introduce vis_macro_recording APIMarc André Tanner3-1/+6
2015-10-27vis: introduce vis_prompt_enter APIMarc André Tanner3-28/+24
This is a really bad API/abtraction but at least it allows us to hide some implementation details.