|
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 |
|