diff options
author | mitchell <70453897+orbitalquark@users.noreply.github.com> | 2020-09-19 14:53:20 -0400 |
---|---|---|
committer | mitchell <70453897+orbitalquark@users.noreply.github.com> | 2020-09-19 14:53:20 -0400 |
commit | 14e524cf217250388d374433cf6f3241f66e4e01 (patch) | |
tree | baa0c6f3c45cbd1946403a9762cadcffdb530ef7 /core/file_io.lua | |
parent | 28a73bcf0fe6fa9cd97e50734fb243c625284a89 (diff) |
Added `events.FILE_{BEFORE,AFTER}_RELOAD` and save/restore bookmarks.
Also moved buffer state save/restore into ui module.
Diffstat (limited to 'core/file_io.lua')
-rw-r--r-- | core/file_io.lua | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/core/file_io.lua b/core/file_io.lua index d45372ec..71dd5af3 100644 --- a/core/file_io.lua +++ b/core/file_io.lua @@ -9,6 +9,12 @@ -- Arguments: -- -- * _`filename`_: The opened file's filename. +-- @field _G.events.FILE_BEFORE_RELOAD (string) +-- Emitted before reloading the current file. +-- Emitted by [`buffer:reload()`](). +-- @field _G.events.FILE_AFTER_RELOAD (string) +-- Emitted after reloading the current file. +-- Emitted by [`buffer:reload()`](). -- @field _G.events.FILE_BEFORE_SAVE (string) -- Emitted right before saving a file to disk. -- Emitted by [`buffer:save()`](). @@ -38,6 +44,8 @@ module('io')]] -- Events. local events, events_connect = events, events.connect events.FILE_OPENED = 'file_opened' +events.FILE_BEFORE_RELOAD = 'file_before_reload' +events.FILE_AFTER_RELOAD = 'file_after_reload' events.FILE_BEFORE_SAVE = 'file_before_save' events.FILE_AFTER_SAVE = 'file_after_save' events.FILE_CHANGED = 'file_changed' @@ -153,7 +161,7 @@ end local function reload(buffer) if not buffer then buffer = _G.buffer end if not buffer.filename then return end - local pos, first_visible_line = buffer.current_pos, view.first_visible_line + if buffer == _G.buffer then events.emit(events.FILE_BEFORE_RELOAD) end local f = assert(io.open(buffer.filename, 'rb')) local text = f:read('a') f:close() @@ -161,10 +169,7 @@ local function reload(buffer) buffer:set_text(text) buffer:set_save_point() buffer.mod_time = lfs.attributes(buffer.filename, 'modification') - if buffer == _G.buffer then - buffer:goto_pos(pos) - view.first_visible_line = first_visible_line - end + if buffer == _G.buffer then events.emit(events.FILE_AFTER_RELOAD) end end -- LuaDoc is in core/.buffer.luadoc. |