157 Commits

Author SHA1 Message Date
Kovid Goyal
2cad589f1c Add tests for combining at screen edge 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
Arvin Verain
6d75f7cff4 test: Add method to easily set last_visited attributes 2025-03-28 22:38:19 +08:00
Arvin Verain
07f30122e6 test: Add more tests for cmd paging edge cases 2025-03-28 22:38:18 +08:00
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
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
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
8bf8f5dc46 Finish up testing for multicell URL detection 2025-02-03 10:56:50 +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
33207a57ba Add tests for consecutive conflicting variation selectors 2024-12-05 19:21:00 +05:30
Kovid Goyal
a4d2d933c9 Fix #8103 2024-12-05 19:19:15 +05:30
Kovid Goyal
8e388acab7 Add some cursor tracking tests 2024-11-27 20:33:56 +05:30
Kovid Goyal
778344a439 Fix enlarging window when a long line is wrapped between the first line of the scrollback buffer and the screen inserting a spurious newline
Fixes #7033
2024-11-27 20:08:27 +05:30
Kovid Goyal
97e4625a82 ... 2024-11-12 09:29:17 +05:30
Kovid Goyal
6d5a2b8ecd Add a test that exercises the text_cache in Line code path 2024-11-12 09:16:45 +05:30
Kovid Goyal
002d0a0403 Preserve trailing blank line on resize always
No sense in restricting it to just lines marked as output and only on
main screen.
2024-10-19 14:15:45 +05:30
Kovid Goyal
66251f8fd5 Add test for previous bugfix
main screen should have trailing output line preserved when resized on alt screen
2024-10-19 14:02:06 +05:30
Kovid Goyal
b66d9332f9 ... 2024-10-19 10:51:18 +05:30
Kovid Goyal
c3130419a7 Implement dynamic control of transparent background colors via escape code
Still have to implement it via remote control
2024-09-24 19:02:13 +05:30
Kovid Goyal
deff40df8a New OSC 21 protocol for color control
Needs to be specced up
2024-07-22 10:57:13 +05:30
Kovid Goyal
a4cdc1cdf3 Send current size when in band resize events requested even if mode is already on 2024-07-18 20:40:05 +05:30
Kovid Goyal
8d1eb75f9c ... 2024-07-18 20:34:57 +05:30
Kovid Goyal
06b5eff6e6 Add support for in-band window resize notifications
Fixes #7642
2024-07-18 20:32:33 +05:30
Kovid Goyal
2955c3f7a7 Move hyperlink hashmap to verstable
Also speedup getting url for hyperlink id by using a second hash map for
it. Change behavior when there are too many hyperlinks to discard new
hyperlinks instead of remapping old hyperlink id and making some old
hyperlink wrong.
2024-07-12 09:11:00 +05:30
Kovid Goyal
1a38b60463 URL detection: Fix IPv6 hostnames breaking URL detection
Fixes #7565
2024-06-21 05:53:21 +05:30
Kovid Goyal
a0aba4da4a Fix handling of tab character when cursor is at end of line and wrapping is enabled
Fixes #7250
2024-03-23 08:43:06 +05:30
Kovid Goyal
f64739c29b Fix regression that broke handling of single byte control chars when cursor is on second cell of wide character 2024-02-25 09:57:41 +05:30
Kovid Goyal
1f835b27c4 start work on implementing pending mode as paused rendering 2024-02-25 09:57:32 +05:30
Kovid Goyal
a9f5519d11 Add tests for writing with cursor on trailer of wide char 2024-02-25 09:57:30 +05:30
Kovid Goyal
8dca5a6b9a ... 2024-02-25 09:57:26 +05:30
Kovid Goyal
6205fb32fd Refactor VT parser for more speed
No longer copy bytes into a separate buffer, instead parse them in place
in the read buffer
2024-02-25 09:57:23 +05:30
Kovid Goyal
f42b49e597 Avoid a double parse for pending mode 2024-02-25 09:57:23 +05:30
Kovid Goyal
52025ff030 misc parser and test fixes 2024-02-25 09:57:22 +05:30
Kovid Goyal
5168e0b576 Port parse_bytes() used in the tests 2024-02-25 09:57:22 +05:30
Kovid Goyal
8cc2cad4d9 Use list of legal chars in URL from the WHATWG standard
Notably this excludes some ASCII chars: <>{}[]`|
See https://url.spec.whatwg.org/#url-code-points

Fixes #7095
2024-02-05 13:27:22 +05:30
Kovid Goyal
77292a16d6 Make shebangs consistent
Follow PEP 0394 and use /usr/bin/env python so that the python in the
users venv is respected. Not that the kitty python files are meant to be
executed standalone anyway, but, whatever.

Fixes #6810
2023-11-11 08:32:05 +05:30
Kovid Goyal
77140fc798 Fix #6803 2023-11-10 08:49:33 +05:30
Kovid Goyal
5d5bbe9b96 Add a paragraph on legacy xterm compat for pointer shapes 2023-10-15 21:59:04 +05:30
Kovid Goyal
1693107608 A new escape code to change the shape of the mouse pointer
Fixes #6711
2023-10-15 19:57:36 +05:30
Kovid Goyal
1f91250a40 Fix trailing bracket not ignored when detecting a multi-line URL with the trailing bracket as the first character on the last line
Fixes #6710
2023-10-13 10:44:58 +05:30
Kovid Goyal
7fe5d7b58f Replace isort with ruff 2023-01-09 16:47:42 +05:30
Kovid Goyal
6e4376e44e A few more wrapping serialization tests 2022-12-27 09:11:15 +05:30
Kovid Goyal
f6801d48d1 Add a test to ensure \n does not change wrapping status 2022-12-27 08:48:26 +05:30
Kovid Goyal
68cf9f7514 Switch to tracking linewrap on the last cell in a line
This allows us to have newline not affect the wrap status of a line.

Now a lines wrapping status is changed only when the last cell
in the line is changed. This actually matches the behavior of many other
terminal emulators so is probably a good thing from a ecosystem
compatibility perspective.

The fish shell expects this weird behavior of newline not changing
wrapping status, for unknown reasons, which is the actual motivation for
doing all this work.

Fixes #5766
2022-12-26 20:26:21 +05:30
Kovid Goyal
c2ead407ae ... 2022-10-31 18:14:38 +05:30