aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-01-18vis: support count for insertion and replacementMarc André Tanner4-4/+22
Fix #372
2017-01-18vis: unify insert/replace mode enter handlerMarc André Tanner1-18/+4
2017-01-18vis: unify insert/replace mode leave handlerMarc André Tanner1-18/+9
2017-01-18vis: support count for macro replayMarc André Tanner1-1/+4
Fix #448
2017-01-18vis: do not take undo snaphots while replaying a macroMarc André Tanner4-8/+29
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-16vis: change key input handling modelMarc André Tanner2-19/+30
Previously if you had a mapping for both `a` and `ab` the latter would in effect be unreachable because the greedy search would always match and then execute the former. With the new behavior we keep reading keys until we have a non ambigious sequence. That is after pressing `a` nothing will happen, if the next key is a `b` we will execute the `ab` mapping otherwise we will perform `a` and whatever the action is for the next key. Close #386
2017-01-16map: add map_leaf utility functionMarc André Tanner2-0/+16
Tests whether the given prefix can be extended to exactly one map element i.e. true iff the prefix map contains exactly one element.
2017-01-16vis: allow macro recording/replay in visual modeMarc André Tanner1-0/+2
Fix #461
2017-01-16vis: fix single letter word text objects at start of fileMarc André Tanner1-2/+2
Fix #464
2017-01-16vis: cleanup regex header inclusionMarc André Tanner5-5/+0
2017-01-16man: remove authors section from tool's man pagesChristian Hesse4-16/+0
2017-01-16man: add man page for vis-complete(1)Christian Hesse2-1/+86
Signed-off-by: Christian Hesse <mail@eworm.de>
2017-01-16make: define EXECUTABLES and install in a loopChristian Hesse2-18/+16
Define EXECUTABLES and install in a loop. Also fix uninstalling man pages.
2017-01-16single: include tools vis-{clipboard,complete,menu,open}Christian Hesse2-2/+2
These are called from vis only. So include them in the archive and set PATH to make vis find them.
2017-01-15vis-lua: pass pending keys to lua key handling functionsMarc André Tanner1-8/+69
2017-01-15view: fix check to prevent duplicate cursor creationMarc André Tanner1-1/+4
Previously repeatedly pressing <Ctrl-j> at the start of the file would keep creating cursors.
2017-01-15vis: show error messages for failed :map/:unmap commandsMarc André Tanner1-7/+19
Close #458
2017-01-15vis: do not crash when given insufficient arguments to :mapMarc André Tanner1-1/+1
Fix #459
2017-01-14sam: do not clobber error value when failing to parse a groupMarc André Tanner1-0/+2
When encountering a parsing error within a { } command group do not set the error cause to unmatched brace.
2017-01-14vis-prompt: make it easier to enter multi line commandsMarc André Tanner2-30/+55
<Enter> now searches for lines starting with command delimiters to find the command boundaries. To actually enter a literal new line use <Ctrl-v><Enter> in insert mode or `o` / `O` in normal mode. Also remove the special <Backspace> mapping, does not seem esential use <Escape> to close the prompt window.
2017-01-14view: enforce invariant that cursor is within selectionMarc André Tanner1-5/+6
A cursor does not necessarily have to be at a selection boundary (e.g. in visual line mode) but it has to be within the selection.
2017-01-14vis-lua: allow mode changes by setting vis.modeMarc André Tanner2-2/+16
2017-01-13test: updateMarc André Tanner1-5/+15
2017-01-13sam: remove s (substitute) command use x (extract) and c (change) insteadMarc André Tanner2-14/+3
They are roughly equivalent, instead of s/pattern/replacement/ to replace the first occurrence of pattern you can specify an address to the change command: /pattern/ c/replacement/ the only difference being that the first command is restricted to the current line. -+x/pattern/ c/replacement/ also restrictes matches to the current line, but performs the substitution on the whole line not only the first match. Currently it is not possible to only replace the n-th match as `s2/pattern/replacement/` would do in sam(1). A possible alternative syntax generalizing this concepts and applying it to the `x` and `g` commands will be investigated in the future. Global substitution as in %s/pattern/replacement/g can be performed using x/pattern/ c/replacement/
2017-01-13sam: allow empty text specifiersMarc André Tanner1-2/+5
Before the i, a, c commands would fail when given an empty text //.
2017-01-13sam: allow input text to refer to search registersMarc André Tanner2-6/+65
& refers to the most recent complete match and \1 - \9 refer to the last sub-expression matches.
2017-01-13vis: introduce registers 0-9 and & to capture search matchesMarc André Tanner4-2/+44
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-13text-regex: add text_regex_nsub to get number of sub expressionsMarc André Tanner2-0/+7
2017-01-13text-regex: slightly clean up headerMarc André Tanner1-2/+2
We generally omit parameter names in function prototypes when their meaning is clear.
2017-01-13sam: create new selections for changed rangesMarc André Tanner2-44/+71
This is akin to sam where dot is set to the result of a command.
2017-01-13view: add infrastructure for delayed cursor destructionMarc André Tanner2-2/+30
At least one cursor (referred to as primary or main cursor) has always to exist. In the sam command language implementation we might want to dispose a cursor even if it is the primary one before later commands will create different ones (e.g. `:x/pattern/ { i/>>>/ a/<<</ }`). This commit introduces view_cursors_dispose_force. If called on the last remaining cursor, its selection is cleared and it is marked for destruction as soon as a new cursor is created. view_cursor_disposed returns the cursor marked for deletion (if any) and clears the descruction flag.
2017-01-12sam: implement parallel grouping behaviorMarc André Tanner4-132/+162
2017-01-11ui: improve editor suspensionMarc André Tanner1-1/+1
Send SIGSTOP to process group. This should fix job control when launched from a script.
2017-01-11single: allow to build self-extracting executableChristian Hesse3-0/+20
This allows to create a self extracting executable. The standalone binary and lua files are extracted to /tmp/.vis-XXXXXX, vis is started with the given command line arguments, finally temporary files are removed. Signed-off-by: Christian Hesse <mail@eworm.de>
2017-01-10vis-lua: expose register names as vis:register_names()Marc André Tanner1-1/+38
2017-01-10vis: add register description to :help outputMarc André Tanner4-25/+43
2017-01-10vis-lua: expose valid marks as vis:mark_names()Marc André Tanner1-0/+38
2017-01-10vis: add valid marks to :help outputMarc André Tanner4-6/+22
2017-01-10vis: add process id to :help outputMarc André Tanner1-1/+1
2017-01-07test: updateMarc André Tanner1-8/+5
2017-01-07buffer: make sure mem{cpy,move} are called with valid argumentsMarc André Tanner1-1/+5
2017-01-07buffer: fix buffer_move bugMarc André Tanner1-2/+1
Capacity also needs to be reset.
2017-01-07buffer: remove redundant functionMarc André Tanner3-7/+1
For some reason we ended up with two identical functions: buffer_{clear,terminate}.
2017-01-07ui: improve color palette resetMarc André Tanner1-46/+9
Do not restore color palette for :! commands (i.e. in ui_terminal_save). By far the most common use of this is to invoke vis-menu(1) (e.g. indirectly through `:open .` or for word completion). Restoring the palette in this case also affects the file content still being visible above the menu thus causing weird display artifacts. Use the OSC 104 escape sequence to reset color palette. This should respect custom color profiles.
2017-01-06vis: simplify mode lookup for :map and :unmapMarc André Tanner3-20/+14
2017-01-05test: updateMarc André Tanner1-5/+8
2017-01-05Merge branch 'musl' of https://github.com/eworm-de/visMarc André Tanner1-2/+2
2017-01-05lua: adjust C lexer to recognize POSIX typesS. Gilles1-3/+6
2017-01-05ui: remove now unused codeMarc André Tanner1-37/+4
2017-01-05theme: pretend that specifying color numbers doesn't workS. Gilles1-16/+16