aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-02-18vis-lua: expose mode constants to luaMarc André Tanner2-2/+30
2016-02-18vis-lua: expose win.syntaxMarc André Tanner1-0/+17
2016-02-18vis-lua: expose cursor:to(line, col)Marc André Tanner1-2/+21
2016-02-18vis-lua: promote vis to a real objectMarc André Tanner4-17/+73
That is from now on use vis:method instead of vis.method
2016-02-18vis: add possibility to bind keys to lua functionsMarc André Tanner2-1/+87
2016-02-18map: set errno to EEXIST when trying to map_put a duplicate valueMarc André Tanner1-0/+1
2016-02-18map: set errno to ENOENT if prefix for map_closest does not existMarc André Tanner1-1/+1
2016-02-18vis: fix possible undefined zero allocationMarc André Tanner1-1/+1
2016-02-18vis: enable number increment <C-a> and decrement <C-x> in normal modeMarc André Tanner1-0/+2
2016-02-18vis: use <Tab> to align multiple cursors in normal modeMarc André Tanner2-2/+2
2016-02-18vis: add insfrastructure to support global key mappingsMarc André Tanner5-0/+23
Except for insert/replace mode keys get translated before any key bindings are evaluated. This is useful for non-english/latin keyboard layouts.
2016-02-17Display NUL bytes correctlyRichard Burke2-5/+5
2016-02-16Update make standalone to use musl-1.1.13Marc André Tanner1-2/+2
2016-02-16Display ASCII-127 (DEL) character as ^?Richard Burke1-4/+5
2016-02-15Add text object to cover lines with same indentation levelMarc André Tanner6-0/+68
By default it is mapped to i<Tab> and a<Tab> however there is currently no difference between the inner and regular version.
2016-02-15vis: add <C-c> as an alias for <Escape> in normal modeMarc André Tanner1-2/+2
Based on a patch by Erlend Fagerheim.
2016-02-13vis: in insert mode <S-Tab> aligns all cursors by inserting spacesMarc André Tanner3-0/+47
2016-02-13Convert call sites of text_line_char_{get,set} to text_line_width_{get,set}Marc André Tanner3-8/+7
2016-02-13text-motion: add functions to get/set position based on display widthMarc André Tanner2-0/+81
This is inherently a tricky thing to do because we cannot rely on the current display state. The reason being that the position/cursor which is modified might not currently be in the visible area. Tabs are a particular problem because they have a variable display width. However this new code is certainly not worse than the current behaviour which relies on text_line_char_{get,set} and thus simply counts graphemes. Not yet completely convinced that this is the right approach.
2016-02-12vis: respect window local mappings for child modesMarc André Tanner3-16/+17
Since commit 197ab824206335eab7ceed774ddeccac18fafc09 visual line and replace modes are child modes, hence we also have to consider the window local key bindings of their respective parent modes. For example in replace mode the key lookup chain is now as follows: window local replace mode -> global replace mode -> window local insert mode -> global insert mode This fixes <Enter> behaviour in prompt for replace and visual line modes.
2016-02-12vis: remove trailing new line before executing prompt commandMarc André Tanner1-1/+5
This should actually make the search history functionality work. The :-commands already worked because of commit e745b5ef. Removing all trailing white spaces would be the wrong thing to do for the search, because they might be part of the desired search string.
2016-02-12text-object: simplify text_object_range implementationMarc André Tanner1-6/+5
We can copy the initial iterator and use it in reverse direction.
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)