9c462ee332
Finished converting codebase back to plain Rope's.
...
Everything appears to be working identically to how it was before converting
back.
2015-02-22 18:13:10 -08:00
d87dd9a343
Implemented efficient Rope splitting.
...
Rope::split() should now run in O(log N) time instead of O(N).
2015-02-21 13:12:26 -08:00
a1d636a4d8
WIP: handling extremely long lines with good performance.
...
The formatters now work on grapheme iterators instead of directly on
lines, which frees up the LineFormatter to break up long lines into
smaller blocks of text. This is partially taken advantage of right
now in various parts of the code, but more work is still needed to
get it both working properly and fast.
2015-02-15 22:41:11 -08:00
902d93e957
Line numbers are now displayed in left-hand gutter.
2015-02-08 19:17:48 -08:00
ed888939bf
Updated todo file.
2015-02-07 23:38:32 -08:00
2d50906f43
Moved the rest of file loading/saving into Buffer.
2015-02-07 23:35:25 -08:00
8a077bf4d0
Updated todo file.
2015-02-07 23:27:38 -08:00
e29777e33c
Improved file loading.
...
File loading is now the responsibility of the Buffer, which allows
it to do some weird internal stuff to make it faster.
Also, using custom code for scanning the text, so all line endings
are handled now, not just LF and CRLF.
2015-02-01 23:17:43 -08:00
643db93939
Updated todo file.
2015-02-01 17:23:35 -08:00
c9d09f6f98
Moved line_ending_type out of Buffer and into Editor.
2015-01-31 15:06:04 -08:00
7b87db4e41
Line wrapping width is now determined by terminal width.
2015-01-31 13:19:14 -08:00
413306f814
Updated todo file.
2015-01-25 22:32:36 -08:00
83fa6a72cb
Tabs working again.
2015-01-25 22:07:06 -08:00
109e46a027
WIP: moving GUI code over to use LineFormatter.
2015-01-25 14:00:45 -08:00
ecb5fbc98e
Updated todo and readme files.
2015-01-21 20:37:53 -08:00
9a22812cf1
First steps towards multiple cursor support.
2015-01-13 00:03:16 -08:00
fc194bef09
Updated todo file.
2015-01-11 12:39:41 -08:00
d80586e262
Fixed bug in cursor movement code that would result in crashes.
2015-01-11 11:36:34 -08:00
f56d3f0ad4
Split remove_text() into remove_text_before() and remove_text_after().
...
This is useful so that undo knows where to put the cursor.
2015-01-11 00:59:02 -08:00
b31903e838
Updated todo file.
2015-01-11 00:30:58 -08:00
f8cf8e620b
Moved tab_width to Buffer, and misc cleanup related to that.
2015-01-10 23:42:59 -08:00
6b5b63dba1
Added full undo/redo functionality.
2015-01-10 12:29:58 -08:00
e61149e514
Organized the code in buffer/mode.rs a bit more nicely.
2015-01-10 12:02:29 -08:00
1ca7885105
Updated todo file.
2015-01-09 23:16:00 -08:00
6c659a17dc
Switched undo stack to use a linked list instead of a vector.
...
This makes sure there aren't pathological cases where the user has been
typing for a very long time, and the undo stack needs to change capacity.
2015-01-09 22:40:41 -08:00
0941339906
Basic line-ending detection when opening files.
...
Buffers now store what line-ending type they consider themselves to be,
and the ui uses that when adding new lines while editing.
2015-01-03 15:15:14 -08:00
f760d6078d
Added jump-to-line functionality and fixed some display bugs.
2015-01-03 13:09:12 -08:00
a85a3bf8fa
Added status/info line at top of terminal UI.
2015-01-02 17:41:08 -08:00
fc78fbeb3e
Non-uniform-width characters are now properly handled (modulo bugs).
2015-01-02 15:05:21 -08:00
cb5b79ec9c
Changed editor drawing to use line iterators.
...
This makes the code easier to follow, and will make it easier to
accomodate non-uniform width graphenes later on.
2014-12-31 20:19:12 -08:00
370d8a315e
WIP refactor: changing internal text representation to be line-based.
...
This will make some of the internals a little more complex, but should
simplify things on the balance.
2014-12-28 20:53:25 -08:00
e3e2c866b9
We now store character widths in TextBlocks.
...
This is the first step towards supporting proportional fonts
and tabs characters.
2014-12-28 13:44:38 -08:00
97e1259feb
Updated todo file.
2014-12-27 16:28:02 -08:00
eb035b66c7
Added pageup/pagedown functionality.
2014-12-27 16:11:00 -08:00
4d68a36070
Updated todo file.
2014-12-27 14:05:59 -08:00
baafe5284d
Updated todo.
2014-12-19 22:46:47 -08:00
ab992301fd
Updated todo file.
2014-12-14 23:24:41 -08:00
3154d626ff
Escape quits, return inserts a new line.
2014-12-14 23:11:13 -08:00
4a93800780
Added readme and todo files.
2014-12-13 19:22:40 -08:00