Commit Graph

1229 Commits

Author SHA1 Message Date
Kovid Goyal
0d866b1f13 Add tests for grapheme segmentation
Test data provided by Unicode organisation
2025-03-13 13:48:35 +05:30
Kovid Goyal
fd8172c04d Fix a regression in the previous release that caused empty lines to be skipped when copying text from a selection
Fixes #8435
2025-03-12 16:47:13 +05:30
Kovid Goyal
8cbdd003e2 Make deleting test dir suring shell integration tests robust against fish 4 background daemon generating completions 2025-03-08 10:42:18 +05:30
Kovid Goyal
ac9ed921d7 Temp fix for failing fish integration test
fish >= 3.8 wants to send shell integration OSC 133 itself. However it
does not send the cmdline_url parameter, causing our integration tests
to fail. Temporarily fix by commenting out the tests for it.

Fixes #8385
2025-03-02 15:41:47 +05:30
Kovid Goyal
2907999131 Use the same algorithm for rendering box cells and font based cells
Should make things easier to change in tandem in future.
2025-02-19 17:05:43 +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
c4ef0a0eef Add another test 2025-02-19 05:26:03 +05:30
Arvin Verain
a5cafdd8e9 test: Add more tests for scroll_to_prompt, fco, and lvco 2025-02-19 00:30:04 +08:00
Kovid Goyal
8f44e16b89 Fix scroll_to_prompt after resize that causes prompt line wrapping not accurate
See #8334
2025-02-18 19:40:23 +05:30
Kovid Goyal
eb5a9bc6a3 ... 2025-02-18 19:02:32 +05:30
Kovid Goyal
6f57537f30 Fix failing test 2025-02-18 18:44:57 +05:30
Kovid Goyal
c520b0b1b9 Add test for PR #8322 2025-02-18 10:08:41 +05:30
Kovid Goyal
2caa3fc069 ... 2025-02-17 20:18:14 +05:30
Kovid Goyal
a7f76ee8f7 Fix #8339 2025-02-17 19:56:39 +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
e7a40300d1 Fix crash when rendering a cell with a large number of combining chars
Caused by kitty now supporting larger number of combining chars per
cell. Fixes #8318
2025-02-12 08:23:46 +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
5adc81e146 Skip colrv1 rendering on macOS 2025-02-03 11:06:41 +05:30
Kovid Goyal
d068a0a6de Add basic colrv1 rendering test 2025-02-03 11:06:41 +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
da1626090a Update codebase to Python 3.10 using pyupgrade 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
561686c9d4 Refactor rewrap code, again
Now we do the rewrap of history and line buffers together. This is
faster and deals with multiline chars split between the two buffers
correctly. Also, considerably simpler code.
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
c4a32862d1 Implement restitch during rewrap
Faster, less code and gets us multicell handling during restitching for
free.
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
cf2fffaf95 Fix continuation char marking when rewrapping historybuf 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
95fbc6e9ba Forgot a couple of octants 2025-02-03 10:56:48 +05:30
Kovid Goyal
39dc31e021 Render the octant characters using box drawing 2025-02-03 10:56:48 +05:30
Kovid Goyal
c67475271f Remove box drawing python code 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
1707e603f3 Implement underline exclusion 2025-02-03 10:56:46 +05:30
Kovid Goyal
27c862970b Simplify sprite management code
Now if decorations are needed they are created *before* the index for
the sprite is assigned.
2025-02-03 10:56:46 +05:30
Kovid Goyal
b2a4db2028 Revert metadata row for sprites
Store in a separate VAO instead more performant as it uses less VRAM and
allows shader lookup co-ords to be passed to fragment shaders without
calculation in the fragment shader.
2025-02-03 10:56:45 +05:30