From 14e524cf217250388d374433cf6f3241f66e4e01 Mon Sep 17 00:00:00 2001 From: mitchell <70453897+orbitalquark@users.noreply.github.com> Date: Sat, 19 Sep 2020 14:53:20 -0400 Subject: Added `events.FILE_{BEFORE,AFTER}_RELOAD` and save/restore bookmarks. Also moved buffer state save/restore into ui module. --- core/ui.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'core/ui.lua') diff --git a/core/ui.lua b/core/ui.lua index 66828bc2..ef6e6ac9 100644 --- a/core/ui.lua +++ b/core/ui.lua @@ -347,7 +347,7 @@ events_connect(events.UPDATE_UI, function(updated) end) -- Save buffer properties. -events_connect(events.BUFFER_BEFORE_SWITCH, function() +local function save_buffer_state() -- Save view state. buffer._anchor, buffer._current_pos = buffer.anchor, buffer.current_pos local n = buffer.main_selection @@ -361,10 +361,12 @@ events_connect(events.BUFFER_BEFORE_SWITCH, function() folds[#folds + 1], i = i, view:contracted_fold_next(i + 1) end buffer._folds = folds -end) +end +events_connect(events.BUFFER_BEFORE_SWITCH, save_buffer_state) +events_connect(events.FILE_BEFORE_RELOAD, save_buffer_state) -- Restore buffer properties. -events_connect(events.BUFFER_AFTER_SWITCH, function() +local function restore_buffer_state() if not buffer._folds then return end -- Restore fold state. for i = 1, #buffer._folds do view:toggle_fold(buffer._folds[i]) end @@ -376,7 +378,9 @@ events_connect(events.BUFFER_AFTER_SWITCH, function() local _top_line, top_line = buffer._top_line, view.first_visible_line view:line_scroll(0, view:visible_from_doc_line(_top_line) - top_line) view.x_offset = buffer._x_offset or 0 -end) +end +events_connect(events.BUFFER_AFTER_SWITCH, restore_buffer_state) +events_connect(events.FILE_AFTER_RELOAD, restore_buffer_state) -- Updates titlebar and statusbar. local function update_bars() -- cgit v1.2.3