749 Commits

Author SHA1 Message Date
Kovid Goyal
c03dd673ae Restore fast path for printable ASCII 2025-04-11 09:34:21 +05:30
Kovid Goyal
c01a941fe7 Get the unicode grapheme seg tests passing on screen, with minimal modification
We ignore tests including ACII control codes and we modify the results
when there are grapheme breaks before zero width characters.
2025-04-11 09:34:21 +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
f5e8de2e4f Implement grapheme segmentation in the terminal layer 2025-04-11 09:34:21 +05:30
Kovid Goyal
d1938cb060 Fix failing test 2025-04-08 13:07:59 +05:30
Kovid Goyal
adc9b3f6cf When issuing a DECRPSS report for SGR use a leading 0
This matches historical DEC terminal behavior.
2025-04-08 09:15:31 +05:30
Kovid Goyal
b0371d970f Micro optimization 2025-04-03 17:23:43 +05:30
Kovid Goyal
251ec3419b When in alternate screen and using margins, index selections more intelligently, gives slightly nicer behavior with multiplexer horizontal panes. 2025-04-03 17:22:25 +05:30
Kovid Goyal
72a1aabafd Fix hover underline remaining on screen when screen is scrolled 2025-03-31 10:47:25 +05:30
Kovid Goyal
c0f5170fc3 Fix ranged_line_is_continued depending on scrolled_by 2025-03-30 20:27:11 +05:30
Arvin Verain
6d75f7cff4 test: Add method to easily set last_visited attributes 2025-03-28 22:38:19 +08:00
Arvin Verain
59f134d511 fix: Edge case when paging from a line within output
When OUTPUT_START is already past scrollback and can't be
found upwards, properly handle the first prompt encountered
to capture the correct command output to be paged.
2025-03-28 22:38:16 +08:00
Arvin Verain
80d7da0902 fix: Edge case when paging from a line within prompt
When PROMPT_START is already past scrollback and can't be
found upwards, set the proper values depending on if the
search is over or deferred downwards.
2025-03-28 22:38:08 +08:00
Kovid Goyal
294de16898 Use ms table for remaining UCD lookups 2025-03-25 15:41:34 +05:30
Kovid Goyal
9f7643078c Use unicode multi-table for remaining hot path lookups
Results in a 15% improvement in the unicode throughput benchmark
2025-03-24 15:04:33 +05:30
Kovid Goyal
3d0e45ace8 Use the new multi-stage unicode table for wcwidth 2025-03-24 14:20:40 +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
e84a8fd7e9 Do fine grained clearing of URL ranges
This matches what is done for selections. This is a very slight
performance hit (one extra easily predicted branch)
since most of the time url ranges is empty.

Fixes #8414
2025-03-09 18:45:52 +05:30
Kovid Goyal
a5d4ca3735 Micro-optimization: in paused rendering selections are never changed 2025-03-09 18:22: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
Arvin Verain
ccffbd23ce fix: First on screen paging fix when prompt is obscured in scrollback 2025-02-19 00:30:03 +08:00
Arvin Verain
e23d6877c0 fix: Page cmd outputs properly regardless of amount of prompt lines
Also skip fetching lines of wrapped prompts
2025-02-19 00:30:03 +08:00
Kovid Goyal
c520b0b1b9 Add test for PR #8322 2025-02-18 10:08:41 +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
888b8a3bfb Use same algorithm for multicell selection expansion and text extraction 2025-02-15 10:43:32 +05:30
Kovid Goyal
1c00ae80e6 Limit max number of combining chars per cell 2025-02-12 09:03:48 +05:30
Kovid Goyal
47a025752a Nuke multicell chars at the prompt when rewrpping it to prevent corrupted multicell chars 2025-02-10 20:53:33 +05:30
Kovid Goyal
04f28e4b7a ... 2025-02-08 14:04:47 +05:30
Kovid Goyal
3f54b83991 Remove unnecessary branch 2025-02-08 13:51:09 +05:30
Kovid Goyal
f412ec617c Track line continuation in only one place
The canonical flag tracking this is the last cell of the previous line.
So use that only rather than copying it onto a line attribute. Should
micro-optimize cases where we init a line but dont need the continuation
status.
2025-02-08 08:58:50 +05:30
Kovid Goyal
c3ed945a93 Another micro optimization 2025-02-07 21:04:00 +05:30
Kovid Goyal
92e2b93e95 Start work on VT implementation in Go
Will be used by pager kitten
2025-02-06 12:31:32 +05:30
Kovid Goyal
4b38818dca Make CodeQL happy 2025-02-06 10:13:48 +05:30
Kovid Goyal
f1452a80dd More work on text sizing docs 2025-02-03 10:56:51 +05:30
Kovid Goyal
8bf8f5dc46 Finish up testing for multicell URL detection 2025-02-03 10:56:50 +05:30
Kovid Goyal
c3db7c9464 ... 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
0bf32c6a59 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
ac1aaab077 More work of selections as text 2025-02-03 10:56:50 +05:30
Kovid Goyal
8156a7520f Start work on multicell support for selection_as_text 2025-02-03 10:56:49 +05:30
Kovid Goyal
ac32f91a2e Implement rendering of selections that intersect multicell cells 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
8daec0f1ff DRYer 2025-02-03 10:56:48 +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
f67c58034c Add tests for ch_and_idx 2025-02-03 10:56:47 +05:30
Kovid Goyal
3f04b31725 Fix build on older compiler 2025-02-03 10:56:46 +05:30