diff options
author | 2020-09-19 14:53:20 -0400 | |
---|---|---|
committer | 2020-09-19 14:53:20 -0400 | |
commit | 14e524cf217250388d374433cf6f3241f66e4e01 (patch) | |
tree | baa0c6f3c45cbd1946403a9762cadcffdb530ef7 /core/ui.lua | |
parent | 28a73bcf0fe6fa9cd97e50734fb243c625284a89 (diff) | |
download | textadept-14e524cf217250388d374433cf6f3241f66e4e01.tar.gz textadept-14e524cf217250388d374433cf6f3241f66e4e01.zip |
Added `events.FILE_{BEFORE,AFTER}_RELOAD` and save/restore bookmarks.
Also moved buffer state save/restore into ui module.
Diffstat (limited to 'core/ui.lua')
-rw-r--r-- | core/ui.lua | 12 |
1 files changed, 8 insertions, 4 deletions
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() |