Commit Graph

246 Commits

Author SHA1 Message Date
540803e0ee Update dependencies. 2019-09-01 11:40:02 +09:00
6f4e619263 Update dependencies, including Ropey -> 1.0. 2019-01-06 17:38:44 -08:00
38ec53808f Upgrade to latest version of dependencies, including Ropey v0.9.0. 2018-09-05 15:35:33 -07:00
a843aee904 Split text_encoding off into its own repo.
It's more generally useful, and I was working with it as its own
crate anyway.
2018-08-23 13:33:14 -07:00
30a1440399 Tests for single-byte encodings, and related bug fixes. 2018-08-23 13:21:16 -07:00
3d8eaefa6b Added a lot of single-byte text encodings to text_encoding sub-crate.
They are largely auto-generated from text-based tables from the
WHATWG encoding standard.  Most of them are still not available
in the code itself, but they are generating correctly, and exposing
them is just a matter of boiler plate.
2018-08-23 02:29:58 -07:00
3203da38bd Added unit tests for windows1252 encoding/decoding. 2018-08-22 19:00:47 -07:00
fb95ff36c1 Added unit tests for latin1 encoding/decoding. 2018-08-22 18:17:05 -07:00
9409bfe7fb Tests for utf8 encoding/decoding, and improved utf8 errors. 2018-08-22 17:53:07 -07:00
006b578318 Change encoding/decoding function naming.
I think this makes it more obvious at-a-glance what they do.
2018-08-22 15:05:38 -07:00
37acbba36a Added unit tests for utf32 encoding/decoding. 2018-08-22 12:55:52 -07:00
2cc4bc64ba More utf16 encode/decode tests, and accompanying fixes. 2018-08-21 22:32:19 -07:00
60cbb193b2 Added unit tests for utf16 encoding/decoding. 2018-08-21 22:18:22 -07:00
fc07ee3444 Reorg text_encoding sub-crate a bit and make it no_std. 2018-08-21 21:13:00 -07:00
3a17ca9e8c Added utf32 encoders/decoders to the text_encoding sub-crate. 2018-08-21 05:25:53 -07:00
173837b827 Added property testing for encoding round-tripping.
Also fixed a bug in the utf16 encoders/decoders.
2018-08-20 22:30:39 -07:00
a82b06794e Added Windows-1252 support to text_encoding sub-crate. 2018-08-20 21:09:01 -07:00
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