Rework. Selecting session from telescope saves current session and deletes current buffers before loading new session

main
Bryan 2024-11-07 15:00:29 -06:00
parent 6c83e6ecb3
commit 8bb6d15fe9
2 changed files with 19 additions and 6 deletions

View File

@ -126,7 +126,7 @@ function M.save(opts)
config.save_post() config.save_post()
end end
M.fire("PersistedSavePost") M.fire("PersistedSavePost")
return true -- returning deletes autocmd after fired return true -- returning true deletes autocmd after fired
end, end,
}) })
@ -134,7 +134,8 @@ function M.save(opts)
if type(config.save_pre) == "function" then if type(config.save_pre) == "function" then
config.save_pre() config.save_pre()
end end
vim.cmd("mks! " .. e(opts.session or vim.g.persisting_session or M.current())) 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 ---Delete the current session

View File

@ -21,6 +21,8 @@ end
---Load the selected session ---Load the selected session
---@param session table ---@param session table
function M.load_session(session) function M.load_session(session)
fire("TelescopeLoadPre")
vim.api.nvim_create_autocmd("User", { vim.api.nvim_create_autocmd("User", {
pattern = "PersistedLoadPost", pattern = "PersistedLoadPost",
callback = function() callback = function()
@ -29,10 +31,20 @@ function M.load_session(session)
end, end,
}) })
fire("TelescopeLoadPre") vim.api.nvim_create_autocmd("User", {
vim.schedule(function() pattern = "PersistedSavePost",
persisted.load({ session = session.file_path }) callback = function()
end) vim.schedule(function()
for _, buf in ipairs(vim.api.nvim_list_bufs()) do
vim.api.nvim_buf_delete(buf, { force = true })
end
persisted.load({ session = session.file_path })
end)
return true
end,
})
persisted.save({ session = vim.g.persisted_loaded_session })
end end
---Delete the selected session from disk ---Delete the selected session from disk