2094 Commits

Author SHA1 Message Date
Mitchell Hashimoto
9c45c6a3d1 terminal: handle ansi vs dec mode
Previously, we just ignored ansi vs dec modes (`?`-prefix) and just
responded to both requests most of the time using the number as the
unique value. This _kind of works_ because almost all DEC modes do not
overlap with ANSI modes, but some overlap (i.e. `insert`, ANSI mode 4).

This commit properly separates ANSI vs DEC modes and updates all of our
terminal sequences to handle both (where applicable -- some sequences
are explicitly DEC-only).
2023-10-09 16:01:08 -07:00
Mitchell Hashimoto
0e22e2a8dd terminal: SD should also work if cursor outside of left/right region 2023-10-09 10:53:47 -07:00
Mitchell Hashimoto
fc08f9ab17 terminal: TBC tests 2023-10-09 10:01:23 -07:00
Mitchell Hashimoto
ed23f2f1d0 terminal: implement DECID (ESC Z) 2023-10-09 09:43:28 -07:00
Mitchell Hashimoto
773104d343 terminal: scroll down tests 2023-10-09 09:40:28 -07:00
Mitchell Hashimoto
d0b8bf7752 terminal: enable alternate scroll mode by default
Fixes #641

xterm does not so there is an argument to not doing this but a lot of
other terminals do. Having this on by default makes things like less
scroll with the mouse wheel by default which is nice to have.
2023-10-09 09:23:39 -07:00
Mitchell Hashimoto
60f0e9289a terminal: dch xterm audit 2023-10-08 22:16:35 -07:00
Mitchell Hashimoto
1176b65a95 terminal: test IND preserves background sgr 2023-10-08 21:39:29 -07:00
Mitchell Hashimoto
4b9560aa31 terminal: DL 2023-10-08 21:28:41 -07:00
Mitchell Hashimoto
76bbb7c361 terminal: insert lines (IL) handles left/right scroll regions 2023-10-08 20:51:00 -07:00
Mitchell Hashimoto
38f968e368 terminal: IL preserves bg sgr, partial left/right margin support 2023-10-08 15:27:09 -07:00
Mitchell Hashimoto
eab390344a terminal: ED xterm audit
Fix multi-cell handling
Test all scenarios
2023-10-08 14:48:06 -07:00
Mitchell Hashimoto
02b134f97e terminal: EL (erase line) xterm audit
Fix multi-cell char handling
Fix bg SGR respecting in non-protected cases
Fix protected attribute logic
2023-10-08 09:03:04 -07:00
Mitchell Hashimoto
fa73fa0de2 terminal: ECH handles protection attributes properly 2023-10-07 22:36:29 -07:00
Mitchell Hashimoto
514071dd87 terminal: ECH tests with bg and multi-cell fix 2023-10-07 22:21:38 -07:00
Mitchell Hashimoto
f640fbc394 core: alternate scroll only sends up/down arrows, not left/right 2023-10-07 14:26:39 -07:00
Mitchell Hashimoto
d85baa4631 terminal: alternate scroll (mode 1007) should not be enabled by default 2023-10-07 14:26:11 -07:00
Mitchell Hashimoto
90dcf1b7a8 Revert "termio: clear screen always sends form feed (0x0C)"
This reverts commit abc383854604189378bfe61239c14f263f7a14de.

