bugfix: recompute screen lines in backspace/delete

Scenario: backspacing until a line takes up fewer screen lines, then
pressing `down`.

I've gone through and checked that fragments and screen_line_starting_pos
are now cleared together everywhere.
This commit is contained in:
Kartik K. Agaram 2022-06-23 11:03:46 -07:00
parent 515dad95f9
commit 5a06c1286d
1 changed files with 4 additions and 0 deletions

View File

@ -203,6 +203,7 @@ function Text.keychord_pressed(chord)
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_start-1)
end
Lines[Cursor1.line].fragments = nil
Lines[Cursor1.line].screen_line_starting_pos = nil
Cursor1.pos = Cursor1.pos-1
end
elseif Cursor1.line > 1 then
@ -214,6 +215,7 @@ function Text.keychord_pressed(chord)
Cursor1.pos = utf8.len(Lines[Cursor1.line-1].data)+1
Lines[Cursor1.line-1].data = Lines[Cursor1.line-1].data..Lines[Cursor1.line].data
Lines[Cursor1.line-1].fragments = nil
Lines[Cursor1.line-1].screen_line_starting_pos = nil
table.remove(Lines, Cursor1.line)
end
Cursor1.line = Cursor1.line-1
@ -249,6 +251,7 @@ function Text.keychord_pressed(chord)
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_start-1)
end
Lines[Cursor1.line].fragments = nil
Lines[Cursor1.line].screen_line_starting_pos = nil
-- no change to Cursor1.pos
end
elseif Cursor1.line < #Lines then
@ -258,6 +261,7 @@ function Text.keychord_pressed(chord)
-- join lines
Lines[Cursor1.line].data = Lines[Cursor1.line].data..Lines[Cursor1.line+1].data
Lines[Cursor1.line].fragments = nil
Lines[Cursor1.line].screen_line_starting_pos = nil
table.remove(Lines, Cursor1.line+1)
end
end