| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2015-08-06 | vis: implement al and il text objects | Marc André Tanner | 5 | -4/+35 | |
| 2015-08-06 | vis: implement gp and gP add count support to put operations | Marc André Tanner | 2 | -15/+46 | |
| 2015-08-02 | Add short demo screencast to README | Marc André Tanner | 1 | -0/+2 | |
| 2015-08-02 | vis: use file open dialog also for :edit | Marc André Tanner | 1 | -1/+1 | |
| 2015-08-02 | Update README | Marc André Tanner | 1 | -185/+141 | |
| 2015-08-02 | vis: use I and A instead of CTRL-O for new cursors in visual mode | Marc André Tanner | 2 | -3/+18 | |
| I and A creates a new cursor at start/end of every selected line. | |||||
| 2015-08-02 | text-motion: make text_bracket_match more robust | Marc André Tanner | 1 | -8/+17 | |
| Brackets which occur inside strings are ignored. | |||||
| 2015-08-02 | vis: add text objects `af` and `if` | Marc André Tanner | 4 | -0/+29 | |
| They try to match C-like function definitions. The inner variant only contains the function body. | |||||
| 2015-08-02 | vis: add motions [[, [], ][, ]] | Marc André Tanner | 4 | -0/+127 | |
| They behave not like in vim, but instead try to find the start/end of C-like function definitions. The first character stands for the direction [ for backwards, ] for forwards. The second character denotes the start [ or end ] respectively. | |||||
| 2015-08-01 | text-motion: fix text_find_{next,prev} | Marc André Tanner | 1 | -5/+12 | |
| It is after all a stupid O(n*m) algorithm, hence restart after a failed partial match. Code like this would benefit from a proper test suite ... | |||||
| 2015-08-01 | vis: support `ae` and `ie` text objects | Marc André Tanner | 5 | -0/+30 | |
| 2015-08-01 | view: hide API to free main cursor | Marc André Tanner | 3 | -4/+3 | |
| 2015-07-31 | vis: cleanup handling of charwise/linewise motions | Marc André Tanner | 5 | -91/+73 | |
| Also text objects in visual mode should now work better. | |||||
| 2015-07-28 | vis: fix one more coverity scan warning | Marc André Tanner | 1 | -2/+2 | |
| With the current code this will never cause a NULL dereference since it is checked at the call site. However it makes sense to check it anyway. | |||||
| 2015-07-28 | vis: fix bugs uncovered by coverity scan | Marc André Tanner | 1 | -2/+4 | |
| 2015-07-28 | vis: fix join operator | Marc André Tanner | 1 | -6/+9 | |
| Only skip last line break if range comes from linewise visual mode. | |||||
| 2015-07-28 | vis: pass cursor to operator implementations | Marc André Tanner | 2 | -0/+2 | |
| 2015-07-28 | text-util: introduce text_range_equal | Marc André Tanner | 2 | -0/+8 | |
| 2015-07-28 | text-object: introduce utility function text_range_is_linewise | Marc André Tanner | 3 | -1/+9 | |
| 2015-07-28 | vis: use multiple cursor/selection infrastructure | Marc André Tanner | 4 | -1/+81 | |
| This commits introduces the following keybindings, in normal mode: CTRL-N select word the cursor is currently over, switch to visual mode CTRL-P remove least recently added cursor ESC if a selection is active, clear it. Otherwise dispose all but the primary cursor. In visual mode: CTRL-N create new cursor and select next word matching current selection CTRL-X clear (skip) current selection, but select next matching word CTRL-P remove least recently added cursor | |||||
| 2015-07-28 | vis: do not move cursor in multicursor mode after undo/redo | Marc André Tanner | 1 | -2/+6 | |
| 2015-07-28 | vis: try to align cursors on the same column with CTRL-A | Marc André Tanner | 2 | -0/+20 | |
| 2015-07-28 | text-motion: introduce text_line_char_{get,set} | Marc André Tanner | 2 | -6/+31 | |
| 2015-07-28 | vis: CTRL+J and CTRL+K creates a new cursor on the line below/above | Marc André Tanner | 2 | -0/+17 | |
| 2015-07-28 | vis: ESC in normal mode clears all cursors | Marc André Tanner | 4 | -5/+25 | |
| 2015-07-28 | vis: add per cursor registers | Marc André Tanner | 3 | -2/+17 | |
| 2015-07-28 | vis: add an operator to create new cursors | Marc André Tanner | 2 | -0/+16 | |
| The operator creates a new cursor at the start of every line covered by the given range. It is currently only available as CTRL+O in visual mode. | |||||
| 2015-07-28 | text-motion: add functions to iterate over lines of a range | Marc André Tanner | 2 | -0/+38 | |
| 2015-07-28 | text-util: add text_range_contains | Marc André Tanner | 2 | -1/+7 | |
| 2015-07-28 | text: move utility functions to separate file | Marc André Tanner | 8 | -50/+64 | |
| 2015-07-28 | ui: try to fixup unicode display issues | Marc André Tanner | 1 | -0/+7 | |
| The handling of combining characters needs to be reviewed there are still strange things going on. This only covers up some of the artifacts. | |||||
| 2015-07-26 | view: use a mark to keep track of the visible area | Marc André Tanner | 1 | -2/+10 | |
| This should fix "corruptions" caused by wrong offsets when editing the same file in multiple windows. | |||||
| 2015-07-26 | view: do not set cursor position after resize | Marc André Tanner | 1 | -1/+0 | |
| The problem is that a cursor movement might cause a redraw which in turn causes the sidebar width to change thus the view to be resized which will override the cursor position. | |||||
| 2015-07-26 | view: always fill out complete cell matrix | Marc André Tanner | 3 | -34/+26 | |
| 2015-07-26 | vis: add infrastructure to support multiple cursors/selections | Marc André Tanner | 8 | -370/+607 | |
| This cleans up the existing selection handling code and adds the necessary bits to eventually support multiple cursors/selections. The cursor position is kept track of using marks, which means retrieving the cursor position is no longer a constant time operation. Furthermore the terminal cursor is no longer used, instead the whole window is redrawn after every cursor movement. | |||||
| 2015-07-26 | text-object: add new functions to search for words | Marc André Tanner | 2 | -0/+34 | |
| 2015-07-25 | text: handle marks set to 0 and text_size(...) | Marc André Tanner | 1 | -0/+8 | |
| 2015-07-25 | text: add text_range_overlap | Marc André Tanner | 2 | -0/+8 | |
| 2015-07-24 | text-motion: introduce text_line_{up,down} | Marc André Tanner | 2 | -0/+15 | |
| 2015-07-23 | text-object: add text_range_linewise | Marc André Tanner | 2 | -0/+11 | |
| Takes a range and extends both ends to cover the remaining part of the line. | |||||
| 2015-07-22 | text: introduce text_range_new | Marc André Tanner | 2 | -0/+10 | |
| 2015-07-21 | ui: further separate curses related user interface code | Marc André Tanner | 9 | -36/+60 | |
| By now ui-curses.[hc] are the only files dealing directly with curses related functions. Integration of a proper mainloop is still pending. | |||||
| 2015-07-20 | vis: improve insertion of verbatim characters via CTRL-V in insert mode | Marc André Tanner | 3 | -7/+144 | |
| Recognized formats are: CTRL-V nnn decimal value nnn CTRL-V onnn or CTRL-V Onnn octal value nnn CTRL-V xnn or CTRL-V Xnn hex value nn CTRL-V unnnn Unicode codepoint nnnn CTRL-V Unnnnnnnn Unicode codepoint nnnnnnnn Leading zeros can be omitted, any illegal character for the given format will be ignored and terminates the numerical code. | |||||
| 2015-07-19 | vis: handle file truncation more gracefully | Marc André Tanner | 5 | -0/+52 | |
| If we use the file / virtual memory system as cache (using mmap(2)) and another process truncates the file we are editing, we have a problem. All we can do is catch the resulting SIGBUS, close the corresponding window and print a warning message. To test this use: $ dd if=/dev/zero of=TEST bs=8M count=1 $ vis TEST :! echo TRUNCATE > TEST | |||||
| 2015-07-19 | text: move regex related functions to separate file | Marc André Tanner | 6 | -77/+88 | |
| Eventually this should probably be rewritten to use an iternal regex engine, currently it has unacceptable memory usage, it copies the whole text. | |||||
| 2015-07-19 | text: slight cleanup, add a few comments | Marc André Tanner | 2 | -23/+56 | |
| 2015-07-11 | vis: rename struct member to avoid conflict with standard library | Marc André Tanner | 2 | -3/+3 | |
| Closes #60 | |||||
| 2015-07-10 | vis: add a file open dialog | Marc André Tanner | 3 | -19/+107 | |
| For this to work make sure you have vis-open and slmenu or dmenu somewhere in $PATH. For now the file dialog is shown for :open, :split and :vsplit when the argument is either . (a dot) or looks like a file pattern. For example :open *.[ch] will show a listing of all C source and header files in the current directory. Use a fuzzy search to make your choice. | |||||
| 2015-07-10 | vis: fix detection of file changes outside the editor | Marc André Tanner | 1 | -2/+2 | |
| 2015-07-10 | text: upon successfull file save store new modification time | Marc André Tanner | 1 | -7/+11 | |
