diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2023-03-17 11:02:10 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2023-03-17 11:02:10 -0700 |
commit | 4dbc097f835218bc44dd1d96134294a0bc5ce725 (patch) | |
tree | a87f0de56d342b79c371aea3cb2d6f51a0e37d60 /edit.lua | |
parent | 67334814a331d41c43c186adf12ee86717918fd6 (diff) | |
parent | d65b7950a152cf2ffe3149707f5e2040b305d8bd (diff) | |
download | view.love-4dbc097f835218bc44dd1d96134294a0bc5ce725.tar.gz |
Merge lines.love
Diffstat (limited to 'edit.lua')
-rw-r--r-- | edit.lua | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/edit.lua b/edit.lua index 7754493..865682d 100644 --- a/edit.lua +++ b/edit.lua @@ -74,6 +74,22 @@ function edit.initialize_state(top, left, right, font_height, line_height) -- c return result end -- App.initialize_state +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 not Text.le1(State.screen_top1, State.cursor1) then + State.screen_top1 = {line=1, pos=1} + State.cursor1 = {line=1, pos=1} + end +end + +function edit.invalid1(State, loc1) + return loc1.line > #State.lines + or loc1.pos > #State.lines[loc1.line].data +end + function edit.draw(State) App.color(Text_color) assert(#State.lines == #State.line_cache) |