8161 Commits

Author SHA1 Message Date
Mitchell Hashimoto
e163e4962b refactor cursor implementation, implement cursor visible (mode 25)
This cleans up a ton of state management around cursor styles,
visibility, blinking, etc. This was long in the tooth and when I was
trying to implement mode 25 I realized it was impossible with the
spaghetti mess I had. This made it really clean.

With this refactor, the Window keeps the "terminal_cursor" field the
proper state, and the render callback properly updates the gpu cells for
the cursor settings.

This also implements mode 25 (cursor visible) which makes neovim not
"flash" when vertically scrolling a vertical split. Neovim does some
cursor stuff but while doing so hides the cursor. This now respects
that.
2022-08-03 21:39:42 -07:00
Mitchell Hashimoto
1680aee880 some logging improvements 2022-08-03 21:13:05 -07:00
Mitchell Hashimoto
b2a9f1f79e update nixpkgs 2022-08-03 09:57:47 -07:00
Mitchell Hashimoto
befeb08b3d add a lot more tracing as I hunt down some performance things 2022-08-03 09:56:32 -07:00
Mitchell Hashimoto
0bc8300e74 remove unused line 2022-08-02 21:45:20 -07:00
Mitchell Hashimoto
f82b8f89e7 releast-fast for dev/install otherwise renders are slow 2022-08-02 21:03:34 -07:00
Mitchell Hashimoto
40cec18943 implement DECSASD by just blackholing the output for now
We don't want to support status lines, and if anything sends us status
line information we don't want it to mess up the main display, so just
drop it.
2022-08-02 11:03:01 -07:00
Mitchell Hashimoto
2b80699179 cursor position absolute needs to ignore all the offset stuff 2022-08-02 10:30:20 -07:00
Mitchell Hashimoto
1fbfc8a664 update Zig nightly 2022-08-02 09:27:05 -07:00
Mitchell Hashimoto
84af11e1eb detect config file load in config file 2022-08-02 09:25:36 -07:00
Mitchell Hashimoto
782ddfe722 --config-file to load a config file
The config file is just CLI args one per line.
2022-08-01 18:04:39 -07:00
Mitchell Hashimoto
bf526fb217 cli: support multiple calls into parse without clobbering arena 2022-08-01 12:57:57 -07:00
Mitchell Hashimoto
0249f3c174 cli parsing supports modification, add "RepeatableString" as example
This lets values modify themselves, which we use to make a repeatable
string implementation. We will use this initially to specify config
files to load.
2022-08-01 11:54:51 -07:00
Mitchell Hashimoto
8267f10cc1 Update makefile to only patchelf on NixOS 2022-07-31 16:44:29 -07:00
Mitchell Hashimoto
d614da2435 make dev/install to add a dev install 2022-07-31 16:11:01 -07:00
Mitchell Hashimoto
9779b565bf nix: add other X11 deps 2022-07-26 15:02:03 -07:00
Mitchell Hashimoto
23548852c6 update to nixpkgs 22.05 2022-07-26 14:40:57 -07:00
Mitchell Hashimoto
fc611ec28b nix: update the package to set proper rpath 2022-07-26 14:39:40 -07:00
Mitchell Hashimoto
2453b40e5d log glfw errors globally 2022-07-26 13:05:57 -07:00
Mitchell Hashimoto
2be6de7ebd nix: we have a package that builds, but doesn't run 2022-07-26 12:04:51 -07:00
Mitchell Hashimoto
702f54a6fa first attempt at a derivation 2022-07-26 11:38:54 -07:00
Mitchell Hashimoto
adba7aae22 Add sdk submodule 2022-07-26 11:33:15 -07:00
Mitchell Hashimoto
e4dd940c98 vendor: update mach for glfw 2022-07-26 11:24:36 -07:00
Mitchell Hashimoto
c09498318a don't install conformance tests 2022-07-26 09:55:37 -07:00
Mitchell Hashimoto
28acd99d7d reset inverse attribute 2022-07-26 09:37:52 -07:00
Mitchell Hashimoto
e34c8958c2 test: update test cases from the setCursorPosition off-by-one fix 2022-07-25 17:21:59 -07:00
Mitchell Hashimoto
85a9e6fdf0 fix an off by one in set cursor pos 2022-07-25 17:03:20 -07:00
Mitchell Hashimoto
4f85c13d1b test: add wraptest 2022-07-25 08:23:50 -07:00
Mitchell Hashimoto
473f749f00 nix: add wraptest 2022-07-25 08:18:35 -07:00
Mitchell Hashimoto
a239098883 index should return after handling bottom-most line in scroll region 2022-07-25 08:08:23 -07:00
Mitchell Hashimoto
f11c82853f test: run-all runs in parallel 2022-07-24 16:47:47 -07:00
Mitchell Hashimoto
e66a4fcab6 test cases update since deccolm implemented 2022-07-24 16:35:18 -07:00
Mitchell Hashimoto
d81bb19af6 fix crash we can get with horizontal tabs off the end of the screen 2022-07-24 16:33:57 -07:00
Mitchell Hashimoto
5c8c9d8e3c support DECCOLM
This gets vttest page 1 and page 2 now FULL passing.

We now crash on page 3. This is a lingering bug in our grid code
though and we need to find it anyways so we'll keep the crash in.
2022-07-24 16:06:04 -07:00
Mitchell Hashimoto
a3409ac70d erase line left should include cursor position 2022-07-24 09:53:21 -07:00
Mitchell Hashimoto
a43c63111f count = 0 implies 1 for all cursor movement, fixes one line of vttest 2022-07-24 09:38:38 -07:00
Mitchell Hashimoto
6369f1f2f9 big improvements in action logging 2022-07-24 09:20:02 -07:00
Mitchell Hashimoto
4a9b8ea187 add a formatter for CSI logs so that they're more easy to read 2022-07-23 18:13:37 -07:00
Mitchell Hashimoto
bf3d6617fe move test log up so it shows up on fail 2022-07-22 14:24:24 -07:00
Mitchell Hashimoto
dfde2acf10 on resize, make sure we resize the alt screen too 2022-07-22 14:22:53 -07:00
Mitchell Hashimoto
12a864c3f2 test: use larger dimensions to avoid some crash 2022-07-22 14:17:15 -07:00
Mitchell Hashimoto
65c0472701 test: sort tests prior to running 2022-07-22 13:59:51 -07:00
Mitchell Hashimoto
3dbe9cba43 clean up unreachables with log statements 2022-07-22 13:54:16 -07:00
Mitchell Hashimoto
1b9b14be8b update zig 2022-07-22 13:48:55 -07:00
Mitchell Hashimoto
855a71d55c quiet noisy log 2022-07-22 13:45:51 -07:00
Mitchell Hashimoto
180d4a3c41 test: colorize output 2022-07-22 13:42:53 -07:00
Mitchell Hashimoto
d672bedec7 alternate screen buffer (mode 1049) now supported 2022-07-22 13:36:16 -07:00
Mitchell Hashimoto
5564bd7213 cursor belongs to screen (prep for alternate screen) 2022-07-22 13:08:40 -07:00
Mitchell Hashimoto
cf1aeacc4b update TODO 2022-07-22 10:12:18 -07:00
Mitchell Hashimoto
b4fc81564b xterm test cases 2022-07-22 10:10:51 -07:00