43 Commits

Author SHA1 Message Date
Kovid Goyal
75f10d140f Fix off-by-one in code to nuke incomplete multicell chars in line
Fixes #8758
2025-06-27 11:35:18 +05:30
Kovid Goyal
68b4c3dd6d Fix ambiguous width and private use characters not being rendered when used with variable width text-sizing protocol escape codes 2025-05-12 05:21:51 +05:30
Kovid Goyal
4c2bd8ffb1 Implement zero width roundtripped chars in multicell segmentation as well 2025-04-11 09:34:21 +05:30
Kovid Goyal
f57f3d9909 Fix #8464 2025-03-21 19:55:45 +05:30
Kovid Goyal
15f711d6b5 Start work on horizontal align for multicells 2025-02-19 07:50:40 +05:30
Kovid Goyal
bedc2ea1b9 Reduce num of bits used for x/y multicell 2025-02-19 05:53:07 +05:30
Kovid Goyal
b4b2b44c92 Multicell selections: Clamp to line
When the end point of the selection is within a multicell character of
the same size and vertical position as the start point, clamp the
selection line to the start line to avoid un-intuitive multiline
selections.

Fixes #8310
2025-02-15 13:11:46 +05:30
Kovid Goyal
dc5c9b5bf4 Another test 2025-02-15 11:38:49 +05:30
Kovid Goyal
0e820f5d9c ANSI output: Preserve use of natural_width
Keeps semantics of the text the same when roundtripping rather than
visual appearance.
2025-02-15 11:03:20 +05:30
Kovid Goyal
888b8a3bfb Use same algorithm for multicell selection expansion and text extraction 2025-02-15 10:43:32 +05:30
Kovid Goyal
077116e027 Fix a typo causing corruption of multiline chars split between history buffer and line buffer on resize 2025-02-11 11:55:15 +05:30
Kovid Goyal
8bf8f5dc46 Finish up testing for multicell URL detection 2025-02-03 10:56:50 +05:30
Kovid Goyal
64e3b641ce Get basic multicell URL detection working 2025-02-03 10:56:50 +05:30
Kovid Goyal
6a19918687 More work on multicell URL detection 2025-02-03 10:56:50 +05:30
Kovid Goyal
f599144913 Fix multicell marking of hyperlinks 2025-02-03 10:56:50 +05:30
Kovid Goyal
2423c2166e More tests for multicell selections 2025-02-03 10:56:50 +05:30
Kovid Goyal
922d08516b ... 2025-02-03 10:56:50 +05:30
Kovid Goyal
ac1aaab077 More work of selections as text 2025-02-03 10:56:50 +05:30
Kovid Goyal
ac32f91a2e Implement rendering of selections that intersect multicell cells 2025-02-03 10:56:49 +05:30
Kovid Goyal
dc5037ff37 Add tests for multicell char split between history and line buffers 2025-02-03 10:56:49 +05:30
Kovid Goyal
97449dfddb Cursor tracking tests
Also fix extra x movement for tracked cursors
2025-02-03 10:56:49 +05:30
Kovid Goyal
b3c39f4921 Finish up the redraw multicell tests 2025-02-03 10:56:49 +05:30
Kovid Goyal
001cc8009e More multicell rewrap tests 2025-02-03 10:56:49 +05:30
Kovid Goyal
decafb0d3f More multicell wrap tests 2025-02-03 10:56:49 +05:30
Kovid Goyal
cf5f6e97e8 Add some basic tests for multicell rewrap 2025-02-03 10:56:49 +05:30
Kovid Goyal
5b0e1b5b5c Fix wrap marker when continuing to a new line with a multicell command 2025-02-03 10:56:48 +05:30
Kovid Goyal
bbcb7dc24c Fix cursor rendering when on first cell of multicell 2025-02-03 10:56:47 +05:30
Kovid Goyal
f67c58034c Add tests for ch_and_idx 2025-02-03 10:56:47 +05:30
Kovid Goyal
87dea95a0e Fix rendering of scaled emoji 2025-02-03 10:56:45 +05:30
Kovid Goyal
27bcd96071 Tests for combining char on multicell 2025-02-03 10:56:45 +05:30
Kovid Goyal
06c428ba7b Fix drawing multiple chars where the second or later char is on a multicell 2025-02-03 10:56:45 +05:30
Kovid Goyal
4a0086b241 Fix vertical_align serialization 2025-02-03 10:56:45 +05:30
Kovid Goyal
8030cbd361 Allow more subscales 2025-02-03 10:56:44 +05:30
Kovid Goyal
b1c80d212f Allow non-width multicell code to fill multiple cells using native width algo 2025-02-03 10:56:44 +05:30
Kovid Goyal
844d538e40 When drawing text, skip past multiline chars 2025-02-03 10:56:44 +05:30
Kovid Goyal
35946f9386 Improve performance of processing wide chars
Store multi cell data in the CPUCell rather than in TextCache.
This sends the CPUCell size back to 12 but in benchmarks ASCII
performance is untouched and Unicode performace goes back to what it was
before multicell
2025-02-03 10:56:44 +05:30
Kovid Goyal
383e1f8f57 Work on scaled rendering for box drawing chars 2025-02-03 10:56:43 +05:30
Kovid Goyal
394404a1ab Add multicell tests for various edit operations 2025-02-03 10:56:43 +05:30
Kovid Goyal
e10df382f8 Tests for erasing characters 2025-02-03 10:56:43 +05:30
Kovid Goyal
8f0d291500 Delete chars with multicell tests 2025-02-03 10:56:43 +05:30
Kovid Goyal
23bb053fb4 Insert chars with multicell tests 2025-02-03 10:56:43 +05:30
Kovid Goyal
1ed4a349be Clearance of multicell tests 2025-02-03 10:56:43 +05:30
Kovid Goyal
5e861ea5ac Start work on testing multicell commands 2025-02-03 10:56:43 +05:30