{ empty = { plugins.persisted.enable = true; }; defaults = { plugins.persisted = { enable = true; settings = { autostart = true; should_save.__raw = '' function() return true end ''; save_dir.__raw = "vim.fn.expand(vim.fn.stdpath('data') .. '/sessions/')"; follow_cwd = true; use_git_branch = false; autoload = false; on_autoload_no_session.__raw = "function() end"; allowed_dirs = [ ]; ignored_dirs = [ ]; telescope = { mappings = { copy_session = ""; change_branch = ""; delete_session = ""; }; icons = { selected = " "; dir = " "; branch = " "; }; }; }; }; }; example = { plugins.gitlab = { enable = true; settings = { use_git_branch = true; autoload = true; on_autoload_no_session.__raw = '' function() vim.notify("No existing session to load.") end ''; should_save.__raw = '' function() -- Do not save session when the current cwd is git root local uv = vim.loop local cwd = uv.cwd() local git_dir = uv.fs_stat(cwd .. "/.git") if git_dir == nil then return false end -- Check if the current buffer is a GIT COMMIT message buffer local current_buf = vim.api.nvim_get_current_buf() local buf_name = vim.api.nvim_buf_get_name(current_buf) local is_git_commit = buf_name:match("COMMIT_EDITMSG$") ~= nil if is_git_commit then return false end if vim.fn.argc() > 0 then return false end return true end ''; }; }; }; }