From 9b271802672ed547092a3ffb162144c2f33597b6 Mon Sep 17 00:00:00 2001 From: Francesco Abbate Date: Wed, 17 Feb 2021 20:10:39 +0100 Subject: [PATCH] Use doc on_save hooks to reload user module --- data/core/commands/doc.lua | 5 +---- data/core/init.lua | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/data/core/commands/doc.lua b/data/core/commands/doc.lua index 97e6dfe4..7ff8d529 100644 --- a/data/core/commands/doc.lua +++ b/data/core/commands/doc.lua @@ -67,10 +67,7 @@ end local function save(filename) doc():save(filename) - if doc().filename == common.normalize_path(USERDIR .. PATHSEP .. "init.lua") then - core.reload_module("core.style") - core.load_user_directory() - end + core.on_doc_save(filename) core.log("Saved \"%s\"", doc().filename) end diff --git a/data/core/init.lua b/data/core/init.lua index d5c57fb6..b8223472 100644 --- a/data/core/init.lua +++ b/data/core/init.lua @@ -457,6 +457,19 @@ do core.on_enter_project = do_nothing end + +core.doc_save_hooks = {} +function core.add_save_hook(fn) + core.doc_save_hooks[#core.doc_save_hooks + 1] = fn +end + + +function core.on_doc_save(filename) + for _, hook in ipairs(core.doc_save_hooks) do + hook(filename) + end +end + local function quit_with_function(quit_fn, force) if force then delete_temp_files() @@ -821,4 +834,13 @@ function core.on_error(err) end +core.add_save_hook(function(filename) + local doc = core.active_view.doc + if doc and doc:is(Doc) and doc.filename == common.normalize_path(USERDIR .. PATHSEP .. "init.lua") then + core.reload_module("core.style") + core.load_user_directory() + end +end) + + return core