Commit Graph

229 Commits

Author SHA1 Message Date
3ea4e25fbe Adjusting APIs for text encoding/decoding. 2018-08-19 19:14:13 -07:00
2f5adfad75 Run rustfmt. No functional changes. 2018-08-17 20:36:24 -07:00
0ee183aa72 WIP creating a clean frontend/backend separation.
- Started work on writing a new backend.
- Started work on writing text encoding handling.
2018-08-17 20:34:43 -07:00
b713b72e72 Updating for latest Ropey master. 2018-08-10 16:08:11 -07:00
8fc872bb2d Updating to latest versions of crates. 2018-07-28 17:16:47 -07:00
2b42124100 Update to Ropey 0.8.2. 2018-07-22 03:17:59 -07:00
75742c7aa4 Fixed bug with gutter size not updating as line numbers get wider. 2018-07-20 01:31:56 -07:00
db5f6c7e64 Update to Ropey v0.8 2018-07-14 21:41:12 -07:00
bba508a814 Forgot to run rustfmt. 2018-07-14 01:32:58 -07:00
a3d98a59fb Updated to lastest master Ropey. 2018-07-14 01:32:24 -07:00
e31f464702 Make it easy for me to switch between release and master Ropey. 2018-07-06 17:55:32 -07:00
c1c7bfc986 Update to Ropey 0.7.0. 2018-07-05 22:46:20 -07:00
868aa3363f Updated some code for Ropey API changes. 2018-07-05 20:13:00 -07:00
f8a38111d4 Some nice performance improvements with a simple optimization.
We're now very close to being back to the performance levels
we were at before the new Ropey without built-in grapheme
support.
2018-07-05 18:43:17 -07:00
9348a9a916 Another small optimization. 2018-07-05 05:01:57 -07:00
b19997b975 Did some basic optimizations that made things fast again. Yay!
The basis for the optimizations were some less basic changes made
in Ropey.
2018-07-05 04:41:58 -07:00
5ca0f5e406 Fomatted with recent rustfmt. No actual code changes. 2018-07-05 02:00:10 -07:00
de625e71dc Updated to ropey git master, and got everything working again.
However, everything is very, very slow now.
2018-07-05 01:53:17 -07:00
16f2aab223 Updated to latest Ropey. 2018-01-11 02:05:00 -08:00
3f2dbf2c13 Fixed tiny bug in view scrolling behavior. 2018-01-01 15:22:28 -08:00
066f0b03cf Indentation detection can now detect arbitrary space counts.
It was using a fixed-size array before, but now is using a
HashMap.  This is technically slower, but it's such a negligible
part of the runtime to begin with that it doesn't matter.
2018-01-01 15:01:19 -08:00
020827806b Use iterator methods to make auto-detect code a little cleaner.
Also use chars instead of graphemes for indent detection code.
Graphemes are slower, and don't provide any benefit there.
2018-01-01 14:06:17 -08:00
7121469cba Termninal size information wasn't being set properly at startup. 2018-01-01 13:38:51 -08:00
54a16c6383 Fixed bug with word wrapping when a word is longer than a line. 2018-01-01 13:25:06 -08:00
dbb640b330 Fixed a couple of bugs that crashed at tiny terminal sizes. 2018-01-01 12:59:47 -08:00
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