Commit Graph

  • 8d158e4ed9 Write file to argument given to 'w' command, if present josh 2018-03-20 21:19:23 -04:00
  • 909e56d5af Determine new cursor screen row when jumping to line by number josh 2018-03-20 20:46:24 -04:00
  • 62868e596d Jump to line number for :<n> commands josh 2018-03-19 23:20:32 -04:00
  • 7aa3c3b17f Add an insert-mode default command map josh 2018-01-04 15:33:58 -05:00
  • 0d9d160464 add Ctrl+Home and Ctrl+End command-mode mappings josh 2018-01-03 17:05:16 -05:00
  • 154db8dab3 Add command-mode mappings for arrow keys josh 2017-11-24 19:29:02 -05:00
  • f5d6014c68 Add a command-mode mapping for ':' instead of handling it specially josh 2017-11-24 19:16:30 -05:00
  • 56f7fa7127 add 0/$ for sol/eol motions josh 2017-11-24 13:03:05 -05:00
  • 05f745d3f2 Implement several change commands josh 2017-11-24 12:55:08 -05:00
  • 0fcc3d3c68 Implement dt*,dT*,df*,dF* josh 2017-11-24 12:42:22 -05:00
  • f091ee6590 Implement dd command to delete line josh 2017-11-24 12:33:11 -05:00
  • b0fadeab98 add Buffer::Iterator::clonep() josh 2017-11-24 12:26:11 -05:00
  • e8267b765b BufferView: Use Buffer::Iterator functions for moving forward/backward in line josh 2017-11-21 22:09:53 -05:00
  • 3c6b3bc49e Add Buffer::Iterator functions to move forward/backward on/up to characters in a line josh 2017-11-21 22:02:53 -05:00
  • 32b272b75c Change Buffer::erase_range() to take a Range argument josh 2017-11-21 19:10:31 -05:00
  • 8a2bc444db Add Buffer::beginp() and Buffer::endp() josh 2017-11-21 19:07:41 -05:00
  • bdf7ceac4e Add Buffer::Range josh 2017-11-21 18:36:11 -05:00
  • c3852e950a Add Buffer::erase_range() josh 2017-11-17 16:58:00 -05:00
  • 438a3e6960 Add default mapping for A command josh 2017-11-16 16:14:50 -05:00
  • be84d40c29 Fix o/O commands josh 2017-11-15 21:32:29 -05:00
  • 0617229567 Add default mapping for home/end keys josh 2017-11-15 21:13:08 -05:00
  • bf6c94ff4e Define default mapping entries for page up/down josh 2017-11-15 21:11:11 -05:00
  • f53f9dbf16 Define 'r' as default redo command josh 2017-11-15 21:06:16 -05:00
  • c77be4c482 Implement X command josh 2017-11-15 21:05:12 -05:00
  • bb5bf6a13a Implement f/F/t/T commands josh 2017-11-15 21:01:20 -05:00
  • 917491c08b add THIS_LINE motion and MOTION_COUNT josh 2017-11-15 20:32:34 -05:00
  • 2d559db7d0 BufferView: cursor_move() takes a character argument josh 2017-11-15 20:32:01 -05:00
  • 739edfd6f7 Add default mapping keys for scrolling window josh 2017-11-15 20:19:22 -05:00
  • 67cd0c1701 Command: fix WHOLE_SCREEN typo josh 2017-11-15 19:43:49 -05:00
  • 2fb1cf38da CommandMap: allow adding entries with control characters josh 2017-11-15 19:43:13 -05:00
  • 928817f8e4 move key macros to core header josh 2017-11-15 19:32:59 -05:00
  • 7c65dcfaa2 Check for OpenGL libraries in configure step josh 2017-11-15 19:26:31 -05:00
  • 4b9987b119 Fix '0' being interpreted as a count prefix instead of a command josh 2017-11-14 20:42:41 -05:00
  • c2b50a3f4f Draw command characters as they are input josh 2017-11-14 20:40:50 -05:00
  • 2dcf13c8fa Ignore modifier keypresses in command mode josh 2017-11-05 09:45:16 -05:00
  • fc0ea6a2ad Define default command 'G' to go to last line josh 2017-11-05 09:42:53 -05:00
  • ac316193fb Begin to use CommandMap to evaluate command-mode inputs josh 2017-11-05 09:42:20 -05:00
  • e58d8a4500 Add several more commands josh 2017-10-31 22:24:57 -04:00
  • 7dbd9402c1 Add Jtk_SetWindowIcon() josh 2017-10-31 21:10:29 -04:00
  • 6ec8e23b7d remove old SDL code josh 2017-10-31 20:42:07 -04:00
  • 911eda3e37 Catch window close event josh 2017-10-31 20:40:46 -04:00
  • 54bbfefcf4 CommandMap: recurse to resolve command sequences properly josh 2017-10-30 20:21:51 -04:00
  • dd84d03b90 CommandMap: translate a command character sequence to a Command object josh 2017-10-24 22:50:29 -04:00
  • bbc1c8d153 add Command::Unit to describe similar fields between main command and motions josh 2017-10-24 22:11:57 -04:00
  • a07e9eb46b start on CommandMap::get_command() josh 2017-10-24 21:45:35 -04:00
  • 25806993f9 Add DefaultCommandMap module to define the default command map. josh 2017-10-24 21:23:32 -04:00
  • 4df3f620f1 Redo Command and CommandMap again josh 2017-10-24 20:59:00 -04:00
  • a509c4bded Merge branch 'remove-sdl' josh 2017-10-18 12:26:08 -04:00
  • 5239f128cc pass keyboard modifier key states in button press event josh 2017-10-14 12:38:39 -04:00
  • 7648bee12e draw control characters in different color font josh 2017-10-14 12:30:28 -04:00
  • 7199bb56e3 adjust cursor screen row when moving cursor up/down by screen rows josh 2017-10-14 12:22:38 -04:00
  • 314c840105 add Jtk_SetWindowTitle() josh 2017-10-14 12:16:16 -04:00
  • 2d944e4a87 handle X Expose, GraphicsExpose, and MapNotify events josh 2017-10-14 11:59:48 -04:00
  • c2323f4397 Do not queue up mouse wheel scroll events while others are still processing josh 2017-10-14 11:52:27 -04:00
  • 5e40c33eda handle X button press events josh 2017-10-14 11:48:25 -04:00
  • b100262a15 process multiple queued events up to a maximum time before redrawing screen josh 2017-10-14 11:42:03 -04:00
  • 49c34907f5 add Jtk_CheckEvent() josh 2017-10-14 11:36:07 -04:00
  • 3a594b5355 Avoid backlogging duplicate keypress events. josh 2017-10-14 11:31:29 -04:00
  • 34dc956272 Use modifier state from X keypress event, not current state at time of event process josh 2017-10-12 21:11:27 -04:00
  • 5999d62660 handle window resizes josh 2017-10-12 21:05:39 -04:00
  • de31e97556 turn off custom key repeats and just use X key repeats josh 2017-10-12 20:44:16 -04:00
  • 6eeb0d5b9a Process X events before timers josh 2017-10-12 19:59:46 -04:00
  • 07cdc5f8d0 Query for X modifier state when needed josh 2017-10-05 20:16:46 -04:00
  • 4e3050dbec Handle key repeats in Jtk itself josh 2017-10-05 20:10:59 -04:00
  • 6ff2faf4af Add key repeating back in with Jtk josh 2017-10-01 17:46:30 -04:00
  • 486253d0b6 Jtk: encode key modifiers in key value field for keyboard events josh 2017-10-01 17:00:06 -04:00
  • 15fcaa80fa Do not let X translate control key combinations to key codes for us. josh 2017-10-01 13:56:01 -04:00
  • 6546508cc6 Begin replacing SDL keyboard handling with Jtk josh 2017-10-01 13:48:03 -04:00
  • afd4b83814 service timers so they do not infinitely re-trigger josh 2017-10-01 08:03:44 -04:00
  • b9d650d9ef fix Jtk_RemoveTimer() josh 2017-10-01 08:02:26 -04:00
  • f424fd573d Filter out repeated key presses josh 2017-09-30 22:46:46 -04:00
  • 035f5805ad Define many more keys josh 2017-09-30 22:09:25 -04:00
  • 30a38a1487 Begin handling X keyboard events josh 2017-09-30 21:23:22 -04:00
  • 52b3c9faa9 if an X event is not sent to the user, make sure to check for more X events ready to process josh 2017-09-30 20:21:49 -04:00
  • 095d8d440e Begin processing X events josh 2017-09-30 20:17:22 -04:00
  • 2348d7ede1 Split up Jtk sources and headers by functional area josh 2017-09-30 18:24:50 -04:00
  • 8154aa84cc begin defining GUI events josh 2017-09-28 20:19:04 -04:00
  • ff89fc7ca7 Begin removing SDL josh 2017-09-27 20:33:18 -04:00
  • 1c673817d2 BufferPane: add ability to draw line number gutter josh 2017-09-26 20:47:48 -04:00
  • 6d310f0f14 BufferPane: remove some cursor-tracking fields that are now tracked by BufferView josh 2017-09-23 16:12:52 -04:00
  • 8f0b3e4114 add temporary key bindings to move up/down by screen row josh 2017-09-23 16:08:46 -04:00
  • a93578288e fix cursor column handling josh 2017-09-23 16:08:34 -04:00
  • 1d12a7fe7d BufferView: fix more scrolling problems josh 2017-09-23 16:02:34 -04:00
  • 33377f7668 fix moving cursor screen row down with row-wrapping tab characters josh 2017-09-23 10:54:30 -04:00
  • 79aa91bf49 draw crosshair below cursor for wrapped cursor lines josh 2017-09-23 10:34:00 -04:00
  • 55dc13d729 Fix scrolling BufferView past empty lines josh 2017-09-20 20:00:19 -04:00
  • d2fa28c5e1 Fix BufferView repeating last line for the remainder of the view josh 2017-09-20 19:40:51 -04:00
  • 22171cacf9 begin using BufferView class to control the BufferPane layout josh 2017-09-20 19:34:57 -04:00
  • 382552d25c use a simple rectangle for insert-mode cursor josh 2017-09-19 20:45:56 -04:00
  • 5c3a095aeb BufferView: test and fix scrolling through super long lines josh 2017-09-13 20:57:42 -04:00
  • 70aba6e2d4 BufferView: add scroll_view_{up,down}() josh 2017-09-13 20:08:09 -04:00
  • 84759d0a36 BufferView: add functions to move cursor up/down by screen row josh 2017-09-11 22:43:38 -04:00
  • fcd198b691 Add cursor movement logic to BufferView josh 2017-09-11 21:10:02 -04:00
  • 7ad28ceb67 update BufferLineWalker unit tests for full coverage josh 2017-09-04 15:57:03 -04:00
  • 74dfb7ce78 more BufferView tests, 100% coverage josh 2017-09-04 15:45:10 -04:00
  • f3604e1850 BufferView optimization: avoid calling calculate_rows_in_cursor_line() twice per update() josh 2017-09-03 18:27:19 -04:00
  • 359f5bed9f BufferView updates cursor screen row to follow moved cursor josh 2017-09-03 17:47:39 -04:00
  • 14e285041e BufferView: user must call update() after all changes and before vert_iter() josh 2017-09-03 17:34:41 -04:00
  • 5b35a35b24 BufferView stores all lines in view after update() josh 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. josh 2017-09-03 17:05:01 -04:00