aboutsummaryrefslogtreecommitdiffhomepage
path: root/core/file_io.lua
diff options
context:
space:
mode:
authorGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2021-04-30 18:40:06 -0400
committerGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2021-04-30 18:40:06 -0400
commit715901363a02634f5336c0d3f18cbd9a9c080b4a (patch)
tree315146ace595595cefe4e6b4eae01c475a21a85b /core/file_io.lua
parenta775e9fb4188f2638111c15623ea9bd5c804b3e2 (diff)
Replaced `events.FILE_{BEFORE,AFTER}_RELOAD` with `events.BUFFER_{BEFORE,AFTER}_REPLACE_TEXT`.
This allows more features to save/restore state when buffer contents are replaced (e.g. file reload, filter through, etc.)
Diffstat (limited to 'core/file_io.lua')
-rw-r--r--core/file_io.lua13
1 files changed, 2 insertions, 11 deletions
diff --git a/core/file_io.lua b/core/file_io.lua
index 9dde8550..7f0c9999 100644
--- a/core/file_io.lua
+++ b/core/file_io.lua
@@ -9,12 +9,6 @@
-- 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()`]().
@@ -42,7 +36,7 @@ module('io')]]
-- Events.
-- LuaFormatter off
-local file_io_events = {'file_opened','file_before_reload','file_after_reload','file_before_save','file_after_save','file_changed'}
+local file_io_events = {'file_opened','file_before_save','file_after_save','file_changed'}
-- LuaFormatter on
for _, v in ipairs(file_io_events) do events[v:upper()] = v end
@@ -157,16 +151,13 @@ end
local function reload(buffer)
if not buffer then buffer = _G.buffer end
if not buffer.filename then return end
- 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()
if buffer.encoding then text = text:iconv('UTF-8', buffer.encoding) end
- buffer:clear_all()
- buffer:append_text(text)
+ buffer:set_text(text)
buffer:set_save_point()
buffer.mod_time = lfs.attributes(buffer.filename, 'modification')
- if buffer == _G.buffer then events.emit(events.FILE_AFTER_RELOAD) end
end
-- LuaDoc is in core/.buffer.luadoc.