Commit Graph
190 Commits
Author SHA1 Message Date
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 671ba8312a Get the page size on Windows 2017-01-20 14:45:41 -05:00
josh 276c756bb7 fix Buffer::clear() to update iterators 2017-01-18 22:51:33 -05:00
josh 47d15ca858 add Buffer::clear() and Buffer::set_string() 2017-01-18 22:36:41 -05:00
josh 22b2cd426e add GapBuffer::clear() and GapBuffer::set_string() 2017-01-18 22:20:36 -05:00
josh 08529fc115 keep cursors off newlines after applying change operations when not in insert mode 2017-01-15 21:44:57 -05:00
josh 2e2cdfdb81 bug fix: when applying change operations in reverse, apply their change units in reverse order 2017-01-15 20:58:18 -05:00
josh 4e03fbc3de fix bug of undo/redo creating new change operations themselves 2017-01-15 20:33:37 -05:00
josh 861aaed940 add unit test for coalescing erase change units within a change operation 2017-01-15 20:23:27 -05:00
josh 3b1bea80aa fix bug dealing with coalescing erase change units within one change operation 2017-01-15 20:23:09 -05:00
josh e98454c771 add unit tests for buffer insert/erase character 2017-01-15 19:46:33 -05:00
josh 0ab26dea2f move GapBuffer::copy_to() implementation out of header file 2017-01-14 16:55:13 -05:00
josh f7e077d8ef Use VirtualAlloc() instead of mmap() on Windows 2017-01-14 09:48:54 -05:00
josh 2c633a9ddb add TODO for supporting undo tree 2017-01-11 22:53:19 -05:00
josh f1815d04d9 do not attempt to redo past the last available operation 2017-01-11 22:53:19 -05:00
josh cac339a9f2 do not store a change operation with no change units 2017-01-11 22:53:19 -05:00
josh 2057c69585 add Buffer::{undo,redo}() 2017-01-11 22:18:02 -05:00
josh e0615011a3 add Buffer::apply_change_{operation,unit}() for undo/redo 2017-01-11 21:55:59 -05:00
josh fca838fcbf fix problem of record_change() not receiving contiguous range by using GapBuffer::copy_to() 2017-01-09 22:11:08 -05:00
josh b9313ad606 add GapBuffer::copy_to() 2017-01-09 22:05:43 -05:00
josh 5de13644de add Buffer::INVALID_CHANGE_OPERATION_INDEX 2017-01-09 21:46:52 -05:00
josh f3753be4eb refactor Buffer insert and delete operations
add Buffer functions to insert/erase data chunks
2017-01-09 21:34:16 -05:00
josh 66aa9c5235 add Buffer::Iterator::{prev,next}() 2017-01-09 20:26:18 -05:00
josh 6108d09e8d add Buffer::Iterator::warp_to_offset() 2017-01-07 16:34:01 -05:00
josh 904ac01a1c record the parent ID of each change operation 2017-01-07 16:22:42 -05:00
josh 5f37229c19 when adjusting cursor iterators, always keep them valid 2017-01-07 16:22:28 -05:00
josh 85dbf75b11 add Buffer::add_cursor() 2017-01-07 15:03:51 -05:00
josh 924d005020 Buffer: refactor common iterator warping code into warp_iterators() 2017-01-07 14:15:46 -05:00
josh 38a734b5c1 Save change operations 2017-01-07 13:56:10 -05:00
josh 348d11e992 Buffer: allow insert_code_point() to be called outside of insert mode 2017-01-07 13:22:05 -05:00
josh 21320d9ea7 Begin recording all buffer changes to prepare for undo tree 2017-01-07 13:19:49 -05:00
josh a8b39f8884 Fix text insertion point not following cursor
Always supply iterator position when inserting code points
2017-01-05 21:21:38 -05:00
josh 95381faedc fix finding runtime files relative to the executable path 2017-01-03 19:01:48 -05:00
josh 4017d8237e Add System::executable_path() 2017-01-03 18:59:12 -05:00
josh 237dbf9c2b add 'g' and 'G' commands to go to first and last line in buffer 2016-12-28 14:07:28 -05:00
josh 8df75f5ab0 add Buffer::Iterator::INVALID_CODE_POINT constant 2016-12-28 13:24:52 -05:00
josh 929bda355f add an EOF iterator to track the end of the file and number of lines 2016-12-28 13:03:38 -05:00
josh 64ed3174ac record buffer filename 2016-12-27 20:10:58 -05:00
josh 38d615ecc4 insert a \n to follow new content when inserting into an empty buffer 2016-12-27 15:10:45 -05:00
josh 723b96f624 fix insert position when erasing a code point in insert mode 2016-12-27 14:07:46 -05:00
josh 64a09fca0f add Buffer::erase_code_point() 2016-12-26 14:01:24 -05:00
josh 92b3e888b5 Add GapBuffer::erase() 2016-12-26 13:28:37 -05:00
josh cadd5bac36 Warp all cursors at/after the insert point when inserting a code point 2016-12-26 08:56:36 -05:00
josh e3f156c513 add Buffer::insert_code_point() 2016-12-24 15:35:06 -05:00
josh 099ea267d6 add Buffer functions to enter/exit/query insert mode 2016-12-24 15:31:23 -05:00
josh 1862d867f6 Fix Buffer::Iterator::go_previous_line() 2016-12-24 14:41:25 -05:00
josh 4ad5615dff fix Buffer::Iterator::go_previous_line() and go_next_line() 2016-12-21 22:10:58 -05:00
josh e78a3672c5 improve GapBuffer test coverage 2016-12-18 19:20:48 -05:00