nvim-config/lua/configs/session-manager.lua

45 lines
1.1 KiB
Lua
Raw Normal View History

2022-10-26 17:03:13 +00:00
local M = {}
function M.config()
local status_ok, session_manager = pcall(require, "session_manager")
if not status_ok then
return
end
2022-11-18 21:27:11 +00:00
local sm_config = require'session_manager.config'
local function get_branch_name()
local handle = io.popen("git branch --show-current 2>/dev/null")
if (handle == nil) then
return nil
end
local branch = handle:read("l")
handle:close()
if (branch == nil) then
return nil
end
branch = branch:gsub("/", "--")
return branch
end
2022-10-26 17:03:13 +00:00
2022-11-18 21:27:11 +00:00
-- this plugin saves sessions for the working directory automatically
session_manager.setup({
autoload_mode = sm_config.AutoloadMode.Disabled, -- do not auto-load the last session at startup
session_filename_to_dir = function(filename)
local filename_without_extra = filename:sub(0, filename:find("=="))
return sm_config.delimited_session_filename_to_dir(filename_without_extra)
end,
dir_to_session_filename = function(dir)
local filename = sm_config.dir_to_delimited_session_filename(dir)
local branch = get_branch_name()
if branch ~= nil then
return filename .. "==" .. branch
else
return filename
end
end,
})
2022-10-26 17:03:13 +00:00
end
return M