Commit Graph

77 Commits

Author SHA1 Message Date
Dominique Martinet
c421d3bb59 line_as_ansi: don't reset SGR at start of line
less does not carry the mode over from the previous line anyway, let's
save a few bytes for every line
2018-09-22 19:10:09 +09:00
Kovid Goyal
5fa5bf8142
Add a test for unicode regional indicator widths 2018-08-04 10:56:35 +05:30
Kovid Goyal
6f2d63eb87
Implement SGR dim
kitty now supports the SGR DIM escape code, which makes text fade into
the background. It works by alpha blending the text color into the
background color. Fixes #446
2018-05-20 10:43:26 +05:30
Kovid Goyal
3f316c39d1
Dynamically allocate the scrollback history buffer
Reduces startup memory consumption when using very large scrollback
buffer sizes.
2018-05-03 15:17:02 +05:30
Kovid Goyal
0be0963dc7
Utility method to truncate formatted lines to specified width 2018-04-25 19:34:04 +05:30
Kovid Goyal
19648257f2
Have wcwidth() ignore SGR 2018-02-12 10:19:29 +05:30
Kovid Goyal
f4f0b8fd5f
Kittens learn about bracketed paste 2018-02-07 10:39:05 +05:30
Kovid Goyal
22cf67b407
More work on tui.loop 2018-02-06 20:08:28 +05:30
Kovid Goyal
fa87ce72a8
A terminal input parse helper for the kittens 2018-02-06 17:29:05 +05:30
Kovid Goyal
e830b7edf7
Add emoji presentation variation selector support to wcswidth() as well 2018-02-06 10:16:23 +05:30
Kovid Goyal
b9857f9499
Only consider emoji characters with emoji presentation to have width two
Fixes #308
2018-02-05 09:21:13 +05:30
Kovid Goyal
3f24e5b571
A few more places to remove wcwidth from 2018-02-04 22:47:02 +05:30
Kovid Goyal
fc7ec1d3f7
Get rid of the option to use the system wcwidth
The system wcwidth() is often wrong. Not to mention that if you SSH into
a different machine, then you have a potentially different wcwidth. The
only sane way to deal with this is to use the unicode standard.
2018-02-04 21:02:30 +05:30
Kovid Goyal
80301d465b
Handle non-BMP combining characters
Use a level of indirection to store combining characters. This allows
combining characters to be stored using only two bytes, even if they are
after USHORT_MAX
2018-01-18 16:25:42 +05:30
Kovid Goyal
7ed835cf13
Fix a crash when detecting URLs continued onto multiple lines
Fixes #244
2017-12-27 06:35:09 +05:30
Kovid Goyal
27cd303a05
Centralize code to convert to SGR
Conversion from formatting attributes to SGR now always goes through a
Cursor.
2017-12-04 10:51:06 +05:30
Kovid Goyal
73b501c961
Make color parsing a little more robust
Add a few tests for it
2017-12-01 20:02:47 +05:30
Kovid Goyal
6c838bbc28
Implement dirty line tracking 2017-11-09 16:55:45 +05:30
Kovid Goyal
898e87aa7b
Dont allocate space for dummy fonts
Also move sprite_map test into fonts test module
2017-11-09 16:55:42 +05:30
Kovid Goyal
f25d2ea540
Rip out the old sprite update code 2017-11-09 16:45:45 +05:30
Kovid Goyal
2443d76ac3
Apparently pep8 now just does not let you use the name l
This is one of the most hilarious bugs in pep8 I have come across
2017-10-23 17:40:53 +05:30
Kovid Goyal
8b54df31ef
Fix new pep8 ambiguous name warning 2017-10-23 17:33:57 +05:30
Kovid Goyal
3ca45ab241
Fix cursor moving one line up when resizing 2017-09-20 10:59:31 +05:30
Kovid Goyal
464291bbb1
Port click on URL code to C 2017-09-15 10:45:27 +05:30
Kovid Goyal
271b623f82
More URL detection tests 2017-09-15 10:45:25 +05:30
Kovid Goyal
88d896e745
Move function to detect URLs into C code 2017-09-15 10:45:25 +05:30
Kovid Goyal
c683725434
Get rid of the timers infrastructure
It is not needed with a pure state machine.
Note that drag scrolling still has to be ported from using
timers.
2017-09-15 10:45:24 +05:30
Kovid Goyal
bc97cfa024
Use a null to represent a blank rather than a space
This has performance benefits when clearing (can use a single
memset). Also allows detecting trailing whitespace on lines correctly.
2017-09-15 10:45:16 +05:30
Kovid Goyal
6127d2d122
Make the sprite map globally accessible from C code as well as python code
The lock was removed as the Python GIL is sufficient to serialize access
to the SpriteMap structure.
2017-09-15 10:45:10 +05:30
Kovid Goyal
a429bcbb22
Dont use the glfw timer function as it requires glfwInit 2017-09-15 10:45:07 +05:30
Kovid Goyal
9c501b37ea Allow skipping of tests that depend on a modern wcwidth() via an env var 2017-01-10 13:52:15 +05:30
Kovid Goyal
2517e4a8a0 Expand the wcwidth test 2017-01-09 07:13:14 +05:30
Kovid Goyal
b4af2ff314 The cursor visible (DECTCEM) property should be global, not affected by save/restore of cursor or alternate screens 2017-01-04 10:02:39 +05:30
Kovid Goyal
b6c639c487 Fix incorrect handling of trailing whitespace for lines in the history buffer when resizing 2016-12-11 14:48:00 +05:30
Kovid Goyal
ae3f555f51 HistoryBuf.as_ansi() 2016-12-09 19:39:20 +05:30
Kovid Goyal
471b36832e ... 2016-12-09 12:46:02 +05:30
Kovid Goyal
5a6ecbbf43 LineBuf.as_ansi() 2016-12-09 12:44:39 +05:30
Kovid Goyal
e3e3e86598 Code to get the ANSI representation of a line 2016-12-08 21:11:12 +05:30
Kovid Goyal
3031d41e72 Start work on supporting changing of entries in the color table 2016-11-24 15:28:52 +05:30
Kovid Goyal
101afd5031 Switch title handling to use unicode 2016-11-23 20:28:30 +05:30
Kovid Goyal
3c8d2dce36 ... 2016-11-21 10:25:53 +05:30
Kovid Goyal
7b1591113a Basic tests for HistoryBuf.rewrap 2016-11-20 22:40:43 +05:30
Kovid Goyal
776224378d Basic tests for HistoryBuf 2016-11-20 20:40:10 +05:30
Kovid Goyal
0b0a216856 Use HistoryBuf (still need to implement rewrap) 2016-11-20 20:20:14 +05:30
Kovid Goyal
1426f87c99 ... 2016-11-18 15:49:39 +05:30
Kovid Goyal
44e8a6c3c7 Start work on sprite map 2016-11-10 17:22:00 +05:30
Kovid Goyal
b12af6f21d Test for LineBuf.clear()
Also raise IndexError instead of ValueError for line and char access
2016-11-10 12:05:50 +05:30
Kovid Goyal
1884cc17c1 A ColorProfile to manage colors 2016-11-10 10:07:47 +05:30
Kovid Goyal
6334b39935 More tests for rewrap 2016-11-09 19:21:08 +05:30
Kovid Goyal
7108584e7a A more accurate, but slower rewrap algorithm 2016-11-09 17:47:03 +05:30