Kovid Goyal
4a60413e0b
...
2020-12-03 21:38:42 +05:30
Kovid Goyal
245f5d60b5
Add a test for image put + delete + put
2020-12-03 21:37:32 +05:30
Kovid Goyal
23420adfa6
Graphics protocol: Allow suppressing responses from the terminal to graphics commands
2020-12-03 20:42:03 +05:30
Kovid Goyal
b5e704a934
Graphics protocol: Add support for giving individual image placements their
...
Fixes #3133
2020-12-02 05:25:19 +05:30
Kovid Goyal
05eb07caf5
Add to changelog for last merge
...
Also remove a spurious return that was disabling a test. Fixes #3113
2020-11-20 20:23:23 +05:30
Roman Perepelitsa
620eaf1ada
Change the flow of lines from the scroll region to the scrollback
...
There are two user-visible changes in here:
1. If a scroll region is set such that there is a bottom margin and no
top margin, scrolling the region forward used to discard the top
lines. Now those lines are appended to the scrollback.
```shell
# Assuming a terminal window with 24 lines.
printf '\033[H\033[J\033[3J\033[0;5r' && seq 100
```
This command used to result in an empty scrollback. Now it contains
the numbers 1-96.
2. If a scroll region is set such that there is a top margin and no bottom
margin, scrolling the region forward used to append the top lines to
the scrollback. Now these lines are discarded.
```shell
# Assuming a terminal window with 24 lines.
printf '\033[H\033[J\033[3J\033[2;24r' && seq 100
```
This command used to populate scrollback with the numbers 2-78. Now
the scrollback is empty. The numbers on the screen are the same as
before: 1 and 79-100.
Related issue: #3113 .
2020-11-20 15:41:57 +01:00
Kovid Goyal
9816979169
Don't restrict the DCH control code to only the current scroll region
...
Matches behavior of other terminal emulators. Fixes #3090
2020-11-12 11:44:09 +05:30
Kovid Goyal
6a755bda45
A new kitten to easily query kitty for config values
2020-10-07 13:35:16 +05:30
Sighery
10533c3eba
Hints kitten: validate IPs with ipaddress
...
On the initial commit of this feature, IPs were just matched with a
very simple regex that prioritised simplicity/readability over
accuracy.
This commit adds a postprocessor for ip matches that makes use of
Python's `ipaddress` in the standard library to validate all the IP
matches.
This way we don't need huge and complex regex patterns to match _and_
validate the IPs, and we can just use `ipaddress` to abstract us from
implementing all the validation logic into the regex pattern.
2020-10-05 20:11:25 +02:00
Sighery
b4415c90f9
Hints kitten: add support for IPs (v4 and v6)
...
It selects v4 and v6 IPs with a simple regex that doesn't actually
check for the validity of the IPs.
2020-10-05 20:11:22 +02:00
Kovid Goyal
fb72be41f4
Add a test for serializing id less hyperlinks
2020-09-22 17:52:40 +05:30
Kovid Goyal
9d4246a285
Output hyperlink markup when serializing as ANSI
2020-09-22 16:18:22 +05:30
Kovid Goyal
fdaf857885
Add more tests for pagerhist
2020-09-22 09:05:40 +05:30
Kovid Goyal
444080f320
Make wcswidth useable in a streaming fashion
2020-09-21 15:55:22 +05:30
Kovid Goyal
b5007ba276
Store pager history in UTF-8
...
Reduces storage requirement by a fator of 4 at the cost of some CPU
usage, to encode to UTF-8
2020-09-21 12:29:10 +05:30
Kovid Goyal
bf19d2b156
Add some tests for the pagerhist code
2020-09-21 09:08:46 +05:30
Kovid Goyal
a78515e5bf
Remove the max size limit for line_as_ansi
...
Needed for output of hyperlinks, also more efficient, since avoids
malloc per line. Also fix pagerhist not having SGR reset at the start of
every line.
2020-09-20 11:26:59 +05:30
Kovid Goyal
581126c748
More powerful match criteria for fragments
2020-09-19 07:31:17 +05:30
Kovid Goyal
0d6bca3e5d
Allow specifying rules to perform arbitrary actions in kitty when opening URLs
2020-09-18 15:01:25 +05:30
Kovid Goyal
6461dccbdc
Make wcswidth ignore more escape codes
...
Needed to ignore OSC 8 hyperlinks since we will
eventually have to send those with SGR formatting to the hints
kitten.
2020-09-17 20:16:17 +05:30
Kovid Goyal
399a1f8fee
Add an option to disable OSC 8
2020-09-10 10:47:28 +05:30
Kovid Goyal
9293d9b0ed
Add some tests for hyperlink marking
2020-09-10 10:47:28 +05:30
Kovid Goyal
c8e2061e2a
Move hyperlink to end of hash table when re-referenced
2020-09-10 10:47:27 +05:30
Kovid Goyal
78dc93721d
Add tests for hyperlink storage
2020-09-10 10:47:27 +05:30
Kovid Goyal
e99d93ca30
Implement parsing of OSC 8
...
Also start work on storing hyperlinks with cells
2020-09-10 10:47:24 +05:30
Kovid Goyal
eca53bfab0
Add a new escape code to allow terminal programs to trigger desktop notifications
...
Fixes #1474
2020-08-21 20:29:54 +05:30
Kovid Goyal
67f60847ee
Fix the spawn test in the bypy environment
...
Required the launcher to be built since the pre-built
one was being used. Fixes #2881
2020-07-29 15:11:35 +05:30
Kovid Goyal
81bda736d8
Skip multiprocessing spawn monkeypatch test on 32bit
2020-07-28 14:15:31 +05:30
Juho Peltonen
1decae2938
Change splits layout neighbors to only include real neighbors
2020-07-11 21:35:29 +03:00
Kovid Goyal
c9252e8639
When erasing in display upto cursor, the line containing the cursor should be marked as not continued.
...
Also add some tests for the action of ED on continued flags
2020-06-29 14:29:03 +05:30
Kovid Goyal
50414b333a
Re-enable the spawn tesRe-enable the spawn test
2020-06-23 20:43:40 +05:30
Kovid Goyal
36a20f7b00
Temporarily disable spawn test as it is failing in the Linux build container
...
Will investigate later
2020-06-23 17:37:04 +05:30
Kovid Goyal
2c6e5a6e73
Get multiprocessing working in kitty
...
Monkeypatch the stdlib multiprocessing module to
use kitty as its python interpreter for spawning worker
processes.
2020-06-21 14:47:24 +05:30
Kovid Goyal
9fa97e6187
Merge branch 'mouse-events' of https://github.com/trygveaa/kitty
2020-06-06 22:27:54 +05:30
Trygve Aaberge
8efe08c45b
Support more mouse buttons for terminal mouse events
...
Previously, the mouse back and forward buttons sent the same codes as
scroll up and down. Now they instead send the same codes as xterm. Mouse
button 10 (in X11 numbering) also now sends the same as xterm, instead
of not sending anything.
This also changes the `send_mouse_event` function which can be called
from kittens to use X11 numbering for mouse buttons instead of what it
previously used, which turns out to be a hybrid of X11 and GLFW. It was
documented to use GLFW numbering, but GLFW doesn't have numbers for
scroll events (that's separate events with x/y offsets) and 4 and 5 in
GLFW is actually back and forward, while `send_mouse_event` interpreted
it as scroll up and down.
That means that this is a breaking change for `send_mouse_event` because
it swaps the number for the middle and right button to be consistent
with X11. I did this because I think it's better to use one consistent
numbering scheme for the function, and because people probably know X11
numbering better than GLFW numbering and GLFW doesn't have numbers for
the scroll buttons.
2020-06-06 14:19:06 +02:00
Kovid Goyal
8b2fb105d0
Fix #2735
2020-06-05 19:24:40 +05:30
Kovid Goyal
9ba808ec3c
Merge branch 'ft/csi-code-rep' of https://github.com/keynslug/kitty
2020-06-01 14:31:34 +05:30
Andrew Mayorov
9fe631ee3f
Provide support for CSI REP control code
2020-05-29 01:05:49 +03:00
Luflosi
7931654a7c
Ensure valid UTF-8 when cutting string
2020-05-23 13:59:23 +02:00
Kovid Goyal
e97454c4a5
And ever more coalesce tests
2020-05-17 23:20:26 +05:30
Kovid Goyal
936dc74a27
Some more coalesce tests
2020-05-17 23:08:27 +05:30
Kovid Goyal
362e4266bb
Better coalescing of multiple symbol_maps
...
When specifying multiple symbol_map values in kitty.conf later ones
should override conflicting previous ones. Fixes #2662
2020-05-17 23:03:28 +05:30
Kovid Goyal
5e48ae8bac
pep8
2020-05-12 22:54:08 +05:30
Kovid Goyal
cdd943ded4
Port layout tests to new API
2020-05-12 22:43:55 +05:30
Kovid Goyal
c69b8870d2
Allow individually setting margins and padding for each edge (left, right, top, bottom)
2020-04-19 09:36:26 +05:30
Kovid Goyal
a08efa1fc5
Fix failing test
2020-04-17 19:57:37 +05:30
Trygve Aaberge
43af6e3b8a
Add support for sending mouse events from a kitten
...
This allows you to a control a program running in kitty from a kitten
using mouse events. If the program is not receiving mouse events of that
type, it is not sent.
2020-04-12 16:19:50 +02:00
Kovid Goyal
b4d08044a0
...
2020-04-12 17:01:39 +05:30
Kovid Goyal
d1a5d30233
Add another test for marking
2020-04-12 16:54:38 +05:30
Kovid Goyal
082546a1e7
Marks: Fix marks not handling wide characters and tab characters correctly
...
Fixes #2534
2020-04-12 13:28:21 +05:30
Kovid Goyal
0862e85577
Rewrite wcswidth as a state machine
2020-04-07 10:10:30 +05:30
Kovid Goyal
6357f7b811
Update wcswidth() to match new country flag rendering
2020-04-06 22:56:34 +05:30
Kovid Goyal
342f0981d8
Add tests for selection extension by right click
2020-03-18 20:57:19 +05:30
Kovid Goyal
12f37bcfad
Dont strip trailing punctuation from end of URL if next line startswith url characters
2020-03-15 08:47:52 +05:30
Kovid Goyal
e86c712424
Dont strip :code:& and :code:- from the end of URLs
...
Fixes #2436
2020-03-15 08:29:56 +05:30
Kovid Goyal
917559f883
more typing work
2020-03-13 16:13:26 +05:30
Kovid Goyal
353db678a2
Add typing to box_drawing
2020-03-08 21:30:50 +05:30
Kovid Goyal
645890ccc8
Make the set of URL prefixes that are recognized while hovering with the mouse configurable
...
Fixes #2416
2020-03-08 13:16:34 +05:30
Kovid Goyal
c763db94ce
Fix #2401
2020-02-28 10:28:01 +05:30
Kovid Goyal
2f8002c567
Add a test for #1616
2020-02-26 09:20:08 +05:30
Kovid Goyal
294d01def6
Clear the click queue before a multi-click
2020-02-25 21:20:41 +05:30
Kovid Goyal
9a67176719
Fix scrolling selection tests
2020-02-25 20:17:49 +05:30
Kovid Goyal
42d1a4755a
Add tests for multiline movement
2020-02-25 20:03:14 +05:30
Kovid Goyal
5bbc15583e
Non-scrolling based selection tests all pass
2020-02-25 20:03:14 +05:30
Kovid Goyal
9c486f6e69
Track left to right for selections based on actual mouse positions
...
Cant use the selection boundaries as these can be programmatically
altered when extending selection by word or line.
2020-02-25 20:03:14 +05:30
Kovid Goyal
2f24588c66
Fix cell select mode tests
2020-02-25 20:03:14 +05:30
Kovid Goyal
6b1ea326a0
Initial implementation of half cell based selection
2020-02-25 20:03:14 +05:30
Kovid Goyal
4512d0dbac
Update test for changes to ANSI serialization
2020-02-25 19:23:05 +05:30
Kovid Goyal
6f1fda0a48
Store cell half information in selection objects
2020-02-18 17:45:07 +05:30
Kovid Goyal
84453bf15c
Add a test for #2284
2020-02-16 21:14:08 +05:30
Kovid Goyal
fdf055312c
DRYer
2020-02-13 10:07:55 +05:30
Kovid Goyal
b0b8b06b56
Scrolling test
2020-02-13 10:02:44 +05:30
Kovid Goyal
9c1ffb1adf
Test for rectangle select
2020-02-13 08:52:33 +05:30
Kovid Goyal
563bafea08
Merge options when testing
2020-02-13 08:33:57 +05:30
Kovid Goyal
3eff929652
More mouse interaction tests
2020-02-12 21:19:25 +05:30
Kovid Goyal
3010ebfef5
More mouse interaction tests
2020-02-12 19:02:38 +05:30
Kovid Goyal
ff14f47781
First mouse interaction test
2020-02-12 15:21:59 +05:30
Kovid Goyal
86174c81c8
Some tests for splits layout
2020-01-30 20:30:52 +05:30
Kovid Goyal
43326c9bd0
Fix URL detection not working for urls of the form scheme:///url
...
Fixes #2292
2020-01-17 07:49:01 +05:30
Kovid Goyal
2f7bdc274d
Fix failing test
2020-01-15 11:48:13 +05:30
Kovid Goyal
e8121b39ec
Add newer layout classes to tests
2020-01-15 08:14:45 +05:30
Kovid Goyal
936f2186cc
Allow scrolling to marks
2020-01-15 07:11:34 +05:30
Kovid Goyal
35fb702833
Use only a single marker function
...
Multipe colors/expressions can instead be combined at definition time
2020-01-13 11:57:19 +05:30
Kovid Goyal
51c4737a29
Test function marking
2020-01-13 06:50:37 +05:30
Kovid Goyal
d63ea11cac
Marking now works
2020-01-13 06:50:37 +05:30
Kovid Goyal
a649eb2a48
Coalesce neighboring symbol maps for better lookup performance
2019-11-12 20:05:48 +05:30
Kovid Goyal
32dfc94909
Implement a hack to (mostly) preserve tabs when cat a file with them and then copying the text or passing screen contents to another program
...
It's a simple enough hack that it seems worth doing. If it causes any
issues, can always be reverted.
Fixes #1829
2019-08-31 12:37:05 +05:30
Luflosi
5f855ce547
Use context managers to open files
...
Inspired by d50a6ddc1b .
2019-08-01 13:21:26 -05:00
Luflosi
2751dbdb94
Fix test_url_at
...
`lspace_test()` has a parameter called scheme with the default value `http`. It
is called in a nested for loop, but the scheme from the inner for loop is
just ignored.
2019-06-05 18:32:23 +02:00
Luflosi
2b095f720e
Use "with suppress()" to suppress python exceptions
...
Using
```Python
with suppress(OSError):
os.remove('somefile.tmp')
```
instead of
```Python
try:
os.remove('somefile.tmp')
except OSError:
pass
```
makes the code more compact and more readable IMO.
This pattern was recommended by Raymond Hettinger, a Python Core
Developer in his talk "Transforming Code into Beautiful, Idiomatic Python" at https://www.youtube.com/watch?v=OSGv2VnC0go . The transcript is available at https://github.com/JeffPaine/beautiful_idiomatic_python
2019-06-03 12:27:43 +02:00
Luflosi
a792c94ccf
Use python3 shebang for all python scripts
...
Fixes #1624 .
Use python3 shebang for all python scripts as python still defaults to python2 on many systems.
2019-05-20 14:44:24 +02:00
Kovid Goyal
529337e00a
Ensure cursor is correctly positioned after emoji presentation char + VS15
...
cursor should be on the cell immediately after the the char since the
variation selector makes the char one cell wide.
2019-05-13 20:18:41 +05:30
Kovid Goyal
fe882dad15
Add support for Vs-15 to wcswidth
2019-05-13 19:50:49 +05:30
Kovid Goyal
e33af8b2f8
Fix #1423
2019-02-26 06:56:25 +05:30
Kovid Goyal
60b64dadfe
Add tests for the subseq matcher
2019-01-24 20:52:18 +05:30
Kovid Goyal
d20c65ef80
Graphics protocol: Only delete temporary image-data files if they are in a known temporary file location
2018-12-11 10:00:43 +05:30
Kovid Goyal
47ec372c30
Fix hover detection of URLs not working when hovering over the first colon and slash characters in short URLs
...
Fixes #1201
2018-12-04 06:52:26 +05:30
Kovid Goyal
33b62dcabc
Turn on the scrollback pager for all tests
2018-11-20 10:42:17 +05:30
Kovid Goyal
db1e48848d
More robust no modifier check for CSI parsing
2018-11-19 09:53:01 +05:30
Kovid Goyal
c02fa79591
Fix #1153
2018-11-19 09:35:46 +05:30
Kovid Goyal
3e26f96744
Add some common synonyms for unicode word searching
...
Fixes #1133
2018-11-13 15:46:33 +05:30
Dominique Martinet
1986403e42
Add scrollback benchmark
2018-09-22 19:10:37 +09:00
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
Dominique Martinet
10b15caad9
tests: add options param to create_screen()
...
Always apply defaults when creating a screen (the C-side global state
default will not have the intended values without this), and provide a
way to override default values with a new optional parameter
2018-09-22 18:05:13 +09:00
Kovid Goyal
a08b945124
Forgot to revert test
2018-09-09 14:02:46 +05:30
Kovid Goyal
7f0674ac27
Fix backspacing of wide characters in wide-character unaware programs not working
...
Fixes #875
2018-09-07 10:08:25 +05:30
Kovid Goyal
55f457caf4
macOS: Fix a character that cannot be rendered in any font causing font fallback for all subsequent characters that cannot be rendered in the main font to fail
...
Fixes #799
2018-09-04 14:21:36 +05:30
Kovid Goyal
094ddd9333
Round-trip the zwj unicode character
...
Rendering of sequences containing zwj is still not implemented, since it
can cause the collapse of an unbounded number of characters into a
single cell. However, kitty at least preserves the zwj by storing it as
a combining character.
2018-08-04 18:29:45 +05:30
Kovid Goyal
5fa5bf8142
Add a test for unicode regional indicator widths
2018-08-04 10:56:35 +05:30
Kovid Goyal
000c1cf306
Implement support for emoji skin tone modifiers
...
Fixes #787
2018-08-04 10:06:25 +05:30
Kovid Goyal
e5a720c6fa
Fix detection of URLs in HTML source code (URLs inside quotes)
...
Fixes #785
2018-08-03 12:28:23 +05:30
Kovid Goyal
3df78de3f8
Update pending mode escape code parsing to match latest shed color
2018-07-28 10:56:34 +05:30
Kovid Goyal
e0ff6bcc5d
Implement protocol for atomic screen updates
...
See https://gitlab.com/gnachman/iterm2/wikis/synchronized-updates-spec
2018-07-23 13:24:49 +05:30
Kovid Goyal
af9f7bb0d2
Generate the code to parse APC escape codes
...
Allows it to be re-used for other APC codes
if needed.
2018-07-19 18:43:26 +05:30
Kovid Goyal
0b7abf5690
Fix test that needed to be changed for new prerendered sprites
2018-07-19 14:21:09 +05:30
Kovid Goyal
1faddeb402
Also return image dimensions when loading PNG
2018-07-07 08:04:11 +05:30
Kovid Goyal
2b035739f8
Make the PNG reader code re-useable
2018-07-07 07:46:15 +05:30
Kovid Goyal
e35c3cc913
Add an option single_window_margin_width to allow different margins when only a single window is visible in the layout
...
Fixes #688
2018-06-29 09:56:05 +05:30
Kovid Goyal
815dd99f7c
Keep the Debian PC police happy
...
Fixes #661
2018-06-21 13:12:45 +05:30
Kovid Goyal
7214b66aa5
A new tui API for simple line editing
...
Handles basic line-editing with the extended keyboard protocol and
support for wide chars.
Currently used by the unicode input kitten.
2018-06-14 13:11:48 +05:30
Kovid Goyal
7a7262923b
Fix a regression in 0.10 that caused incorrect rendering of the status bar in irssi when used inside screen.
...
Fixes #621 . The cursor in margin check was incorrect causing upwards
movement of the cursor when below the bottom margin to be incorrect.
2018-06-11 10:13:21 +05:30
Kovid Goyal
0354e5b669
Add a PNG load test that does not depend on PIL
2018-05-31 20:15:23 +05:30
Kovid Goyal
dd20789249
Add support for the CSI t escape code to query window and cell sizes
2018-05-28 13:47:42 +05:30
Kovid Goyal
ed44515318
All tests pass
2018-05-27 12:37:05 +05:30
Kovid Goyal
523aadaa3b
Refactor font group handling
...
Allow kitty to manage multiple groups of fonts with different cell
sizes. Will eventually allow kitty to have different font sizes/dpi per
OSWindow
2018-05-27 12:37:05 +05:30
Kovid Goyal
48847cdaf8
hints kitten: Fix detection of URLs in ReStructuredText
2018-05-21 16:14:49 +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
ad1109b6fe
Hints kitten: Overhaul making it more intelligent
...
It now uses information about the geometry of the screen.
So URLs that stretch over multiple lines are detected even if there is a
hard line break in between (some programs like mutt generate these).
2018-05-19 14:31:00 +05:30
Kovid Goyal
ba9af3df8c
Fix moving cursor outside a defined page area incorrectly causing the cursor to be placed inside the page area. Caused incorrect rendering in neovim, which relies on this behavior.
...
Fixes #542
2018-05-19 08:04:37 +05:30
Kovid Goyal
22159c5eb4
Fix mockup for testing
2018-05-16 16:43:39 +05:30
Kovid Goyal
96793a296c
diff kitten has working syntax highlighting
2018-05-08 14:48:01 +05:30
Kovid Goyal
51d2c01bc1
Highlight changed in individual lines in chunks that have the same number of adds/removes
2018-05-04 15:35:11 +05:30
Kovid Goyal
be9d876997
find common prefix and suffix of two strings
2018-05-03 20:15:28 +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
0b99bb534f
Unicode input: When searching by name search for prefix matches as well as whole word matches
...
So now hori matches both "hori" and "horizontal". Switched to a
prefix-trie internally.
2018-04-24 07:45:20 +05:30
James McCoy
a467e79144
Stop setting title to ";" when 0-length OSC 2 is received
...
Various programs send a 0-length title if no title is configured (e.g.,
(n)vim with 'title' unset, or mutt without ts_enabled). When this
happens, kitty is mis-parsing the data and setting the title to ";".
2018-03-26 21:30:45 -04:00
Kovid Goyal
1fe936dbbc
Fix off by one when restoring cursor position after resize. Fixes #344
2018-02-25 09:15:48 +05:30
Kovid Goyal
0bda7b3679
When running kittens respect current screen scroll
2018-02-14 18:35:32 +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
9c874f6685
Add support for the unicode emoji presentation variation selector
2018-02-06 09:52:55 +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
240b1475c7
Fix regression that caused a few ligatures to not render correctly in rare circumstances
...
This was caused by cache corruption. is_special_glyph() and
is_empty_glyph() were treading over each other if called in
the right sequence. Fixes #303
2018-02-05 00:04:05 +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
6736fd3835
Get rid of the query escape code for styled underlines
2018-02-04 16:40:48 +05:30
Kovid Goyal
647b95631f
Add tests for layout operations with an overlay window
2018-02-04 11:28:13 +05:30
Kovid Goyal
aa518b2520
Add tests for basic layout operations
2018-02-04 11:28:13 +05:30
Kovid Goyal
2ee9844c2b
Track cursor position explicitly during rewrap
...
Instead of using heuristics to position the cursor after a resize, track
the position during re-wrapping and place the cursor at the re-wrapped
position. Fixes #242 (I hope)
2018-02-02 13:06:18 +05:30
Kovid Goyal
9b0ffdbf5a
A spot of refactoring
2018-02-02 11:19:42 +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
73fe3293be
Fix copying from selection being restricted to only the visible part of the selection. Fixes #287
2018-01-17 21:39:24 +05:30
Kovid Goyal
1ae7ae4a1d
Fix consecutive separate ligatures being rendered in the same group
...
Rendering multiple ligatures in the smae group is bad for performance
and also causes incorrect rendering if the last ligature in the group
does not fit into the number of cells in the group.
2018-01-14 11:18:44 +05:30
Kovid Goyal
ce230b071b
Add tests for SGR protocol encoding
2018-01-07 23:48:16 +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
d48b76508b
Implement DECCARA
...
Ability to set text attributes/colors in arbitrary screen regions,
instead of working via the cursor. Note that kitty extends the original
DECCARA spec from the VT-510 to allow setting all supported SGR
attributes.
2017-12-17 18:03:39 +05:30
Kovid Goyal
684a2e05f4
Move logical DPI calculation into glfw module
...
Now DPI state is maintained in only one central place.
2017-12-14 18:30:53 +05:30
Kovid Goyal
898395253b
Add test for ignored color id in SGR colon based color sequence
2017-12-12 18:50:37 +05:30
Kovid Goyal
c95418a947
Remove unused code
2017-12-05 20:21:13 +05:30
Kovid Goyal
b191727567
Some simple tests for sc81t
2017-12-05 20:21:12 +05:30
Kovid Goyal
c17c6cae4c
Support S8C1T mode
...
That is, eight bit control codes. When in S8C1T mode, kitty will send
only eight bit control codes to the client.
2017-12-05 20:21:12 +05:30
Kovid Goyal
f2d00589d8
Update test to match new set of pre-rendered sprites
2017-12-04 12:41:50 +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
52ecdfe3a9
Fix incorrect termcap query responses
...
Did not realize that the responses had to be processed via tparm() i.e.
they should be the actual bytes not the textual representation of them.
This broke the backspace key in vim.
2017-12-03 21:34:55 +05:30
Kovid Goyal
b9798c74d4
Support for DCS status and capabilities reporting codes
2017-12-02 14:35: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
eb8f4e0b3c
isosx -> is_macos
2017-12-01 12:16:13 +05:30
Kovid Goyal
2b87e1f601
Fix #170
2017-11-13 19:47:54 +05:30
Kovid Goyal
26e6716f67
A test that reliably triggers the current failure
2017-11-13 15:30:30 +05:30
Kovid Goyal
9fccc38382
Better fix for not using the unsafe to break flag
...
Recognize special glyphs by comparing the index to the glyph for the
codepoint in the font. Cannot rely on glyph width as many glyphs have
zero width. For example the glyph for space characters.
2017-11-13 07:03:58 +05:30
Kovid Goyal
5c6be7f637
Insulate emoji test from system wcwidth
2017-11-12 23:43:21 +05:30
Kovid Goyal
088087df73
Use only cluster numbers and glyph sizes for grouping glyphs into cells
...
See https://github.com/behdad/harfbuzz/issues/615 for discussion
2017-11-12 23:43:21 +05:30
Kovid Goyal
5f4e003bed
Add a ligature shaping test
2017-11-11 20:55:53 +05:30
Kovid Goyal
53e9f35c1f
Add test for harfbuzz shaping
2017-11-11 18:47:34 +05:30
Kovid Goyal
e5d411b80d
Refactor font code
...
DRYer with global state stored in fewer places. And only round-tripping
through python for font selection, not face creation.
2017-11-11 18:14:22 +05:30
Kovid Goyal
b58e900806
Call prerender() in rendering tests setup
2017-11-10 08:30:35 +05:30
Kovid Goyal
6c838bbc28
Implement dirty line tracking
2017-11-09 16:55:45 +05:30
Kovid Goyal
758d315b8e
Better fix for test
2017-11-09 16:55:45 +05:30
Kovid Goyal
dc7d705c87
Runa simplified version of the font rendering test on macOS
2017-11-09 16:55:45 +05:30
Kovid Goyal
a8bca1c119
Skip the rendering test on macOS
...
macOS is underpowered junk.
2017-11-09 16:55:44 +05:30
Kovid Goyal
da8bf5adc7
Add rendering tests
2017-11-09 16:55:44 +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
d153794c05
...
2017-11-09 16:55:42 +05:30
Kovid Goyal
81143e0c7e
Test to render all box drawing characters under the sanitizers
2017-11-09 16:55:42 +05:30
Kovid Goyal
5a044c0320
...
2017-11-09 16:55:41 +05:30
Kovid Goyal
0518cabef6
Infrastructure for rendering cells in the test suite
2017-11-09 16:55:41 +05:30
Kovid Goyal
f25d2ea540
Rip out the old sprite update code
2017-11-09 16:45:45 +05:30
Kovid Goyal
a614fe615f
Improve error reporting of incomplete SGR codes
2017-11-05 10:17:40 +05:30
Kovid Goyal
3cb74a25ba
Fix handling of empty SGR code
...
Was broken by refactoring to support colons in SGR codes
2017-11-05 10:06:33 +05:30
Kovid Goyal
e90aaa8470
Add support for colons in SGR codes
2017-11-05 08:47:21 +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
40722f42d3
...
2017-10-17 10:18:03 +05:30
Kovid Goyal
192b16e9ff
Add Lenna to the test dir so the gr.py script becomes self-sufficient
2017-10-17 10:15:38 +05:30
Kovid Goyal
55db07c79f
Only display Lenna if she exists in the gr script
2017-10-16 18:52:17 +05:30
Kovid Goyal
75e84a4519
Let the gr.pt script run with python2 as well
2017-10-16 18:50:57 +05:30