205 Commits

Author SHA1 Message Date
81e6a53c08 add PieceTable.tabstop attribute 2016-08-04 22:42:27 -04:00
f6338da8d0 add PieceTable::Cursor::operator*(), add unit test 2016-08-04 22:38:18 -04:00
abf853e1ba link from a piece table cursor object back to the containing piece table 2016-08-04 22:19:13 -04:00
728e389c1e add column to a PieceTable::Cursor 2016-08-01 22:02:42 -04:00
11cac3c8b5 add a PieceTable::Cursor to Window 2016-08-01 22:02:42 -04:00
e913c15212 remove number of characters from a Piece 2016-08-01 22:02:42 -04:00
b0553fdbd2 adjust font vertical position by baseline offset 2016-07-31 23:11:26 -04:00
5a942a61a9 add FlatShader; draw a cursor 2016-07-31 23:08:26 -04:00
8beea3461c Rework PieceTable cursor management
- rename PieceTable::Position -> PieceTable::Cursor
- remove built-in cursor
- add PieceTable::add_cursor()
2016-07-31 22:11:12 -04:00
a5bfcdd3c4 remove PieceTable::ChangeDescriptor 2016-07-31 20:51:06 -04:00
887fb4b980 use scoped enum instead of #define 2016-07-30 09:54:30 -04:00
7064afc1f1 rename PieceDescriptor to just Piece 2016-07-30 09:52:46 -04:00
cef49e9e6e rename OpenGL "programs" to "shaders" 2016-07-29 21:27:32 -04:00
b61513b97e add PieceTable::get_start_of_line() 2016-07-29 21:19:01 -04:00
d043137099 Window: calculate m_rows 2016-07-29 21:12:54 -04:00
862b414c1d Window: rename m_chars_per_line -> m_columns 2016-07-29 21:06:28 -04:00
dc71520a88 PieceTable: rename m_cursor_position -> cursor_position 2016-07-29 21:04:48 -04:00
89c0ca0bfa add a cursor position attribute to PieceTable 2016-07-28 21:48:18 -04:00
26f8fb355e allow File::write() to take a Span 2016-07-26 22:40:04 -04:00
382d155e40 add LineEndings module 2016-07-26 22:36:22 -04:00
cdae9e51ae add Span class and use it from TextLoader 2016-07-26 21:09:33 -04:00
b64b9bed23 begin restructuring keyboard event handling more permanently 2016-07-24 22:45:28 -04:00
31422709e8 Wrap lines 2016-07-24 20:35:01 -04:00
10a0b33dbe Add Buffer unit tests
- test that writing a buffer with no changes results in the identical
  file being written
2016-07-24 17:25:21 -04:00
63b3848424 Preserve whether there is a EOL at EOF when writing the file 2016-07-24 17:24:00 -04:00
e66130b603 fix File::open() when opening for writing 2016-07-24 17:16:05 -04:00
a416a47b29 add Buffer::write_to_file() 2016-07-24 12:50:27 -04:00
1730838921 add File::write() 2016-07-24 12:37:34 -04:00
0aad4fd779 GUI: avoid segfault when trying to scroll an empty buffer 2016-07-24 12:28:58 -04:00
0780659c8c Buffer: keep track of eol_at_eof flag from TextLoader 2016-07-24 12:27:15 -04:00
7093560a94 Support loading files that do not end with a EOL sequence
- do not drop the last line of such files from TextLoader
- add a flag to TextLoader to indicate if the loaded file ended with a
  EOL sequence
2016-07-24 12:22:03 -04:00
89e8dc5de3 add TextLoader::get_eol_at_eof() 2016-07-24 12:06:50 -04:00
500a6891d4 remove Text module 2016-07-19 22:35:51 -04:00
20a2786755 Render from the piece table! 2016-07-19 22:34:11 -04:00
e52710b47c add PieceTable::append_initial_line_piece() 2016-07-19 21:31:06 -04:00
8fcbad02f8 Update PieceDescriptor structure - use direct pointers for list links 2016-07-18 22:32:45 -04:00
ebf92f07ac drop const in TextLoader line pointer 2016-07-18 22:07:29 -04:00
aa45f6d6dc Add a PieceTable to Buffer 2016-07-18 22:04:57 -04:00
2805ac36d3 add PieceTable::start_descriptor and PieceTable::end_descriptor 2016-07-18 22:02:56 -04:00
793bc46293 add PieceTable::add_piece_descriptor() and set up start/end descriptors 2016-07-18 22:01:33 -04:00
b30b6eb202 Start on PieceTable 2016-07-17 23:05:02 -04:00
7e8b5c0b64 Allow PagedBuffer to hold non-power-of-2-sized objects 2016-07-17 21:55:29 -04:00
cab874305f add PagedBuffer; use own main() for tests 2016-07-17 20:43:18 -04:00
3be19dbf81 implement TextLoader tests, add TestSupport module 2016-07-16 21:28:29 -04:00
181d3ad64a Avoid signed and unsigned comparison 2016-07-15 19:58:01 -04:00
f9b42b4079 add "test" Makefile target 2016-07-15 19:42:48 -04:00
a2bd7504b5 replace FileLoader with TextLoader 2016-07-14 21:28:38 -04:00
cae0b581a2 Buffer owns the file buffer 2016-07-14 20:09:35 -04:00
5f8bbcfca4 start a Timer when it is created 2016-07-14 19:27:39 -04:00
e562f77dab replace FileReader with File class; prepare for removing FileLoader 2016-07-14 18:44:18 -04:00