Commit Graph

1307 Commits

Author SHA1 Message Date
Kovid Goyal
dd7caaa91b ... 2025-10-15 08:09:29 +05:30
Kovid Goyal
ee9a5386b9 When doing a reset also reset termios to its initial state 2025-10-15 07:56:45 +05:30
Kovid Goyal
16d411943a Add integration test for go atexit implementation 2025-09-30 12:37:25 +05:30
Kovid Goyal
2f991691f9 Fix test failure with fish >= 4.1
fish now requires a response to a DA1 query
2025-09-29 14:01:57 +05:30
Kovid Goyal
3d0ec1c684 Only skip invalid UTF8 tests when actually using SIMD 2025-09-15 08:59:03 +05:30
Kovid Goyal
5d9a28f7a1 Move utf8_parsing tests to simd_decode
More robust as the tests are run against all three SIMD modes, no SIMD,
128bit and 256 bit
2025-09-15 08:53:03 +05:30
Kovid Goyal
42aa5957a5 Comment out all the failing invalid UTF-8 tests 2025-09-15 08:43:58 +05:30
Wukuyon
542c425488 test_utf8_parsing: Add more tests for UTF-8 maximal subpart replacement 2025-09-14 16:50:38 -06:00
Wukuyon
346384351e test_utf8_parsing: Add comments describing each assertion 2025-09-14 16:33:53 -06:00
Alexis (Poliorcetics) Bourget
4cccf929eb fix: when parsing python_strings options, don't fail if ' is last
Previously, if the last character was `'` parsing would fail: from `abc'`
it would produce the literal `'''abc''''`, which has one too many
unescaped single quote at the end.

This also fixes the issue for solo `'''`, where before it would produce
`''''\\'''''`, again with one too many single quote at the end.

I added tests for both cases.
2025-09-06 20:33:15 +02:00
Kovid Goyal
44b5d8f656 Dont use negative numbers in multi cursor protocol
There are apparently many parsers out there that cant handle them.
2025-08-26 21:43:37 +05:30
Kovid Goyal
da641982e2 Start work on specifying a color for extra cursors 2025-08-26 18:56:31 +05:30
Kovid Goyal
518e06cfa4 Also report -2 in query response 2025-08-25 15:30:36 +05:30
Kovid Goyal
24049a1a5a Implement round tripping of SGR blink (5/25) 2025-08-25 12:34:38 +05:30
Kovid Goyal
bacd13d3a7 extra cursors: Add some tests for invalid input handling 2025-08-24 20:25:38 +05:30
Kovid Goyal
8f5dc42a61 Parser for multi cursor escape code 2025-08-24 20:14:14 +05:30
Kovid Goyal
e6c1597834 Start work on multiple hardware cursors 2025-08-24 20:14:14 +05:30
Kovid Goyal
337cbf1435 Add an env var that can be used to eval an expression at startup of shell
This will come in handy to implement serialization as session
with running of current foreground command.
2025-08-16 11:58:30 +05:30
Kovid Goyal
a0b58ef205 Dont allow CUB to move cursor onto previous line
Reserve this behavior for actual backspace. Fixes #8900
2025-08-14 21:49:36 +05:30
Kovid Goyal
d52f2e7981 Rewrite rendering pipeline
This was needed to fix various corner cases when doing blending of colors
in linear space. The new architecture has the same performance as the
old in the common case of opaque rendering with no UI layers or images.

In the case of only positive z-index images there is a performance
decrease as the OS Window is now rendered to a offscreen texture and
then blitted to screen. However, in the future when we move to Vulkan or
I can figure out how to get Wayland to accept buffers with colors in
linear space, this performance penalty can be removed. The performance
penalty was not significant on my system but this is highly GPU
dependent. Modern GPUs are supposedly optimised for rendering to
offscreen buffers, so we will see. The awrit project might be a good
test case.

Now either we have 1-shot rendering for the case of opaque with only ext
or all the various pieces are rendered in successive draw calls into an
offscreen buffer that is blitted to the output buffer after all drawing
is done.

