538 Commits
Author SHA1 Message Date
josh 22171cacf9 begin using BufferView class to control the BufferPane layout 2017-09-20 19:34:57 -04:00
josh 382552d25c use a simple rectangle for insert-mode cursor 2017-09-19 20:45:56 -04:00
josh 5c3a095aeb BufferView: test and fix scrolling through super long lines 2017-09-13 20:57:42 -04:00
josh 70aba6e2d4 BufferView: add scroll_view_{up,down}() 2017-09-13 20:08:09 -04:00
josh 84759d0a36 BufferView: add functions to move cursor up/down by screen row 2017-09-11 22:43:38 -04:00
josh fcd198b691 Add cursor movement logic to BufferView 2017-09-11 21:10:02 -04:00
josh 7ad28ceb67 update BufferLineWalker unit tests for full coverage 2017-09-04 15:57:03 -04:00
josh 74dfb7ce78 more BufferView tests, 100% coverage 2017-09-04 15:45:10 -04:00
josh f3604e1850 BufferView optimization: avoid calling calculate_rows_in_cursor_line() twice per update() 2017-09-03 18:27:19 -04:00
josh 359f5bed9f BufferView updates cursor screen row to follow moved cursor 2017-09-03 18:15:37 -04:00
josh 14e285041e BufferView: user must call update() after all changes and before vert_iter() 2017-09-03 17:34:41 -04:00
josh 5b35a35b24 BufferView stores all lines in view after update() 2017-09-03 17:31:56 -04:00
josh 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
josh b89f348602 add some initial BufferView unit tests 2017-08-29 23:20:42 -04:00
josh 8e0796decf move much of the buffer layout code from BufferPane to BufferView 2017-08-29 23:03:49 -04:00
josh 545e73bd07 use BufferLineWalker from BufferView 2017-08-24 22:03:56 -04:00
josh 52751338c3 add BufferLineWalker unit tests 2017-08-24 21:44:10 -04:00
josh 67e4419d86 fix CharacterWidthDeterminer to be an abstract class 2017-08-24 21:44:01 -04:00
josh 3d4e8230fe move character iteration logic from BufferView to BufferLineWalker 2017-08-24 20:57:59 -04:00
josh 65df0c2320 more work on BufferView 2017-05-07 19:52:21 -04:00
josh e243dd654c add BufferView::iter_cols() 2017-05-07 19:33:37 -04:00
josh 12e5a99e17 add CharacterWidthDeterminer 2017-05-07 19:28:57 -04:00
josh 43052321c4 add initial BufferView class 2017-05-07 19:10:00 -04:00
josh c071c43c5c add CommandMap class 2017-02-04 16:16:48 -05:00
josh ced2d2856b add "nop" and "delete" commands 2017-02-04 16:16:39 -05:00
josh 92a7dbe922 add Command module 2017-01-30 22:37:46 -05:00
josh 89687100f3 add another BUffer unit test 2017-01-28 12:24:26 -05:00
josh add43beb92 fix bug counting lines to adjust iterators by in Buffer::lines_in_data() 2017-01-28 12:23:58 -05:00
josh 903b35f8bb test CommandParser ignores newlines at end of command 2017-01-28 11:54:43 -05:00
josh fbc942c4f7 add "q" command to quit 2017-01-27 21:00:52 -05:00
josh ee0d1e0d0e remove BufferPane::write_file() and handle writing from Window class 2017-01-27 20:58:15 -05:00
josh 6779890ca9 add "w" command to write the file 2017-01-27 20:53:21 -05:00
josh 2ae1d72d6a Buffer::filename() returns shared_ptr to string 2017-01-27 20:50:15 -05:00
josh 37d27d6063 get ready to handle commands entered 2017-01-27 20:44:24 -05:00
josh 3bcc360c81 CommandParser: skip newline character 2017-01-27 20:43:00 -05:00
josh 3fc7dc62f8 allow Shift+Backspace to act as Backspace in insert mode 2017-01-26 22:16:11 -05:00
josh 9a34bfe4ba Draw crosshair for the current line to the end of the screen row 2017-01-24 22:09:10 -05:00
josh 210a7b82c5 Fix up CommandParser operation and add unit tests 2017-01-23 21:47:40 -05:00
josh 0da4108c64 split out task to build unit tests to "build_tests" task 2017-01-23 21:19:40 -05:00
josh 116faff062 add CommandParser class 2017-01-22 20:16:51 -05:00
josh 726bd8bfaa add EncodedString::iterator::offset() and size() 2017-01-22 19:20:33 -05:00
josh d7315b0268 EncodedString: use a vector to store data 2017-01-22 18:35:18 -05:00
josh 0c2ac5b325 disallow creating an EncodedString with no data 2017-01-21 14:22:29 -05:00
josh fcabf60551 make EncodedString safe to copy 2017-01-21 14:21:51 -05:00
josh 13ca7afd0c Buffer::get_string() returns an EncodedString 2017-01-21 14:15:54 -05:00
josh 7e7b0497a7 allow comparison between an EncodedString and a std::string 2017-01-21 14:06:06 -05:00
josh fce9f87265 add EncodedString module 2017-01-21 13:28:20 -05:00
josh 3b1199fbdc Error out of configure script if submodules have not been checked out 2017-01-21 13:00:20 -05:00
josh bb8dc6a6a4 fix expanding command buffer pane when cursor wraps to next line 2017-01-21 12:37:41 -05:00
josh 8d6112ed32 fix drawing highlight when in insert mode at the end of a line 2017-01-21 12:31:50 -05:00