aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-02-12vis: fix printf format string used in number_increment_decrementMarc André Tanner1-2/+2
The field width specifier '*' expects an int. be fine here since we are expecting a small positive number and the result is
2016-02-12Update README to reflect recent developmentMarc André Tanner1-32/+88
Also fix a few spelling mistakes.
2016-02-12Mark some tables as constMarc André Tanner9-21/+21
This allows them to be placed into the read only ELF section.
2016-02-12Improve large file supportMarc André Tanner4-8/+31
Disable absolute line numbers for large files (currently anything bigger than 32MiB). This speeds up moving around with for example nn% since no new lines need to be calculated. Of course movements like :nn will be unaffected. The optimizations can be disabled by explicitly enabling absolute line numbers as in :set number
2016-02-11vis: try to make * and # motions work on more systemsMarc André Tanner1-2/+7
The used regular expression \<%s\> where %s refers to the search term/word under cursor is not POSIX compliant but happens to work on both musl and glibc. First try the alternate syntax [[:<:]]%s[[:>:]] which works on Mac OS X. The reason it is done in this order is that musl/glibc will reject it as invalid pattern when compiling while the Mac OS X libc will accept \<%s\> but not match anything. Based on a patch by Erlend Fagerheim.
2016-02-11vis: implement gn and gN text objectsMarc André Tanner6-0/+51
The behaviour when no match is found is not yet optimal.
2016-02-11vis: add support for different kind of text objectsMarc André Tanner3-33/+42
Up until now text objects would only ever grow/expand if applied multiple times. The new SPLIT type allows text objects which cover a completely different range when applied with a count.
2016-02-10vis: tweak <F1> help text list all available key actionsMarc André Tanner1-3/+12
2016-02-10vis: simplify modes implementationMarc André Tanner4-10/+4
Make replace mode a child of insert mode and visual line a child of visual mode. This means any key binding for the former is automatically available in the latter. Also keys can not be unmapped solely from the child modes.
2016-02-10vis: implement yank register "0Marc André Tanner3-0/+5
2016-02-10vis: implement gf and <C-w>gf to open filename under cursorMarc André Tanner2-0/+57
Based on a patch by Silvan Jegen.
2016-02-07vis: export vis_window_closableMarc André Tanner3-8/+15
2016-02-07vis: mark output of pipe command as savedMarc André Tanner1-0/+3
2016-02-07text-object: introduce text_object_filenameMarc André Tanner2-0/+16
2016-02-07vis: implement number increment <C-a> and decrement <C-x> functionalityMarc André Tanner1-0/+59
The default key bindings are not changed for now, because <C-a> conflicts with multiple cursor alignment.
2016-02-07text-object: introduce text_object_numberMarc André Tanner2-0/+27
2016-02-03text-object: add utility function for abitrarily delimited text objectsMarc André Tanner2-0/+15
2016-02-03text-object: hide ugly casts for isboundary behind a #defineMarc André Tanner1-29/+29
2016-02-03text-object: hide ugly casts for isspace behind a #defineMarc André Tanner1-4/+5
2016-02-03text-motion: hide ugly casts for isboundary behind a #defineMarc André Tanner2-20/+21
2016-02-03text-motion: hide ugly casts for isspace behind a #defineMarc André Tanner1-17/+19
2016-02-03text-object: merge word/WORD implementationsMarc André Tanner1-89/+37
2016-02-03text-motion: export custom word motion functionsMarc André Tanner2-4/+11
2016-02-03text-object: fix bugs in outer word `aw` implementationMarc André Tanner1-2/+2
2016-02-03fix {, }, (, ) movementsMarkus Teich1-70/+44
- split the functions, so the algorithms are more clear - paragraph movements work backwards - paragraph movements work consistently with \r\n line breaks always placing the cursor on the first character of the first empty line before/after the paragraph - sentence movements now work better at BOF/EOF - save a few lines of code
2016-02-01Change vis-{copy,paste} to use X clipboard xsel -bMarc André Tanner2-2/+2
2016-02-01Improve cursor position after :substitute commandMarc André Tanner1-5/+5
2016-01-31Rename stderr field to errMarkus Teich1-10/+10
The name `stderr` was confused by the compiler with the following defines: $ grep -r "define stderr" ./dependency/install/usr/include/stdio.h:#define stderr (stderr) ./dependency/sources/musl-1.1.12/include/stdio.h:#define stderr (stderr)
2016-01-30Implement "A - "Z registersMarc André Tanner5-2/+20
2016-01-30Implement system clipboard registers "* and "+Marc André Tanner12-11/+104
Both registers are currently treated identically. The actual system integration is performed by two shell scripts vis-copy and vis-paste.
2016-01-30Implement blackhole register "_Marc André Tanner5-10/+41
2016-01-30Cleanup register implementationMarc André Tanner7-21/+29
2016-01-30Improve Lua error reportingMarc André Tanner7-10/+70
Display Lua errors in a dedicated window/file. A typo or missing dependency (e.g. lpeg) in visrc.lua will no longer silently fail without any indication. The Lua integration in view.h is not yet converted.
2016-01-29vis: implement new pipe/write out command :| or :w !Marc André Tanner1-1/+52
2016-01-29vis: factor out filter command implementationMarc André Tanner2-50/+97
2016-01-28vis: factor out common code to create internal fileMarc André Tanner1-6/+11
2016-01-28lexer: snyc with upstream scintillua 3.6.3-1Marc André Tanner6-8/+292
2016-01-28vis: implement nn%Marc André Tanner4-6/+25
Moves to the given percentage of the file in bytes (not lines). This is useful when dealing with huge files because it is a constant time operation. Performance could still be improved by adapting the display code not to rely on line numbers at all.
2016-01-28vis: clean up count handlingMarc André Tanner4-23/+32
There are cases where zero can also be a legitimate count.
2016-01-27text-motion: change text_bracket_match APIMarc André Tanner4-7/+7
2016-01-27vis: let % move to next special char if not already thereMarc André Tanner1-1/+22
2016-01-27vis: apply insert register <C-r> to all cursorsMarc André Tanner1-5/+2
Note that cursors currently have only one default register.
2016-01-27vis: remove unused struct Mode member 'is_user'Marc André Tanner2-8/+1
2016-01-20vis: make <End> in insert/replace mode move to the end of lineMarc André Tanner2-1/+8
The behaviour of <End> vs $ in various modes may still be inconsistent, but at least it can now be configured via key bindings.
2016-01-20vis: further improve selection restore codeMarc André Tanner1-0/+6
This is still not 100% correct for all possible cases, but should work for those currently used by vis e.g. the shift left operator.
2016-01-20Fix to/till movementsMarkus Teich2-7/+12
Some corner cases allowed to move between lines with the to/till movements. The change in find_prev serves two purposes. When searching for a string which the cursor is already above the match, this match is returned (pos += len). Secondly there was a failure when searching for strings with len == 1 which lead to `matched == 0` which was always true, even if the string was not found, therefore leading to a wrong return value.
2016-01-19Add usage example for file open dialog to READMESilvan Jegen1-2/+10
2016-01-19vis: fix # and * motions to only match wordsMarc André Tanner1-9/+12
Word matching is currently implemented by using the \< and \> anchors of the regex(3) library part of libc. Another option would have been to use the text_object_word_find_{next,prev} functions from text-objects.c. The used search term is currently not added to the search history. Based on a patch by Markus Teich.
2016-01-19vis: switch to normal mode if a :-command was successful in visual modeMarc André Tanner1-2/+8
2016-01-19vis: fix default command prompt in visual modeMarc André Tanner1-1/+1