josh
|
b734249df2
|
fix library names for Windows
|
2017-01-20 14:48:12 -05:00 |
|
josh
|
671ba8312a
|
Get the page size on Windows
|
2017-01-20 14:45:41 -05:00 |
|
josh
|
677c4fd6e1
|
do not draw cursor crosshairs in command buffer pane
|
2017-01-19 21:49:25 -05:00 |
|
josh
|
ec9b47d113
|
Add cursor crosshairs
|
2017-01-19 21:48:02 -05:00 |
|
josh
|
be201ab73d
|
remove unused BufferPane::draw_buffer_character()
|
2017-01-19 21:23:25 -05:00 |
|
josh
|
b5cb693317
|
Only allow one pending keyboard event for any given key
|
2017-01-19 21:15:06 -05:00 |
|
josh
|
3cd988bc3a
|
expand command buffer to multiple lines as command length grows
|
2017-01-19 21:06:20 -05:00 |
|
josh
|
2ecee3f09a
|
clear the command buffer when changing focus away from it
|
2017-01-19 20:44:35 -05:00 |
|
josh
|
dc64b9774f
|
add a window icon
|
2017-01-19 20:38:38 -05:00 |
|
josh
|
ef1ae45c2a
|
add 32x32 jes icon
|
2017-01-19 20:10:48 -05:00 |
|
josh
|
d1b2350e1a
|
Fix unit tests broken by 08529fc
|
2017-01-19 15:05:32 -05:00 |
|
josh
|
a65a9fec41
|
Print a stderr message with more information about why creating the window failed
|
2017-01-19 09:27:16 -05:00 |
|
josh
|
3dcc6b2350
|
clear command buffer pane and return focus to file buffer pane when pressing enter in command buffer
|
2017-01-18 22:57:15 -05:00 |
|
josh
|
baa5d9ef07
|
add BufferPane::clear()
|
2017-01-18 22:53:49 -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
|
211ce0185c
|
pass \n to BufferPane when inserting a newline
|
2017-01-18 22:00:57 -05:00 |
|
josh
|
12c034fb8f
|
Add ':' command to focus command buffer pane
|
2017-01-18 21:46:34 -05:00 |
|
josh
|
9d150524fb
|
keep track of the focused buffer pane
|
2017-01-18 21:22:39 -05:00 |
|
josh
|
f2770d66fd
|
set the buffer pane focus
|
2017-01-18 21:18:07 -05:00 |
|
josh
|
0d5b0e0437
|
Draw cursor as hollow when the buffer pane is not focused
|
2017-01-18 21:15:00 -05:00 |
|
josh
|
212215bf4d
|
Add command buffer pane
|
2017-01-17 23:50:24 -05:00 |
|
josh
|
16d4b1e21b
|
shift+space should insert a space
|
2017-01-17 23:13:19 -05:00 |
|
josh
|
30290e86f5
|
allow BufferPane to turn off its status bar
|
2017-01-17 09:09:38 -05:00 |
|
josh
|
837380c3ca
|
support numpad keys
|
2017-01-15 22:18:51 -05:00 |
|
josh
|
5b0a7c44d8
|
handle page up / page down keys
|
2017-01-15 21:54:52 -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
|
3d090b0f32
|
handle Delete key in insert mode properly
|
2017-01-15 21:38:37 -05:00 |
|
josh
|
62e127d400
|
add extra undo test
|
2017-01-15 21:35:38 -05:00 |
|
josh
|
cd0efc431d
|
test more undo/redo change unit combinations
|
2017-01-15 21:16:55 -05:00 |
|
josh
|
af77c97394
|
test that non-adjacent inserts make a single change operation
|
2017-01-15 21:01:13 -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
|
0cd38f2198
|
add -include iostream when building tests so debug prints can easily be put in anytime
|
2017-01-15 20:53:39 -05:00 |
|
josh
|
edf29f0bac
|
add tests for modifying uncommitted insert change units
|
2017-01-15 20:46:09 -05:00 |
|
josh
|
4e03fbc3de
|
fix bug of undo/redo creating new change operations themselves
|
2017-01-15 20:33:37 -05:00 |
|
josh
|
3e50e8a3b3
|
test number of change operations created in basic undo/redo tests
|
2017-01-15 20:27:26 -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
|
da2bafd563
|
define ENABLE_TESTING when building tests
|
2017-01-15 20:08:28 -05:00 |
|
josh
|
6ba280e75d
|
add unit test for basic undo/redo of erases
|
2017-01-15 20:06:08 -05:00 |
|
josh
|
441c33821e
|
add unit test for basic undo/redo of inserts
|
2017-01-15 20:02:12 -05:00 |
|
josh
|
e98454c771
|
add unit tests for buffer insert/erase character
|
2017-01-15 19:46:33 -05:00 |
|
josh
|
21ba393c45
|
add FILTER variable to Makefile to only run some tests
|
2017-01-15 19:34:41 -05:00 |
|
josh
|
68eefcb60b
|
use gcovinator instead of gcovr to generate gcov HTML files
|
2017-01-15 16:21:56 -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
|
e65f269766
|
fix platform detection for Windows when using MSYS2
|
2017-01-13 17:25:38 -05:00 |
|
josh
|
1eb0cc00ad
|
include GUI sources in unit test build
|
2017-01-11 23:36:29 -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
|
089d63f337
|
add 'u'/'r' commands for undo/redo for now
|
2017-01-11 22:53:19 -05:00 |
|
josh
|
9d970d1aee
|
add BufferPane::{undo,redo}()
|
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
|
314b39b81a
|
allow home/end/arrow keys to move cursor in command or insert mode
|
2017-01-05 21:05:46 -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
|
7a9ee92eaa
|
define PLATFORM_xxx macros for supported platforms
|
2017-01-03 18:51:57 -05:00 |
|
josh
|
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 |
|
josh
|
842557ee46
|
scroll window on mouse wheel events
|
2017-01-01 23:59:33 -05:00 |
|
josh
|
94eb9276d9
|
add BufferPane::scroll_window_up() and scroll_window_down()
|
2017-01-01 23:50:24 -05:00 |
|
josh
|
92d9597f2e
|
BufferPane: add functions to move cursor up/down by screen row
|
2017-01-01 23:00:44 -05:00 |
|
josh
|
0d0e47593b
|
BufferPane: keep track of cursor screen column and row offset
|
2017-01-01 21:32:55 -05:00 |
|
josh
|
7a5b58e8a8
|
BufferPane: rename functions to calculate rows in lines
|
2017-01-01 20:58:08 -05:00 |
|
josh
|
b3f972d7f4
|
add BufferPane::draw_character() and refactor BufferPane::draw_buffer_line()
|
2017-01-01 19:38:30 -05:00 |
|
josh
|
a2e5f7428c
|
fix cursor being hidden in command mode on empty lines
|
2016-12-31 12:15:48 -05:00 |
|
josh
|
46f5059a0b
|
add test/files/control-characters.txt
|
2016-12-30 12:10:43 -05:00 |
|
josh
|
bdf4d7e336
|
increase key repeat delay a little
|
2016-12-29 19:58:04 -05:00 |
|
josh
|
a508d0048c
|
fix cursor missing at end of line in insert mode
|
2016-12-29 19:57:49 -05:00 |
|
josh
|
8b2e2a1f6d
|
fix bug where tab width was determined based on screen column instead of line virtual column
|
2016-12-29 19:50:16 -05:00 |
|
josh
|
d201068428
|
do not move entire tab character down to next screen line
|
2016-12-29 19:49:48 -05:00 |
|
josh
|
8181d8343b
|
change cursor width to highlight full character for multi-column characters
|
2016-12-29 19:42:46 -05:00 |
|
josh
|
027e42da5d
|
add a blue underline to control characters
|
2016-12-29 19:31:58 -05:00 |
|
josh
|
8a8e329959
|
change GL::draw_character() to accept a color
|
2016-12-29 19:24:45 -05:00 |
|
josh
|
53d8df95f8
|
draw control characters with 2 ASCII characters starting with '^'
|
2016-12-29 19:17:34 -05:00 |
|
josh
|
90aa5ada70
|
move KEYMOD_ enums to a Keymod namespacing class
|
2016-12-29 18:51:00 -05:00 |
|
josh
|
0295c593ab
|
move all key handling out of BufferPane and back to Window
|
2016-12-29 18:44:56 -05:00 |
|
josh
|
325aa5d93c
|
remove BufferStatusPane forward declaration
|
2016-12-29 18:16:32 -05:00 |
|
josh
|
599ccdb6db
|
add 'o' and 'O' commands
|
2016-12-28 14:48:17 -05:00 |
|
josh
|
dbe5843d77
|
add 'A' and 'I' commands
|
2016-12-28 14:41:44 -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
|
301fbf09f1
|
absorb BufferStatusPane logic into BufferPane
|
2016-12-27 20:54:05 -05:00 |
|