See #623
2023-10-07 13:58:07 -07:00
Mitchell Hashimoto
b927760149 terminal: HPR, VPR 2023-10-07 09:32:58 -07:00
Mitchell Hashimoto
f5a5de15cc terminal: HPA, VPA 2023-10-07 09:22:13 -07:00
Mitchell Hashimoto
28f6379453 terminal: CUP respects left/right scroll region 2023-10-07 09:17:00 -07:00
Mitchell Hashimoto
c089c37b90 terminal: CUF handles right margin 2023-10-07 08:42:08 -07:00
Mitchell Hashimoto
9b7c778e55 terminal: cursor up respects scroll margins 2023-10-06 22:41:40 -07:00
Mitchell Hashimoto
78d69c6cdb website: ich split multi-cell 2023-10-06 22:23:08 -07:00
Mitchell Hashimoto
0645ab7a98 terminal: ICH handles left/right margins, clears bg 2023-10-06 22:08:21 -07:00
Mitchell Hashimoto
e4b844dea6 terminal: CHT 2023-10-06 16:58:48 -07:00
Mitchell Hashimoto
cf01cd87a4 terminal: CBT respects left margin in origin mode 2023-10-06 15:48:05 -07:00
Mitchell Hashimoto
6958978a6c terminal: IND supports left/right margins 2023-10-06 14:54:40 -07:00
Mitchell Hashimoto
ec854a20eb terminal: a lot more index tests 2023-10-06 14:33:02 -07:00
Mitchell Hashimoto
eeecc6c7e7 terminal: cursor down respects bottom margins 2023-10-06 12:54:02 -07:00
Mitchell Hashimoto
c2af7b60d0 terminal: FF (0x0D) also invokes LF 2023-10-06 12:00:18 -07:00
Mitchell Hashimoto
3360a88768 terminal: implement origin mode and left margin handling for CR 2023-10-06 11:37:50 -07:00
Mitchell Hashimoto
e3b455444d terminal: have left/right scrolling region data but can't be set yet 2023-10-06 11:28:20 -07:00
Mitchell Hashimoto
f32ae27660 terminal: add todo for CUB for left/right margins 2023-10-06 09:27:02 -07:00
Mitchell Hashimoto
d3483a8eed terminal: extended reverse wrap takes priority over reverse wrap 2023-10-06 08:59:22 -07:00
Mitchell Hashimoto
a1becf73ad terminal: CUB extended reverse wrap mode 2023-10-06 08:55:09 -07:00
Mitchell Hashimoto
9e506ac7e1 terminal: cursor back handles reverse wrap (mode 45) 2023-10-06 08:35:02 -07:00
Mitchell Hashimoto
7fe1a61ae8 terminal: cursor back should reduce count if pending wrap is one 2023-10-06 07:52:15 -07:00
Mitchell Hashimoto
e74897fa01 config: add option to disable working directory inheritance
Fixes #618
2023-10-05 21:55:43 -07:00
Mitchell Hashimoto
224b39b86e font/coretext: allow setting a non-monospace font explicitly
This changes our font discovery to not filter out monospace and updates
our scoring mechanism to prefer monospace.
2023-10-05 08:39:48 -07:00
Mitchell Hashimoto
7a0b8a6781 font: fix failing macos tests 2023-10-05 08:08:04 -07:00
Mitchell Hashimoto
7eb3130faf config: update some docs 2023-10-04 22:09:20 -07:00
Mitchell Hashimoto
b98cc3d79f config: add remaining font modifiers 2023-10-04 22:08:19 -07:00
Mitchell Hashimoto
16cfb14200 font: modify font compiles for freetype 2023-10-04 21:48:51 -07:00
Mitchell Hashimoto
2563a195a1 font: wire up all the metric modifiers 2023-10-04 21:42:03 -07:00
Mitchell Hashimoto
54b9b45a7f font: rework font init to use a struct with modifiersets everywhere 2023-10-04 17:23:57 -07:00
Mitchell Hashimoto
969960a10b font: Metrics ModifierSet 2023-10-04 15:56:32 -07:00
Mitchell Hashimoto
bac5e20962 font: Metrics.Modifier for applying a percentage/absolute change 2023-10-04 15:28:22 -07:00
Mitchell Hashimoto
ee832aa361 apprt/embedded: ghostty_surface_text function, remove _char 2023-10-04 07:56:56 -07:00
Mitchell Hashimoto
3046fb6dd7 core: textCallback to send text directly to the terminal 2023-10-04 07:50:05 -07:00