return { 'rmagatti/auto-session', lazy = false, config = function() local auto_session = require('auto-session') auto_session.setup({ auto_save = false, auto_restore = false, post_restore_cmds = { function () local buf_exists = function(bufname) for _, buf in ipairs(vim.fn.getbufinfo({ bufloaded = true })) do if buf.name:match(bufname) then return true end end return false end -- If NvimTree was opened when the session was saved, show it if buf_exists('NvimTree_') then require('nvim-tree.api').tree.open() end end } }) local opts = { silent = true, noremap = true } local keymap = vim.keymap keymap.set('n', 'ss', 'SessionSave', opts) keymap.set('n', 'sq', 'SessionSavewaqa', opts) keymap.set('n', 'sl', 'SessionSearch', opts) keymap.set('n', 'sr', 'SessionRestore', opts) keymap.set('n', 'sd', 'Autosession delete', opts) local function named_save() vim.ui.input({ prompt = 'Enter Session name: ' }, function(input) auto_session.SaveSession(input) end) end keymap.set('n', 'sS', named_save, opts) local wk = require('which-key') wk.add({ { 's', group = 'auto-session' }, { 'ss', desc = 'SessionSave' }, { 'sS', desc = 'NamedSessionSave' }, { 'sq', desc = 'Save and Quit' }, { 'sl', desc = 'SessionList (SessionSearch)'}, { 'sr', desc = 'SessionRestore'}, { 'sd', desc = 'SessionDelete'}, }) end, }