aboutsummaryrefslogtreecommitdiff
path: root/common/nvim/lua/plugins/auto-session.lua
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2025-09-24 02:55:49 +0200
committersrdusr <trevorgray@srdusr.com>2025-09-24 02:55:49 +0200
commit3cf613ec7c90ab4933728b0f19e49b0c955c17bb (patch)
tree765e58766936b5228ad473ad77dfbf4353f173e9 /common/nvim/lua/plugins/auto-session.lua
parentef51a60993197ed3bbd1003522f98f0a898d34c6 (diff)
parent966d12ac730c83da90d60ab24eae539b2ea69441 (diff)
downloaddotfiles-3cf613ec7c90ab4933728b0f19e49b0c955c17bb.tar.gz
dotfiles-3cf613ec7c90ab4933728b0f19e49b0c955c17bb.zip
Add 'common/nvim/' from commit '966d12ac730c83da90d60ab24eae539b2ea69441'
git-subtree-dir: common/nvim git-subtree-mainline: ef51a60993197ed3bbd1003522f98f0a898d34c6 git-subtree-split: 966d12ac730c83da90d60ab24eae539b2ea69441
Diffstat (limited to 'common/nvim/lua/plugins/auto-session.lua')
-rwxr-xr-xcommon/nvim/lua/plugins/auto-session.lua39
1 files changed, 39 insertions, 0 deletions
diff --git a/common/nvim/lua/plugins/auto-session.lua b/common/nvim/lua/plugins/auto-session.lua
new file mode 100755
index 0000000..d982e08
--- /dev/null
+++ b/common/nvim/lua/plugins/auto-session.lua
@@ -0,0 +1,39 @@
+local M = {}
+
+function M.setup()
+ local auto = pcall(require, 'auto-session') and require('auto-session')
+ if not auto then
+ return false
+ end
+
+ local nvim_version = vim.version()
+ if nvim_version.major == 0 and nvim_version.minor < 5 then
+ return false
+ end
+
+ -- Configure session options
+ vim.opt.sessionoptions:append("localoptions") -- Add localoptions to sessionoptions
+
+ -- Set up auto-session
+ auto.setup({
+ log_level = 'info',
+ auto_session_suppress_dirs = { '~/', '~/Projects', '~/projects', '~/Downloads', '~/downloads' },
+ auto_session_use_git_branch = true,
+ bypass_save_filetypes = { "dashboard" },
+
+ -- Additional configuration to handle session options
+ pre_save_cmds = {
+ -- Ensure local options are saved with the session
+ function() vim.opt.sessionoptions:append("localoptions") end,
+ },
+
+ -- Post restore hook to ensure local options are properly set
+ post_restore = function()
+ vim.opt.sessionoptions:append("localoptions")
+ end,
+ })
+
+ return true
+end
+
+return M