fix: properly start a session from Telescope (#134)
Properly starts sessions loaded from another directory using Telescope. Crucially, this version compares the working directory of the session, not the working directory at the time of the session load, to the lists of allowed and ignored directories. Co-authored-by: Oli <olimorris@users.noreply.github.com>main
parent
2b4f192aca
commit
e50e0b65b0
|
|
@ -203,14 +203,23 @@ end
|
|||
function M.load(opt, dir)
|
||||
opt = opt or {}
|
||||
dir = dir or session_dir()
|
||||
local branch = get_branchname()
|
||||
|
||||
local session = opt.session or (opt.last and get_last() or get_current(dir))
|
||||
|
||||
local session_exists = vim.fn.filereadable(session) ~= 0
|
||||
local branch
|
||||
local session
|
||||
if opt.session then
|
||||
session = opt.session
|
||||
local session_data = utils.make_session_data(session)
|
||||
branch = session_data and session_data.branch or ""
|
||||
if not branch then
|
||||
vim.notify(string.format("[Persisted.nvim]: Invalid session file %s", session), vim.log.levels.WARN)
|
||||
end
|
||||
else
|
||||
branch = get_branchname()
|
||||
session = opt.last and get_last() or get_current(dir)
|
||||
end
|
||||
|
||||
if session then
|
||||
if session_exists then
|
||||
if vim.fn.filereadable(session) ~= 0 then
|
||||
vim.g.persisting_session = not config.options.follow_cwd and session or nil
|
||||
utils.load_session(session, config.options.silent)
|
||||
elseif type(config.options.on_autoload_no_session) == "function" then
|
||||
|
|
@ -218,6 +227,7 @@ function M.load(opt, dir)
|
|||
end
|
||||
end
|
||||
|
||||
dir = session_dir()
|
||||
if config.options.autosave and (allow_dir(dir) and not ignore_dir(dir)) and not ignore_branch(branch) then
|
||||
M.start()
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
local actions_state = require("telescope.actions.state")
|
||||
local transform_mod = require("telescope.actions.mt").transform_mod
|
||||
|
||||
local utils = require("persisted.utils")
|
||||
local persisted = require("persisted")
|
||||
local M = {}
|
||||
|
||||
---Get the selected session from Telescope
|
||||
|
|
@ -18,7 +18,7 @@ M.load_session = function(session, config)
|
|||
vim.api.nvim_exec_autocmds("User", { pattern = "PersistedTelescopeLoadPre", data = session })
|
||||
|
||||
vim.schedule(function()
|
||||
utils.load_session(session.file_path, config.silent)
|
||||
persisted.load({ session = session.file_path })
|
||||
end)
|
||||
|
||||
vim.api.nvim_exec_autocmds("User", { pattern = "PersistedTelescopeLoadPost", data = session })
|
||||
|
|
|
|||
Loading…
Reference in New Issue