add state arg to schedule_save

This commit is contained in:
Kartik K. Agaram 2022-07-12 16:30:41 -07:00
parent e990b1be92
commit b7000215d8
3 changed files with 19 additions and 19 deletions

View File

@ -138,7 +138,7 @@ function edit.draw(State)
if State.cursor1.line >= line_index then
State.cursor1.line = State.cursor1.line+1
end
schedule_save()
schedule_save(State)
record_undo_event({before=Drawing.before, after=snapshot(line_index-1, line_index+1)})
end
})
@ -183,9 +183,9 @@ function edit.update(State, dt)
end
end
function schedule_save()
if Editor_state.next_save == nil then
Editor_state.next_save = App.getTime() + 3 -- short enough that you're likely to still remember what you did
function schedule_save(State)
if State.next_save == nil then
State.next_save = App.getTime() + 3 -- short enough that you're likely to still remember what you did
end
end
@ -240,7 +240,7 @@ function edit.mouse_released(State, x,y, mouse_button)
--? print('release')
if State.lines.current_drawing then
Drawing.mouse_released(State, x,y, mouse_button)
schedule_save()
schedule_save(State)
if Drawing.before then
record_undo_event({before=Drawing.before, after=snapshot(State.lines.current_drawing_index)})
Drawing.before = nil
@ -289,7 +289,7 @@ function edit.textinput(State, t)
else
Text.textinput(t)
end
schedule_save()
schedule_save(State)
end
function edit.keychord_pressed(State, chord, key)
@ -348,7 +348,7 @@ function edit.keychord_pressed(State, chord, key)
State.selection1 = deepcopy(src.selection)
patch(State.lines, event.after, event.before)
Text.redraw_all() -- if we're scrolling, reclaim all fragments to avoid memory leaks
schedule_save()
schedule_save(State)
end
elseif chord == 'C-y' then
for _,line in ipairs(State.lines) do line.y = nil end -- just in case we scroll
@ -360,7 +360,7 @@ function edit.keychord_pressed(State, chord, key)
State.selection1 = deepcopy(src.selection)
patch(State.lines, event.before, event.after)
Text.redraw_all() -- if we're scrolling, reclaim all fragments to avoid memory leaks
schedule_save()
schedule_save(State)
end
-- clipboard
elseif chord == 'C-c' then
@ -375,7 +375,7 @@ function edit.keychord_pressed(State, chord, key)
if s then
App.setClipboardText(s)
end
schedule_save()
schedule_save(State)
elseif chord == 'C-v' then
for _,line in ipairs(State.lines) do line.y = nil end -- just in case we scroll
-- We don't have a good sense of when to scroll, so we'll be conservative
@ -394,7 +394,7 @@ function edit.keychord_pressed(State, chord, key)
if Text.cursor_past_screen_bottom() then
Text.snap_cursor_to_bottom_of_screen(State.margin_left, App.screen.height-State.margin_right)
end
schedule_save()
schedule_save(State)
record_undo_event({before=before, after=snapshot(before_line, State.cursor1.line)})
-- dispatch to drawing or text
elseif App.mouse_down(1) or chord:sub(1,2) == 'C-' then
@ -404,7 +404,7 @@ function edit.keychord_pressed(State, chord, key)
local before = snapshot(drawing_index)
Drawing.keychord_pressed(State, chord)
record_undo_event({before=before, after=snapshot(drawing_index)})
schedule_save()
schedule_save(State)
end
elseif chord == 'escape' and not App.mouse_down(1) then
for _,line in ipairs(State.lines) do
@ -431,7 +431,7 @@ function edit.keychord_pressed(State, chord, key)
record_undo_event({before=before, after=snapshot(State.lines.current_drawing_index)})
end
end
schedule_save()
schedule_save(State)
else
for _,line in ipairs(State.lines) do line.y = nil end -- just in case we scroll
Text.keychord_pressed(State, chord)

View File

@ -43,7 +43,7 @@ function test_drop_file_saves_previous()
-- initially editing a file called foo that hasn't been saved to filesystem yet
Editor_state.lines = load_array{'abc', 'def'}
Editor_state.filename = 'foo'
schedule_save()
schedule_save(Editor_state)
-- now drag a new file bar from the filesystem
App.filesystem['bar'] = 'abc\ndef\nghi\n'
local fake_dropped_file = {

View File

@ -167,7 +167,7 @@ function Text.keychord_pressed(State, chord)
if (State.cursor_y + State.line_height) > App.screen.height then
Text.snap_cursor_to_bottom_of_screen(State.margin_left, App.screen.width-State.margin_right)
end
schedule_save()
schedule_save(State)
record_undo_event({before=before, after=snapshot(before_line, State.cursor1.line)})
elseif chord == 'tab' then
local before = snapshot(State.cursor1.line)
@ -178,12 +178,12 @@ function Text.keychord_pressed(State, chord)
Text.snap_cursor_to_bottom_of_screen(State.margin_left, App.screen.width-State.margin_right)
--? print('=>', State.screen_top1.line, State.screen_top1.pos, State.cursor1.line, State.cursor1.pos, State.screen_bottom1.line, State.screen_bottom1.pos)
end
schedule_save()
schedule_save(State)
record_undo_event({before=before, after=snapshot(State.cursor1.line)})
elseif chord == 'backspace' then
if State.selection1.line then
Text.delete_selection(State.margin_left, App.screen.width-State.margin_right)
schedule_save()
schedule_save(State)
return
end
local before
@ -219,12 +219,12 @@ function Text.keychord_pressed(State, chord)
end
Text.clear_cache(State.lines[State.cursor1.line])
assert(Text.le1(State.screen_top1, State.cursor1))
schedule_save()
schedule_save(State)
record_undo_event({before=before, after=snapshot(State.cursor1.line)})
elseif chord == 'delete' then
if State.selection1.line then
Text.delete_selection(State.margin_left, App.screen.width-State.margin_right)
schedule_save()
schedule_save(State)
return
end
local before
@ -254,7 +254,7 @@ function Text.keychord_pressed(State, chord)
end
end
Text.clear_cache(State.lines[State.cursor1.line])
schedule_save()
schedule_save(State)
record_undo_event({before=before, after=snapshot(State.cursor1.line)})
--== shortcuts that move the cursor
elseif chord == 'left' then