From f889f445c38134d8ed75c17cf5ccf1ea127cee27 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 14 Aug 2022 14:39:26 -0400 Subject: [PATCH] neovim: Implement proper session persistence --- nvim/.config/nvim/lua/plugins.lua | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 42040f1..6b65664 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -125,4 +125,42 @@ return require('packer').startup(function(use) end, }) end, } + + -- Session Manager + use { + "olimorris/persisted.nvim", + config = function() + require("persisted").setup({ + autoload = true, + before_save = function() + require('neo-tree.sources.manager').close('filesystem') + for _, term in pairs(require("toggleterm.terminal").get_all()) do + term:close() + end + end, + after_save = function() + require('neo-tree.sources.manager').show('filesystem') + end, + before_source = function() + require('neo-tree.sources.manager').close('filesystem') + end, + after_source = function() + require('neo-tree.sources.manager').show('filesystem') + end, + }) + + -- Autoload when directory changed + local last_cwd = vim.fn.getcwd() + vim.api.nvim_create_autocmd({ 'DirChanged' }, { + callback = function() + local cwd = vim.fn.getcwd() + if (cwd == last_cwd) then + return + end + last_cwd = cwd + require("persisted").load() + end + }) + end, + } end)