Commit Graph

  • b89f348602 add some initial BufferView unit tests josh 2017-08-29 23:20:42 -04:00
  • 8e0796decf move much of the buffer layout code from BufferPane to BufferView josh 2017-08-29 23:03:49 -04:00
  • 545e73bd07 use BufferLineWalker from BufferView josh 2017-08-24 22:03:56 -04:00
  • 52751338c3 add BufferLineWalker unit tests josh 2017-08-24 21:44:10 -04:00
  • 67e4419d86 fix CharacterWidthDeterminer to be an abstract class josh 2017-08-24 21:44:01 -04:00
  • 3d4e8230fe move character iteration logic from BufferView to BufferLineWalker josh 2017-08-24 20:52:33 -04:00
  • 65df0c2320 more work on BufferView josh 2017-05-07 19:52:21 -04:00
  • e243dd654c add BufferView::iter_cols() josh 2017-05-07 19:29:47 -04:00
  • 12e5a99e17 add CharacterWidthDeterminer josh 2017-05-07 19:28:57 -04:00
  • 43052321c4 add initial BufferView class josh 2017-05-07 19:10:00 -04:00
  • c071c43c5c add CommandMap class josh 2017-02-04 16:16:48 -05:00
  • ced2d2856b add "nop" and "delete" commands josh 2017-02-04 16:16:39 -05:00
  • 92a7dbe922 add Command module josh 2017-01-30 22:37:46 -05:00
  • 89687100f3 add another BUffer unit test josh 2017-01-28 12:24:26 -05:00
  • add43beb92 fix bug counting lines to adjust iterators by in Buffer::lines_in_data() josh 2017-01-28 12:23:58 -05:00
  • 903b35f8bb test CommandParser ignores newlines at end of command josh 2017-01-28 11:54:43 -05:00
  • fbc942c4f7 add "q" command to quit josh 2017-01-27 21:00:52 -05:00
  • ee0d1e0d0e remove BufferPane::write_file() and handle writing from Window class josh 2017-01-27 20:58:15 -05:00
  • 6779890ca9 add "w" command to write the file josh 2017-01-27 20:53:21 -05:00
  • 2ae1d72d6a Buffer::filename() returns shared_ptr to string josh 2017-01-27 20:50:15 -05:00
  • 37d27d6063 get ready to handle commands entered josh 2017-01-27 20:44:24 -05:00
  • 3bcc360c81 CommandParser: skip newline character josh 2017-01-27 20:43:00 -05:00
  • 3fc7dc62f8 allow Shift+Backspace to act as Backspace in insert mode josh 2017-01-26 22:16:11 -05:00
  • 9a34bfe4ba Draw crosshair for the current line to the end of the screen row josh 2017-01-24 22:09:10 -05:00
  • 210a7b82c5 Fix up CommandParser operation and add unit tests josh 2017-01-23 21:47:40 -05:00
  • 0da4108c64 split out task to build unit tests to "build_tests" task josh 2017-01-23 21:19:40 -05:00
  • 116faff062 add CommandParser class josh 2017-01-22 20:16:51 -05:00
  • 726bd8bfaa add EncodedString::iterator::offset() and size() josh 2017-01-22 19:20:33 -05:00
  • d7315b0268 EncodedString: use a vector to store data josh 2017-01-22 18:35:18 -05:00
  • 0c2ac5b325 disallow creating an EncodedString with no data josh 2017-01-21 14:22:29 -05:00
  • fcabf60551 make EncodedString safe to copy josh 2017-01-21 14:21:51 -05:00
  • 13ca7afd0c Buffer::get_string() returns an EncodedString josh 2017-01-21 14:15:54 -05:00
  • 7e7b0497a7 allow comparison between an EncodedString and a std::string josh 2017-01-21 14:06:06 -05:00
  • fce9f87265 add EncodedString module josh 2017-01-21 13:28:20 -05:00
  • 3b1199fbdc Error out of configure script if submodules have not been checked out josh 2017-01-21 13:00:20 -05:00
  • bb8dc6a6a4 fix expanding command buffer pane when cursor wraps to next line josh 2017-01-21 12:37:41 -05:00
  • 8d6112ed32 fix drawing highlight when in insert mode at the end of a line josh 2017-01-21 12:31:50 -05:00
  • 5eb5039d38 more stderr messages when gl3w fails to load josh 2017-01-20 15:07:04 -05:00
  • b734249df2 fix library names for Windows josh 2017-01-20 14:48:12 -05:00
  • 671ba8312a Get the page size on Windows josh 2017-01-20 14:45:41 -05:00
  • 677c4fd6e1 do not draw cursor crosshairs in command buffer pane josh 2017-01-19 21:49:25 -05:00
  • ec9b47d113 Add cursor crosshairs josh 2017-01-19 21:48:02 -05:00
  • be201ab73d remove unused BufferPane::draw_buffer_character() josh 2017-01-19 21:23:25 -05:00
  • b5cb693317 Only allow one pending keyboard event for any given key josh 2017-01-19 21:15:06 -05:00
  • 3cd988bc3a expand command buffer to multiple lines as command length grows josh 2017-01-19 21:06:20 -05:00
  • 2ecee3f09a clear the command buffer when changing focus away from it josh 2017-01-19 20:44:35 -05:00
  • dc64b9774f add a window icon josh 2017-01-19 20:38:38 -05:00
  • ef1ae45c2a add 32x32 jes icon josh 2017-01-19 20:10:48 -05:00
  • d1b2350e1a Fix unit tests broken by 08529fc josh 2017-01-19 15:05:32 -05:00
  • a65a9fec41 Print a stderr message with more information about why creating the window failed josh 2017-01-19 09:27:16 -05:00
  • 3dcc6b2350 clear command buffer pane and return focus to file buffer pane when pressing enter in command buffer josh 2017-01-18 22:57:15 -05:00
  • baa5d9ef07 add BufferPane::clear() josh 2017-01-18 22:53:49 -05:00
  • 276c756bb7 fix Buffer::clear() to update iterators josh 2017-01-18 22:51:33 -05:00
  • 47d15ca858 add Buffer::clear() and Buffer::set_string() josh 2017-01-18 22:36:41 -05:00
  • 22b2cd426e add GapBuffer::clear() and GapBuffer::set_string() josh 2017-01-18 22:20:36 -05:00
  • 211ce0185c pass \n to BufferPane when inserting a newline josh 2017-01-18 22:00:57 -05:00
  • 12c034fb8f Add ':' command to focus command buffer pane josh 2017-01-18 21:46:34 -05:00
  • 9d150524fb keep track of the focused buffer pane josh 2017-01-18 21:22:39 -05:00
  • f2770d66fd set the buffer pane focus josh 2017-01-18 21:18:07 -05:00
  • 0d5b0e0437 Draw cursor as hollow when the buffer pane is not focused josh 2017-01-18 21:15:00 -05:00
  • 212215bf4d Add command buffer pane josh 2017-01-17 23:50:24 -05:00
  • 16d4b1e21b shift+space should insert a space josh 2017-01-17 23:13:19 -05:00
  • 30290e86f5 allow BufferPane to turn off its status bar josh 2017-01-17 09:09:38 -05:00
  • 837380c3ca support numpad keys josh 2017-01-15 22:18:51 -05:00
  • 5b0a7c44d8 handle page up / page down keys josh 2017-01-15 21:54:52 -05:00
  • 08529fc115 keep cursors off newlines after applying change operations when not in insert mode josh 2017-01-15 21:44:57 -05:00
  • 3d090b0f32 handle Delete key in insert mode properly josh 2017-01-15 21:38:37 -05:00
  • 62e127d400 add extra undo test josh 2017-01-15 21:35:38 -05:00
  • cd0efc431d test more undo/redo change unit combinations josh 2017-01-15 21:16:55 -05:00
  • af77c97394 test that non-adjacent inserts make a single change operation josh 2017-01-15 21:01:13 -05:00
  • 2e2cdfdb81 bug fix: when applying change operations in reverse, apply their change units in reverse order josh 2017-01-15 20:58:18 -05:00
  • 0cd38f2198 add -include iostream when building tests so debug prints can easily be put in anytime josh 2017-01-15 20:53:39 -05:00
  • edf29f0bac add tests for modifying uncommitted insert change units josh 2017-01-15 20:46:09 -05:00
  • 4e03fbc3de fix bug of undo/redo creating new change operations themselves josh 2017-01-15 20:33:37 -05:00
  • 3e50e8a3b3 test number of change operations created in basic undo/redo tests josh 2017-01-15 20:27:26 -05:00
  • 861aaed940 add unit test for coalescing erase change units within a change operation josh 2017-01-15 20:23:27 -05:00
  • 3b1bea80aa fix bug dealing with coalescing erase change units within one change operation josh 2017-01-15 20:23:09 -05:00
  • da2bafd563 define ENABLE_TESTING when building tests josh 2017-01-15 20:08:28 -05:00
  • 6ba280e75d add unit test for basic undo/redo of erases josh 2017-01-15 20:06:08 -05:00
  • 441c33821e add unit test for basic undo/redo of inserts josh 2017-01-15 20:02:12 -05:00
  • e98454c771 add unit tests for buffer insert/erase character josh 2017-01-15 19:46:33 -05:00
  • 21ba393c45 add FILTER variable to Makefile to only run some tests josh 2017-01-15 19:34:41 -05:00
  • 68eefcb60b use gcovinator instead of gcovr to generate gcov HTML files josh 2017-01-15 16:21:56 -05:00
  • 0ab26dea2f move GapBuffer::copy_to() implementation out of header file josh 2017-01-14 16:54:53 -05:00
  • f7e077d8ef Use VirtualAlloc() instead of mmap() on Windows josh 2017-01-14 09:48:54 -05:00
  • e65f269766 fix platform detection for Windows when using MSYS2 josh 2017-01-13 17:25:38 -05:00
  • 1eb0cc00ad include GUI sources in unit test build josh 2017-01-11 23:36:29 -05:00
  • 2c633a9ddb add TODO for supporting undo tree josh 2017-01-11 22:40:09 -05:00
  • f1815d04d9 do not attempt to redo past the last available operation josh 2017-01-11 22:39:13 -05:00
  • 089d63f337 add 'u'/'r' commands for undo/redo for now josh 2017-01-11 22:38:45 -05:00
  • 9d970d1aee add BufferPane::{undo,redo}() josh 2017-01-11 22:32:22 -05:00
  • cac339a9f2 do not store a change operation with no change units josh 2017-01-11 22:28:50 -05:00
  • 2057c69585 add Buffer::{undo,redo}() josh 2017-01-11 22:18:02 -05:00
  • e0615011a3 add Buffer::apply_change_{operation,unit}() for undo/redo josh 2017-01-11 21:55:59 -05:00
  • fca838fcbf fix problem of record_change() not receiving contiguous range by using GapBuffer::copy_to() josh 2017-01-09 22:11:08 -05:00
  • b9313ad606 add GapBuffer::copy_to() josh 2017-01-09 22:05:43 -05:00
  • 5de13644de add Buffer::INVALID_CHANGE_OPERATION_INDEX josh 2017-01-09 21:46:52 -05:00
  • f3753be4eb refactor Buffer insert and delete operations josh 2017-01-09 21:34:16 -05:00
  • 66aa9c5235 add Buffer::Iterator::{prev,next}() josh 2017-01-09 20:26:18 -05:00
  • 6108d09e8d add Buffer::Iterator::warp_to_offset() josh 2017-01-07 16:34:01 -05:00