|
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 |
|
|
fca838fcbf
|
fix problem of record_change() not receiving contiguous range by using GapBuffer::copy_to()
|
2017-01-09 22:11:08 -05:00 |
|
|
b9313ad606
|
add GapBuffer::copy_to()
|
2017-01-09 22:05:43 -05:00 |
|
|
5de13644de
|
add Buffer::INVALID_CHANGE_OPERATION_INDEX
|
2017-01-09 21:46:52 -05:00 |
|
|
f3753be4eb
|
refactor Buffer insert and delete operations
add Buffer functions to insert/erase data chunks
|
2017-01-09 21:34:16 -05:00 |
|
|
66aa9c5235
|
add Buffer::Iterator::{prev,next}()
|
2017-01-09 20:26:18 -05:00 |
|
|
6108d09e8d
|
add Buffer::Iterator::warp_to_offset()
|
2017-01-07 16:34:01 -05:00 |
|
|
904ac01a1c
|
record the parent ID of each change operation
|
2017-01-07 16:22:42 -05:00 |
|
|
5f37229c19
|
when adjusting cursor iterators, always keep them valid
|
2017-01-07 16:22:28 -05:00 |
|
|
85dbf75b11
|
add Buffer::add_cursor()
|
2017-01-07 15:03:51 -05:00 |
|
|
924d005020
|
Buffer: refactor common iterator warping code into warp_iterators()
|
2017-01-07 14:15:46 -05:00 |
|
|
38a734b5c1
|
Save change operations
|
2017-01-07 13:56:10 -05:00 |
|
|
348d11e992
|
Buffer: allow insert_code_point() to be called outside of insert mode
|
2017-01-07 13:22:05 -05:00 |
|
|
21320d9ea7
|
Begin recording all buffer changes to prepare for undo tree
|
2017-01-07 13:19:49 -05:00 |
|
|
a8b39f8884
|
Fix text insertion point not following cursor
Always supply iterator position when inserting code points
|
2017-01-05 21:21:38 -05:00 |
|
|
95381faedc
|
fix finding runtime files relative to the executable path
|
2017-01-03 19:01:48 -05:00 |
|
|
4017d8237e
|
Add System::executable_path()
|
2017-01-03 18:59:12 -05:00 |
|
|
237dbf9c2b
|
add 'g' and 'G' commands to go to first and last line in buffer
|
2016-12-28 14:07:28 -05:00 |
|
|
8df75f5ab0
|
add Buffer::Iterator::INVALID_CODE_POINT constant
|
2016-12-28 13:24:52 -05:00 |
|
|
929bda355f
|
add an EOF iterator to track the end of the file and number of lines
|
2016-12-28 13:03:38 -05:00 |
|
|
64ed3174ac
|
record buffer filename
|
2016-12-27 20:10:58 -05:00 |
|
|
38d615ecc4
|
insert a \n to follow new content when inserting into an empty buffer
|
2016-12-27 15:10:45 -05:00 |
|
|
723b96f624
|
fix insert position when erasing a code point in insert mode
|
2016-12-27 14:07:46 -05:00 |
|
|
64a09fca0f
|
add Buffer::erase_code_point()
|
2016-12-26 14:01:24 -05:00 |
|
|
92b3e888b5
|
Add GapBuffer::erase()
|
2016-12-26 13:28:37 -05:00 |
|