diff --git a/lua/persisted/init.lua b/lua/persisted/init.lua index 50da889..8ff9279 100644 --- a/lua/persisted/init.lua +++ b/lua/persisted/init.lua @@ -58,7 +58,6 @@ function M.load(opts) config.load_post() end M.fire("LoadPost") - vim.api.nvim_notify("Session Loaded\n" .. session, vim.log.levels.OFF, {}) return true -- returning deletes autocmd after fired end, }) @@ -127,7 +126,6 @@ function M.save(opts) if type(config.save_post) == "function" then config.save_post() end - vim.api.nvim_notify("Session Saved", vim.log.levels.OFF, {}) M.fire("SavePost") return true -- returning true deletes autocmd after fired end, @@ -137,8 +135,10 @@ function M.save(opts) if type(config.save_pre) == "function" then config.save_pre() end - vim.api.nvim_command("wa") - vim.api.nvim_command("mksession! " .. e(opts.session or vim.g.persisting_session or M.current())) + vim.schedule(function() + vim.api.nvim_command("wa") + vim.api.nvim_command("mksession! " .. e(opts.session or vim.g.persisting_session or M.current())) + end) end ---Delete the current session @@ -172,12 +172,14 @@ function M.switch(session_file_path) vim.api.nvim_create_autocmd("User", { pattern = "PersistedSavePost", callback = function() - for _, buf in ipairs(vim.api.nvim_list_bufs()) do - if vim.api.nvim_buf_is_loaded(buf) then - vim.api.nvim_buf_delete(buf, {}) + vim.schedule(function() + for _, buf in ipairs(vim.api.nvim_list_bufs()) do + if vim.api.nvim_buf_is_valid(buf) then + vim.api.nvim_buf_delete(buf, {}) + end end - end - M.load({ session = session_file_path }) + M.load({ session = session_file_path }) + end) return true end, })