52 Commits

Author SHA1 Message Date
62868e596d Jump to line number for :<n> commands 2018-03-19 23:20:32 -04:00
05f745d3f2 Implement several change commands 2017-11-24 12:55:08 -05:00
f091ee6590 Implement dd command to delete line 2017-11-24 12:33:11 -05:00
c77be4c482 Implement X command 2017-11-15 21:05:12 -05:00
2d559db7d0 BufferView: cursor_move() takes a character argument 2017-11-15 20:32:01 -05:00
1c673817d2 BufferPane: add ability to draw line number gutter 2017-09-26 20:47:48 -04:00
6d310f0f14 BufferPane: remove some cursor-tracking fields that are now tracked by BufferView 2017-09-23 16:12:52 -04:00
a93578288e fix cursor column handling 2017-09-23 16:08:34 -04:00
22171cacf9 begin using BufferView class to control the BufferPane layout 2017-09-20 19:34:57 -04:00
ee0d1e0d0e remove BufferPane::write_file() and handle writing from Window class 2017-01-27 20:58:15 -05:00
ec9b47d113 Add cursor crosshairs 2017-01-19 21:48:02 -05:00
be201ab73d remove unused BufferPane::draw_buffer_character() 2017-01-19 21:23:25 -05:00
3cd988bc3a expand command buffer to multiple lines as command length grows 2017-01-19 21:06:20 -05:00
baa5d9ef07 add BufferPane::clear() 2017-01-18 22:53:49 -05:00
f2770d66fd set the buffer pane focus 2017-01-18 21:18:07 -05:00
0d5b0e0437 Draw cursor as hollow when the buffer pane is not focused 2017-01-18 21:15:00 -05:00
212215bf4d Add command buffer pane 2017-01-17 23:50:24 -05:00
30290e86f5 allow BufferPane to turn off its status bar 2017-01-17 09:09:38 -05:00
9d970d1aee add BufferPane::{undo,redo}() 2017-01-11 22:53:19 -05:00
647b3b85f4 Add CTRL+u,d,f,b,e,y keys to scroll window by different amounts like vim 2017-01-02 11:49:18 -05:00
94eb9276d9 add BufferPane::scroll_window_up() and scroll_window_down() 2017-01-01 23:50:24 -05:00
92d9597f2e BufferPane: add functions to move cursor up/down by screen row 2017-01-01 23:00:44 -05:00
0d0e47593b BufferPane: keep track of cursor screen column and row offset 2017-01-01 21:32:55 -05:00
7a5b58e8a8 BufferPane: rename functions to calculate rows in lines 2017-01-01 20:58:08 -05:00
b3f972d7f4 add BufferPane::draw_character() and refactor BufferPane::draw_buffer_line() 2017-01-01 19:38:30 -05:00
0295c593ab move all key handling out of BufferPane and back to Window 2016-12-29 18:44:56 -05:00
dbe5843d77 add 'A' and 'I' commands 2016-12-28 14:41:44 -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
301fbf09f1 absorb BufferStatusPane logic into BufferPane 2016-12-27 20:54:05 -05:00
c059cd8c09 display buffer name in buffer status pane 2016-12-27 20:26:10 -05:00
8542de4ee1 display column as 0 on empty lines in command mode 2016-12-27 19:50:35 -05:00
59b8fc5e31 preserve cursor column when moving up/down lines 2016-12-25 18:07:45 -05:00
e21c24e2cc add BufferPane::determine_new_cursor_screen_row() to allow the cursor to move properly within the screen 2016-12-25 13:01:40 -05:00
83a6c1a983 record screen layout when drawing 2016-12-25 12:46:06 -05:00
1a34b8d7f7 turn on buffer status pane cursor position display again 2016-12-24 15:03:38 -05:00
dce5e68941 fix dropping lines above cursor line 2016-12-24 14:07:13 -05:00
08dab099a7 add BufferPane::walk_line() to commonize logic for laying out a line to the screen 2016-12-21 19:43:54 -05:00
24fced221f start re-implementing BufferPane::draw_buffer_line() 2016-12-21 19:23:39 -05:00
1486cdf7f4 update BufferPane::update_cursor_row() in preparation for drawing again 2016-12-20 23:24:06 -05:00
975b7763a8 add two more BufferPane utility functions to calculate available screen rows before and after the cursor line 2016-12-20 23:07:00 -05:00
cf4723854e add some utility functions in preparation for drawing screen with multi-column characters 2016-12-20 23:01:30 -05:00
bc3309a328 Prepare for screen drawing again after Cursor removal.
Add BufferPane::character_width() to handle multi-column characters.
2016-12-20 20:22:19 -05:00
968db413e6 Remove Cursor and move line-tracking into Iterator 2016-12-18 14:51:52 -05:00
ee37616f82 Give BufferPane a reference to a Window 2016-12-13 21:48:04 -05:00
1232539495 Move buffer-related keypress handling from Window to BufferPane 2016-12-11 20:29:15 -05:00
3422df51d6 BufferPane: replace colrow_to_xy() with col_x() and row_y() 2016-12-11 19:58:16 -05:00
129716e28f Draw cursor again 2016-12-11 15:58:31 -05:00
9b6b21a1d0 Move Iterator and Cursor classes into Buffer class. 2016-12-11 15:17:15 -05:00
b880397b7e Split up Cursor module into BufferIterator / BufferCursor 2016-12-11 14:00:15 -05:00
41c65f2dd9 Begin more refactoring to shrink GapBuffer class 2016-12-07 22:47:33 -05:00