Rework. Selecting session from telescope saves current session and deletes current buffers before loading new session
parent
6c83e6ecb3
commit
8bb6d15fe9
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue