mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-08 14:18:26 +02:00
Implement cursor movement APIs
This commit is contained in:
@@ -64,7 +64,7 @@ class TestScreen(BaseTest):
|
||||
self.ae(str(s.linebuf[0]), 'ココx')
|
||||
self.ae(str(s.linebuf[1]), 'ニチ ')
|
||||
self.ae(str(s.linebuf[2]), 'ハ ')
|
||||
self.assertChanges(t, ignore='cursor', cells={0: ((5, 5),), 1: ((0, 3),), 2: ((0, 1),)})
|
||||
self.assertChanges(t, ignore='cursor', cells={1: ((0, 3),), 2: ((0, 1),)})
|
||||
self.ae(s.cursor.x, 2), self.ae(s.cursor.y, 2)
|
||||
s.draw('Ƶ̧\u0308'.encode('utf-8'))
|
||||
self.ae(str(s.linebuf[2]), 'ハƵ̧\u0308 ')
|
||||
@@ -192,3 +192,26 @@ class TestScreen(BaseTest):
|
||||
self.ae(s.display, (' ', ' ', ' ', ' ', ' '))
|
||||
self.assertChanges(t, lines=set(range(5)))
|
||||
self.assertFalse(s.linebuf[0].cursor_from(1).bold)
|
||||
|
||||
def test_cursor_movement(self):
|
||||
s, t = self.create_screen()
|
||||
s.draw(b'12345' * 5)
|
||||
t.reset()
|
||||
s.cursor_up(2)
|
||||
self.ae((s.cursor.x, s.cursor.y), (4, 2))
|
||||
self.assertChanges(t, ignore='cursor', cells={4: ((4, 4),)})
|
||||
s.cursor_up1()
|
||||
self.ae((s.cursor.x, s.cursor.y), (0, 1))
|
||||
self.assertChanges(t, ignore='cursor', cells={2: ((4, 4),)})
|
||||
s.cursor_forward(3)
|
||||
self.ae((s.cursor.x, s.cursor.y), (3, 1))
|
||||
self.assertChanges(t, ignore='cursor', cells={1: ((0, 0),)})
|
||||
s.cursor_back()
|
||||
self.ae((s.cursor.x, s.cursor.y), (2, 1))
|
||||
self.assertChanges(t, ignore='cursor', cells={1: ((3, 3),)})
|
||||
s.cursor_down()
|
||||
self.ae((s.cursor.x, s.cursor.y), (2, 2))
|
||||
self.assertChanges(t, ignore='cursor', cells={1: ((2, 2),)})
|
||||
s.cursor_down1(5)
|
||||
self.ae((s.cursor.x, s.cursor.y), (0, 4))
|
||||
self.assertChanges(t, ignore='cursor', cells={2: ((2, 2),)})
|
||||
|
||||
Reference in New Issue
Block a user