diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2023-06-08 01:12:38 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2023-06-08 01:12:38 -0700 |
commit | fdb2172843ae7bd3acfb8fcb0f02b3dede301857 (patch) | |
tree | b1a294cb0436738a0b78a09eb4c42d79524dec28 /edit.lua | |
parent | e8a5faaa4cbdb6a9f15ad4edf1ca4e86879edf19 (diff) | |
parent | 14c08f9bd9a45d2f05727ea47b128afdbdff1d24 (diff) | |
download | view.love-fdb2172843ae7bd3acfb8fcb0f02b3dede301857.tar.gz |
Merge lines.love
Diffstat (limited to 'edit.lua')
-rw-r--r-- | edit.lua | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/edit.lua b/edit.lua index 8b5cbf7..fd7448b 100644 --- a/edit.lua +++ b/edit.lua @@ -73,7 +73,7 @@ function edit.check_locs(State) -- if State is inconsistent (i.e. file changed by some other program), -- throw away all cursor state entirely if edit.invalid1(State, State.screen_top1) - or edit.invalid1(State, State.cursor1) + or edit.invalid_cursor1(State) or not Text.le1(State.screen_top1, State.cursor1) then State.screen_top1 = {line=1, pos=1} State.cursor1 = {line=1, pos=1} @@ -87,6 +87,16 @@ function edit.invalid1(State, loc1) return loc1.pos > #State.lines[loc1.line].data end +-- cursor loc in particular differs from other locs in one way: +-- pos might occur just after end of line +function edit.invalid_cursor1(State) + local cursor1 = State.cursor1 + if cursor1.line > #State.lines then return true end + local l = State.lines[cursor1.line] + if l.mode ~= 'text' then return false end -- pos is irrelevant to validity for a drawing line + return cursor1.pos > #State.lines[cursor1.line].data + 1 +end + -- return y drawn until function edit.draw(State) App.color(Text_color) |