2524 Commits

Author SHA1 Message Date
Mitchell Hashimoto
4f5a05e087 renderer: render cursor over wide character if on tail part 2023-10-13 14:39:10 -07:00
Mitchell Hashimoto
7995d44cfb font: render sprites with a configurable grid cell width
Fixes #666
2023-10-13 14:31:55 -07:00
Mitchell Hashimoto
1411015038 font: fallback search should search full discovery chain
Fixes #668

We were previously only checking the first font result in the search.
This also fixes our CoreText scoring algorithm to prioritize faces that
have the codepoint we're searching for.
2023-10-13 12:25:27 -07:00
Mitchell Hashimoto
5ce50d08a1 terminal: linefeed mode 2023-10-12 20:46:26 -07:00
Mitchell Hashimoto
853c0427e6 website: document srm mode 2023-10-12 19:38:06 -07:00
Mitchell Hashimoto
89d2827910 terminal: insert mode tests, fix insertBlanks multi-cell char split 2023-10-12 19:24:27 -07:00
Mitchell Hashimoto
6a065540dd terminal: KAM (mode 2)
This has an associated config `vt-kam-allowed` which defaults to "false"
since this mode can cause the terminal to become mostly unusable. We
include this mode for completions sake however.
2023-10-12 17:07:47 -07:00
Mitchell Hashimoto
d97e5b9dab input: legacy encoding pc style keys should ignore directional modifiers 2023-10-12 12:28:26 -07:00
Mitchell Hashimoto
17430a1250 terminal: index handles left/right regions 2023-10-12 08:31:28 -07:00
Mitchell Hashimoto
f94f32be79 website 2023-10-11 22:01:37 -07:00
Mitchell Hashimoto
392da475e1 terminal: XTSHIFTESCAPE 2023-10-11 21:49:04 -07:00
Mitchell Hashimoto
f7cc5ccdd6 config: add mouse-shift-capture configuration 2023-10-11 21:38:52 -07:00
Mitchell Hashimoto
96546af475 terminal: test REP 2023-10-11 17:23:27 -07:00
Mitchell Hashimoto
e593ffa264 terminal: default for right scroll margin was incorrect 2023-10-10 16:06:27 -07:00
Mitchell Hashimoto
0d2bfacd5b terminfo: add left/right margin entries 2023-10-10 15:59:24 -07:00
Mitchell Hashimoto
a9fee348b6 terminal: print handles left/right margins 2023-10-10 15:41:31 -07:00
Mitchell Hashimoto
73ecb6f7ee terminal: CUL handles left/right margins 2023-10-10 15:26:04 -07:00
Mitchell Hashimoto
0c2bf94b13 Enable left/right margin support 2023-10-10 15:21:45 -07:00
Mitchell Hashimoto
fbc305c901 terminal: reverse index xterm audit 2023-10-10 15:15:53 -07:00
Mitchell Hashimoto
d8f2a8dff0 termio: NEL is index then CR 2023-10-10 14:37:25 -07:00
Mitchell Hashimoto
28b7329fe4 terminal: scroll down test 2023-10-10 14:22:05 -07:00
Mitchell Hashimoto
3cc0cbcc9d terminal: SU, fix DL bug 2023-10-10 13:00:00 -07:00
Mitchell Hashimoto
7a8f2bfed6 terminal: decscusr 2023-10-10 12:24:11 -07:00
Mitchell Hashimoto
5d1b54eceb termio: unescape OSC 7 pwd since it is URL encoded
Fixes #621
2023-10-10 11:21:59 -07:00
Mitchell Hashimoto
a234627156 core: mouse selection to right should include first cell if past
boundary
2023-10-10 09:37:11 -07:00
Mitchell Hashimoto
a6d3d51945 core: mouse selection when moving left before half-way point
If you have a cell "M" and you click before the mid-point of M on the
left side and then drag left, we should not select "M".
2023-10-10 09:35:11 -07:00
Mitchell Hashimoto
f216609662 terminal: RIS should reset tabstops, ESC ? W should reset every 8
Fixes #648

Two issues here:

  - RIS should've been resetting the tabstops to every 8, but was
    clearing all tabstops.

  - `ESC ? W` should've reset tabstops to every 8, but was clearing
    all tabstops.
2023-10-10 09:02:22 -07:00
Mitchell Hashimoto
2354454907 terminal: set left and right margins, left and right margin mode 69 2023-10-09 21:20:15 -07:00
Mitchell Hashimoto
be99d8ffe1 terminal: decaln 2023-10-09 20:33:52 -07:00
Mitchell Hashimoto
7cc0bbe211 terminal: set top and bottom margin tests 2023-10-09 20:08:16 -07:00
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