summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-01-19vis: remove <C-o> mapping in insert modeMarc André Tanner
This was never really implemented properly and is not really needed anyway. Close #345
2017-01-19lexer: update C lexer to C11 and add POSIX errno constantsMarc André Tanner
The most apparent change is that NULL is now also highlighted, the themes might need to be tweaked a bit. Based on an initial patch by Christian Hesse. Close #307
2017-01-19build: slightly cleanup make standaloneMarc André Tanner
2017-01-18test/vim: give a hint about skipped testsChristian Hesse
Failing vim tests report 'FAIL' with no obvious impact. So give a hint about skipped tests.
2017-01-18standalone: build with POSIX ACL supportChristian Hesse
2017-01-18test: updateMarc André Tanner
2017-01-18lexer: add lexer for Parallax Spin languageDavid B. Lamkins
Close #466
2017-01-18test/vim: add some basic tests for count and repetion of `i` and `a`Marc André Tanner
2017-01-18vis: fix count handling for appendMarc André Tanner
Fix #371
2017-01-18vis: support count for insertion and replacementMarc André Tanner
Fix #372
2017-01-18vis: unify insert/replace mode enter handlerMarc André Tanner
2017-01-18vis: unify insert/replace mode leave handlerMarc André Tanner
2017-01-18vis: support count for macro replayMarc André Tanner
Fix #448
2017-01-18test/vim: use macro count specifier where appropriateMarc André Tanner
2017-01-18vis: do not take undo snaphots while replaying a macroMarc André Tanner
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é Tanner
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é Tanner
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é Tanner
Fix #461
2017-01-16vis: fix single letter word text objects at start of fileMarc André Tanner
Fix #464
2017-01-16vis: cleanup regex header inclusionMarc André Tanner
2017-01-16man: remove authors section from tool's man pagesChristian Hesse
2017-01-16man: add man page for vis-complete(1)Christian Hesse
Signed-off-by: Christian Hesse <mail@eworm.de>
2017-01-16make: define EXECUTABLES and install in a loopChristian Hesse
Define EXECUTABLES and install in a loop. Also fix uninstalling man pages.
2017-01-16single: include tools vis-{clipboard,complete,menu,open}Christian Hesse
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é Tanner
2017-01-15view: fix check to prevent duplicate cursor creationMarc André Tanner
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é Tanner
Close #458
2017-01-15vis: do not crash when given insufficient arguments to :mapMarc André Tanner
Fix #459
2017-01-14sam: do not clobber error value when failing to parse a groupMarc André Tanner
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é Tanner
<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é Tanner
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é Tanner
2017-01-13test: updateMarc André Tanner
2017-01-13test/sam: add test for new grouping semanticsMarc André Tanner
The more idomatic ,x/[a-zA-Z]+/{ g/Emacs/ v/....../ c/vi/ g/vi/ v/.../ c/Emacs/ } does not seem to work on the sam version from 9base as shipped by Ubuntu 12.04 LTS and used in the Travis environment.
2017-01-13test: change existing tests to avoid substitute commandMarc André Tanner
2017-01-13sam: remove s (substitute) command use x (extract) and c (change) insteadMarc André Tanner
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-13test/vim: tweak test to not rely on only first substitutionMarc André Tanner
Now that :s/foo/bar/ is implemented in terms of :x/foo/c/bar/ all occurences of foo will be replaced not just the first one.
2017-01-13test/vis: tweak structural regex tests to take new selection into accountMarc André Tanner
2017-01-13sam: allow empty text specifiersMarc André Tanner
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é Tanner
& 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é Tanner
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é Tanner
2017-01-13text-regex: slightly clean up headerMarc André Tanner
We generally omit parameter names in function prototypes when their meaning is clear.
2017-01-13sam: create new selections for changed rangesMarc André Tanner
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é Tanner
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é Tanner
2017-01-12tests: make :help output actually visibleMarc André Tanner
The problem is that :qall in the win open event would immediately close the window before anyting gets executed.
2017-01-12test/sam: adapt tests to new grouping semanticsMarc André Tanner
2017-01-11ui: improve editor suspensionMarc André Tanner
Send SIGSTOP to process group. This should fix job control when launched from a script.
2017-01-11single: allow to build self-extracting executableChristian Hesse
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>