local M = {} function M.config() local status_ok, session_manager = pcall(require, "session_manager") if not status_ok then return end 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 -- 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, }) end return M