Skip to content

Commit

Permalink
fix: properly start a session from Telescope (#134)
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
oldenj and olimorris authored Jun 3, 2024
1 parent 2b4f192 commit e50e0b6
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 7 deletions.
20 changes: 15 additions & 5 deletions lua/persisted/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -203,21 +203,31 @@ 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
config.options.on_autoload_no_session()
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
Expand Down
4 changes: 2 additions & 2 deletions lua/telescope/_extensions/persisted/actions.lua
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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 })
Expand Down

0 comments on commit e50e0b6

Please sign in to comment.