From 28e72fb1ffeba7ab3bceab455fd1d59ecad59c8c Mon Sep 17 00:00:00 2001 From: Bryan Date: Thu, 7 Nov 2024 00:22:59 -0600 Subject: [PATCH] Remove delays around load and save, create pre/post callbacks instead --- lua/persisted/init.lua | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/lua/persisted/init.lua b/lua/persisted/init.lua index acceafe..3a990c2 100644 --- a/lua/persisted/init.lua +++ b/lua/persisted/init.lua @@ -67,13 +67,16 @@ function M.load(opts) if session and vim.fn.filereadable(session) ~= 0 then vim.g.persisting_session = not config.follow_cwd and session or nil vim.g.persisted_loaded_session = session + M.fire("LoadPre") - vim.defer_fn(function() - vim.cmd("silent! source " .. e(session)) - vim.defer_fn(function() - M.fire("LoadPost") - end, 15) - end, 15) + if config.load_pre and vim.is_callable(config.load_pre) then + config.load_pre() + end + vim.cmd("silent! source " .. e(session)) + if config.load_post and vim.is_callable(config.load_post) then + config.load_post() + end + M.fire("LoadPost") elseif opts.autoload and type(config.on_autoload_no_session) == "function" then config.on_autoload_no_session() end @@ -114,12 +117,14 @@ function M.save(opts) end M.fire("SavePre") - vim.defer_fn(function() - vim.cmd("mks! " .. e(opts.session or vim.g.persisting_session or M.current())) - vim.defer_fn(function() - M.fire("SavePost") - end, 15) - end, 15) + if config.save_pre and vim.is_callable(config.save_pre) then + config.save_pre() + end + vim.cmd("mks! " .. e(opts.session or vim.g.persisting_session or M.current())) + if config.save_post and vim.is_callable(config.save_post) then + config.save_post() + end + M.fire("SavePost") end ---Delete the current session