diff --git a/lua/persisted/init.lua b/lua/persisted/init.lua index 96d6b11..2df64e9 100644 --- a/lua/persisted/init.lua +++ b/lua/persisted/init.lua @@ -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 diff --git a/lua/telescope/_extensions/persisted/actions.lua b/lua/telescope/_extensions/persisted/actions.lua index 3fc72ce..dff5687 100644 --- a/lua/telescope/_extensions/persisted/actions.lua +++ b/lua/telescope/_extensions/persisted/actions.lua @@ -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 })