Commit Graph

304 Commits

Author SHA1 Message Date
86ca5f9edf Another silly bug... 2018-01-01 03:21:27 -08:00
cfcc9ab273 Silly bug due to forgetting to change a line of code. 2018-01-01 03:20:10 -08:00
2591aef6d4 Simplified the screen buffer writing.
Turns out the main reason it was so slow was because stdout isn't
buffered in Rust by default.  That actually makes a lot of sense,
but I'd forgotten.

Wrapping it in a BufWriter solves the performance issues much more
gracefully.
2018-01-01 03:10:32 -08:00
1f62eb32a0 Fixed a bug where very narrow terminal sizes would crash the editor. 2018-01-01 02:37:33 -08:00
1bb93aae00 Got interactive responsiveness to terminal resizing working. 2018-01-01 02:30:11 -08:00
c91f1801ad Fixed bug in screen buffer display code.
This both more correct and faster at the same time.  Yay!
2018-01-01 01:27:37 -08:00
17beb9c06d Using a smallstring implementation inside the screen buffer.
This keeps things contiguous in memory in the common case.
2017-12-31 20:05:00 -08:00
0a309fab1a Made the screen buffer implemention way faster.
It's in a pretty good place now, I think.  Although its memory
usage could be improved with a small string type.
2017-12-31 19:40:45 -08:00
945505c5ff WIP making the buffer faster. 2017-12-31 19:30:28 -08:00
66a80baeed Doing screen buffering to eliminate flicker.
At the moment, it's brain-dead and really slow.
2017-12-31 18:51:02 -08:00
b63bb6f87d Fixed silly drawing bug.
The cursor wasn't displaying if it was on the end of a line.
2017-12-31 17:36:13 -08:00
c7adf195f7 Moving screen drawing handling to a submodule. 2017-12-31 17:30:21 -08:00
c11aee9bf6 WIP switching from Rustbox to Termion for terminal handling. 2017-12-31 16:55:27 -08:00
6ccba0510b Forgot to delete a bit from commandline option parsing. 2017-12-31 03:35:09 -08:00
e47c0e0451 Updated to the latest versions of dependencies. 2017-12-31 03:33:43 -08:00
a5ff555af3 Version bump and updated readme. 2017-12-31 03:12:21 -08:00
29b17f6e20 Fixed minor bug in cursor navigation. 2017-12-31 03:04:25 -08:00
76bd98e5ae Got cursor movement working with graphemes, and fixed unit tests. 2017-12-31 02:41:07 -08:00
f221b90a82 Fixed cursor drawing for texts with graphemes in them. 2017-12-31 02:17:28 -08:00
2e9c2b2704 WIP getting graphemes working again. 2017-12-31 01:56:45 -08:00
ca948588e6 Fixed line-ending detection. 2017-12-31 01:04:33 -08:00
eb47c4844b Remove unused import. 2017-12-31 00:45:05 -08:00
c9d8be0704 Use Ropey's reader to load from disk.
Saves memory and is also faster.  Win-win!
2017-12-31 00:43:37 -08:00
2da187ff5d Got it fully working again except for graphemes. 2017-12-31 00:39:02 -08:00
47ed45aae6 More fixing. 2017-12-30 23:47:05 -08:00
9c302620e9 Updating to use the new Ropey.
This is mainly just for kicks and giggles, since it really won't
work quite properly anyway, due to the lack of grapheme indexing.
The next real thing is to... well, start from scratch.
2017-12-30 23:10:56 -08:00
8d146a595e Moved Ropey dependency in-tree. 2017-11-25 23:12:37 -08:00
45e6125bbc Updated to work with more recent library versions. Also RustFmt. 2016-03-05 02:40:01 -08:00
f1ffc2867a Unit tests now also compile on stable rust. 2015-07-06 19:31:55 -07:00
ec16e8ac6e Led is building on stable rust! Woo hoo! 2015-07-06 19:20:25 -07:00
6823706d69 Working towards rust stable support. 2015-07-06 18:39:00 -07:00
9644a1aa03 Updated dependencies for stable rust.
Warning: doesn't compile.  Haven't updated own code for stable
yet.
2015-07-06 18:14:12 -07:00
869cb187b6 Migrated code from std::old_io to std::io 2015-03-15 16:03:23 -07:00
57f013bd46 Updated to latest rustc and rustbox. 2015-03-15 14:47:16 -07:00
1d6a8cb107 Added ability for soft-wrapped lines to have additional indentation. 2015-03-08 19:58:18 -07:00
cbff82b462 Implemented word wrapping. 2015-03-08 19:47:30 -07:00
e1e06633c7 Added option to maintain indentation when wrapping lines.
Currently only exposed in code, not in UI.  Enabled by default.
2015-03-08 12:18:22 -07:00
ed510cffbc WIP more line wrapping options.
This commit just adds code to allow non-wrapping behavior.
2015-03-07 18:30:18 -08:00
b2f1044b48 Fixed bug resulting from API change in Ropey. 2015-03-03 16:27:38 -08:00
f4847a4f8e Updated to latest Docopt and Ropey.
Also fixed bug resulting from a change in API behavior in Ropey.
2015-03-03 15:26:20 -08:00
cca7133264 Updated code to latest Ropey. 2015-03-03 00:08:52 -08:00
1ae3a01566 Updated code to work with the latest Ropey. 2015-03-02 16:08:50 -08:00
442fcdcb1c Updated description in readme file. 2015-02-25 20:09:16 -08:00
ada003b346 Split rope implementation off into external lib "Ropey".
Ropey can be found at https://github.com/cessen/ropey
2015-02-25 20:05:17 -08:00
82e6fca1dd Updated code for latest rustc. 2015-02-23 20:50:55 -08:00
d3cd1c4b05 Fixed bug in Editor::move_view_to_cursor().
Was causing the view to move unecessarily when the cursor is at the end of
the buffer.
2015-02-22 20:35:41 -08:00
c532b10f22 Fixed bug in Editor::move_view_to_cursor()
It thought it was one line shorter than it actually was.
2015-02-22 20:30:33 -08:00
c348f252bb Fixed bug in buffer drawing code.
It was causing the entire last line to be re-scanned to find the
cursor drawing position if the cursor was at the end of the buffer.
This was both slow and resulted in an incorrect position, since
all the rest of the drawing assumes line blocks.
2015-02-22 20:24:19 -08:00
ae26c5f873 Fixed bugs in LineFormatter that was causing weird cursor nav behavior.
They were two pretty much identical bugs in both index_offset_vertical_v2d()
and index_set_horizontal_v2d().  Neither method was checking for slipping
off the end of a line block.
2015-02-22 20:09:18 -08:00
1b3acfd29f Fixed bug in LineFormatter::index_offset_vertical_v2d()
The bug was causing very incorrect behavior when a single line was long
enough to be split into multiple blocks.
2015-02-22 19:30:13 -08:00