Add roundtrip and cursor positioning tests for all three zero width chars

This commit is contained in:
Kovid Goyal 2022-01-05 08:57:14 +05:30
parent d875615c03
commit 384b2f8462
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 10 additions and 0 deletions

View File

@ -112,6 +112,10 @@ def parse_ucd() -> None:
elif category.startswith('S'):
all_symbols.add(codepoint)
elif category == 'Cf':
# we add Cf to marks as it contains things like tags and zero
# width chars. Not sure if *all* of Cf should be treated as
# combining chars, might need to add individual exceptions in
# the future.
marks.add(codepoint)
with open('nerd-fonts-glyphs.txt') as f:

View File

@ -127,6 +127,12 @@ class TestScreen(BaseTest):
s.draw(q)
self.ae(q, str(s.line(0)))
self.ae(s.cursor.x, 8)
for x in '\u200b\u200c\u200d':
s = self.create_screen()
q = f'X{x}Y'
s.draw(q)
self.ae(q, str(s.line(0)))
self.ae(s.cursor.x, 2)
def test_char_manipulation(self):
s = self.create_screen()