270 Commits

Author SHA1 Message Date
5c3a095aeb BufferView: test and fix scrolling through super long lines 2017-09-13 20:57:42 -04:00
70aba6e2d4 BufferView: add scroll_view_{up,down}() 2017-09-13 20:08:09 -04:00
84759d0a36 BufferView: add functions to move cursor up/down by screen row 2017-09-11 22:43:38 -04:00
fcd198b691 Add cursor movement logic to BufferView 2017-09-11 21:10:02 -04:00
f3604e1850 BufferView optimization: avoid calling calculate_rows_in_cursor_line() twice per update() 2017-09-03 18:27:19 -04:00
359f5bed9f BufferView updates cursor screen row to follow moved cursor 2017-09-03 18:15:37 -04:00
14e285041e BufferView: user must call update() after all changes and before vert_iter() 2017-09-03 17:34:41 -04:00
5b35a35b24 BufferView stores all lines in view after update() 2017-09-03 17:31:56 -04:00
4b3e1ea7e7 Change BufferView and BufferLineWalker to return iterator objects for iteration instead of using lambdas for callbacks. 2017-09-03 17:05:01 -04:00
b89f348602 add some initial BufferView unit tests 2017-08-29 23:20:42 -04:00
8e0796decf move much of the buffer layout code from BufferPane to BufferView 2017-08-29 23:03:49 -04:00
545e73bd07 use BufferLineWalker from BufferView 2017-08-24 22:03:56 -04:00
67e4419d86 fix CharacterWidthDeterminer to be an abstract class 2017-08-24 21:44:01 -04:00
3d4e8230fe move character iteration logic from BufferView to BufferLineWalker 2017-08-24 20:57:59 -04:00
65df0c2320 more work on BufferView 2017-05-07 19:52:21 -04:00
e243dd654c add BufferView::iter_cols() 2017-05-07 19:33:37 -04:00
12e5a99e17 add CharacterWidthDeterminer 2017-05-07 19:28:57 -04:00
43052321c4 add initial BufferView class 2017-05-07 19:10:00 -04:00
c071c43c5c add CommandMap class 2017-02-04 16:16:48 -05:00
ced2d2856b add "nop" and "delete" commands 2017-02-04 16:16:39 -05:00
92a7dbe922 add Command module 2017-01-30 22:37:46 -05:00
add43beb92 fix bug counting lines to adjust iterators by in Buffer::lines_in_data() 2017-01-28 12:23:58 -05:00
2ae1d72d6a Buffer::filename() returns shared_ptr to string 2017-01-27 20:50:15 -05:00
3bcc360c81 CommandParser: skip newline character 2017-01-27 20:43:00 -05:00
210a7b82c5 Fix up CommandParser operation and add unit tests 2017-01-23 21:47:40 -05:00
116faff062 add CommandParser class 2017-01-22 20:16:51 -05:00
726bd8bfaa add EncodedString::iterator::offset() and size() 2017-01-22 19:20:33 -05:00
d7315b0268 EncodedString: use a vector to store data 2017-01-22 18:35:18 -05:00
0c2ac5b325 disallow creating an EncodedString with no data 2017-01-21 14:22:29 -05:00
fcabf60551 make EncodedString safe to copy 2017-01-21 14:21:51 -05:00
13ca7afd0c Buffer::get_string() returns an EncodedString 2017-01-21 14:15:54 -05:00
7e7b0497a7 allow comparison between an EncodedString and a std::string 2017-01-21 14:06:06 -05:00
fce9f87265 add EncodedString module 2017-01-21 13:28:20 -05:00
671ba8312a Get the page size on Windows 2017-01-20 14:45:41 -05:00
276c756bb7 fix Buffer::clear() to update iterators 2017-01-18 22:51:33 -05:00
47d15ca858 add Buffer::clear() and Buffer::set_string() 2017-01-18 22:36:41 -05:00
22b2cd426e add GapBuffer::clear() and GapBuffer::set_string() 2017-01-18 22:20:36 -05:00
08529fc115 keep cursors off newlines after applying change operations when not in insert mode 2017-01-15 21:44:57 -05:00
2e2cdfdb81 bug fix: when applying change operations in reverse, apply their change units in reverse order 2017-01-15 20:58:18 -05:00
4e03fbc3de fix bug of undo/redo creating new change operations themselves 2017-01-15 20:33:37 -05:00
861aaed940 add unit test for coalescing erase change units within a change operation 2017-01-15 20:23:27 -05:00
3b1bea80aa fix bug dealing with coalescing erase change units within one change operation 2017-01-15 20:23:09 -05:00
e98454c771 add unit tests for buffer insert/erase character 2017-01-15 19:46:33 -05:00
0ab26dea2f move GapBuffer::copy_to() implementation out of header file 2017-01-14 16:55:13 -05:00
f7e077d8ef Use VirtualAlloc() instead of mmap() on Windows 2017-01-14 09:48:54 -05:00
2c633a9ddb add TODO for supporting undo tree 2017-01-11 22:53:19 -05:00
f1815d04d9 do not attempt to redo past the last available operation 2017-01-11 22:53:19 -05:00
cac339a9f2 do not store a change operation with no change units 2017-01-11 22:53:19 -05:00
2057c69585 add Buffer::{undo,redo}() 2017-01-11 22:18:02 -05:00
e0615011a3 add Buffer::apply_change_{operation,unit}() for undo/redo 2017-01-11 21:55:59 -05:00