Fixes #8869
2025-08-11 00:47:02 +05:30
Kovid Goyal
b0439d4183 Function to erase the last command and its output 2025-08-07 08:45:45 +05:30
Kovid Goyal
f61b15b284 Fix incorrect handling of VS16 when it causes char to wrap to next line and is part of a draw command with more characters following it
Needed to initialize full text loop state rather than just segmentation
state on wrap. Fixes #8848
2025-07-26 09:25:01 +05:30
Kovid Goyal
45b2678db1 Allow backspace to wrap cursor to previous line
Fixes #8841
2025-07-23 08:56:54 +05:30
Kovid Goyal
12c1b0cbdf remove leftover debug prints 2025-07-20 21:45:36 +05:30
Kovid Goyal
2e92d610d5 Implement metadata based previews in choose-files 2025-07-20 09:31:17 +05:30
Kovid Goyal
fd20fd23bb Use clean HOME and CONF and CACHE dirs when running Go tests 2025-07-09 13:29:33 +05:30
Kovid Goyal
d7c4d42f41 Fix #8794 2025-07-09 12:49:12 +05:30
Kovid Goyal
c681a999d5 Fix hyperlink id not being applied to wide cells
Fixes #8796
2025-07-09 12:14:09 +05:30
Kovid Goyal
eabddc2870 Report support for OSC52 write to clipboard in DA1
There are apparently some applications that want to only turn on OSC52
if they can be sure the terminal supports it.
https://github.com/contour-terminal/vt-extensions/blob/master/clipboard-extension.md

Seems harmless enough, though IMO the correct query mechanism for
runtime controllable settings is XTGETTCAP, but, let's be a
good citizen and co-operate. The overhead is not too large and I
have more important windmills to tilt at.

Fixes #8788
2025-07-07 08:45:58 +05:30
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
Jacob Komissar
9549618bc9 Escape user input in zsh integration's _ksi_preexec
Also fix a bug in one of the test assertions to make the test work.
2025-06-23 18:44:52 -04:00
Kovid Goyal
bca017fa4c Fix #8741 2025-06-20 20:11:23 +05:30
Kovid Goyal
8e55cf7552 Fix #8731 2025-06-14 20:19:21 +05:30
Kovid Goyal
61fd8c4003 Fix #8682 2025-05-27 12:10:14 +05:30
Kovid Goyal
c861259e3b Rename go module from kitty -> github.com/kovidgoyal/kitty
Makes the code more easily re-useable in other projects
2025-05-16 08:43:39 +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
1237f7667c ... 2025-05-03 10:47:03 +05:30
Kovid Goyal
7dc673e485 Add XFCE to the X11 compatibility matrix 2025-05-03 10:39:41 +05:30
Kovid Goyal
07cda6ac45 Add GNOME to the X11 compatibility matrix 2025-05-03 08:57:55 +05:30
Kovid Goyal
8d213bba04 Make test more robust against env 2025-04-30 05:50:05 +05:30
Kovid Goyal
b9326f5c94 Add some formatting to CLIParser error messages 2025-04-29 07:26:48 +05:30
Kovid Goyal
909b8747d3 Add launcher test for list style options 2025-04-28 13:55:36 +05:30
Kovid Goyal
14792aa60e Allow partial option matches in C CLI parser as well
Matches behavior of Go parser and is nice to have
2025-04-28 12:43:09 +05:30
Kovid Goyal
15781435ae Cleanup reading of argv from files 2025-04-28 09:54:57 +05:30
Kovid Goyal
5c9c8aa424 Add unit testing for launcher code 2025-04-28 09:25:25 +05:30
Kovid Goyal
b0ae88ada9 Wire up the codegen C cli parser 2025-04-28 09:20:11 +05:30
Kovid Goyal
1413d8fb85 Fix handling of --help and --version 2025-04-28 09:20:11 +05:30
Kovid Goyal
27c5b6aac5 Generate option parser in C for kitty CLI 2025-04-28 09:20:10 +05:30
Kovid Goyal
62699f6799 Get basic C cli parsing working 2025-04-28 09:20:10 +05:30
Kovid Goyal
3f00dc1c9e Work on improving CLI parsing
Can now set bool values explicitly with =
Handle multi short flag args like -abc
Add unit tests for CLI parsing
Generate go code to serialize CLI options as a cmdline

TODO: Implement setting of bool vals in C and Go parsing code
TODO: Help/rst output should somehow indicate this feature
2025-04-26 09:01:54 +05:30