summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-02-18vis-lua: expose mode constants to luaMarc André Tanner
2016-02-18vis-lua: expose win.syntaxMarc André Tanner
2016-02-18vis-lua: expose cursor:to(line, col)Marc André Tanner
2016-02-18vis-lua: promote vis to a real objectMarc André Tanner
That is from now on use vis:method instead of vis.method
2016-02-18vis: add possibility to bind keys to lua functionsMarc André Tanner
2016-02-18map: set errno to EEXIST when trying to map_put a duplicate valueMarc André Tanner
2016-02-18map: set errno to ENOENT if prefix for map_closest does not existMarc André Tanner
2016-02-18vis: fix possible undefined zero allocationMarc André Tanner
2016-02-18vis: enable number increment <C-a> and decrement <C-x> in normal modeMarc André Tanner
2016-02-18vis: use <Tab> to align multiple cursors in normal modeMarc André Tanner
2016-02-18vis: add insfrastructure to support global key mappingsMarc André Tanner
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 Burke
2016-02-16Update make standalone to use musl-1.1.13Marc André Tanner
2016-02-16Display ASCII-127 (DEL) character as ^?Richard Burke
2016-02-15Add text object to cover lines with same indentation levelMarc André Tanner
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é Tanner
Based on a patch by Erlend Fagerheim.
2016-02-13vis: in insert mode <S-Tab> aligns all cursors by inserting spacesMarc André Tanner
2016-02-13Convert call sites of text_line_char_{get,set} to text_line_width_{get,set}Marc André Tanner
2016-02-13text-motion: add functions to get/set position based on display widthMarc André Tanner
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é Tanner
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é Tanner
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é Tanner
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é Tanner
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é Tanner
Also fix a few spelling mistakes.
2016-02-12Mark some tables as constMarc André Tanner
This allows them to be placed into the read only ELF section.
2016-02-12Improve large file supportMarc André Tanner
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é Tanner
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é Tanner
The behaviour when no match is found is not yet optimal.
2016-02-11vis: add support for different kind of text objectsMarc André Tanner
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é Tanner
2016-02-10vis: simplify modes implementationMarc André Tanner
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é Tanner
2016-02-10vis: implement gf and <C-w>gf to open filename under cursorMarc André Tanner
Based on a patch by Silvan Jegen.
2016-02-07vis: export vis_window_closableMarc André Tanner
2016-02-07vis: mark output of pipe command as savedMarc André Tanner
2016-02-07text-object: introduce text_object_filenameMarc André Tanner
2016-02-07vis: implement number increment <C-a> and decrement <C-x> functionalityMarc André Tanner
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é Tanner
2016-02-03text-object: add utility function for abitrarily delimited text objectsMarc André Tanner
2016-02-03text-object: hide ugly casts for isboundary behind a #defineMarc André Tanner
2016-02-03text-object: hide ugly casts for isspace behind a #defineMarc André Tanner
2016-02-03text-motion: hide ugly casts for isboundary behind a #defineMarc André Tanner
2016-02-03text-motion: hide ugly casts for isspace behind a #defineMarc André Tanner
2016-02-03text-object: merge word/WORD implementationsMarc André Tanner
2016-02-03text-motion: export custom word motion functionsMarc André Tanner
2016-02-03text-object: fix bugs in outer word `aw` implementationMarc André Tanner
2016-02-03fix {, }, (, ) movementsMarkus Teich
- 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é Tanner
2016-02-01Improve cursor position after :substitute commandMarc André Tanner
2016-01-31Rename stderr field to errMarkus Teich
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)