diff options
Diffstat (limited to 'nvim/.config')
-rw-r--r-- | nvim/.config/nvim/lua/plugins/oil.lua | 17 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/utils/session.lua | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/nvim/.config/nvim/lua/plugins/oil.lua b/nvim/.config/nvim/lua/plugins/oil.lua index b7ce1a4..63ad919 100644 --- a/nvim/.config/nvim/lua/plugins/oil.lua +++ b/nvim/.config/nvim/lua/plugins/oil.lua @@ -3,7 +3,7 @@ local M = { "stevearc/oil.nvim", version = "*", cmd = { "Oil" }, - event = { "BufNew", "ColorScheme", "SessionLoadPost" }, + event = { "BufNew", "ColorScheme" }, opts = { default_file_explorer = true, skip_confirm_for_simple_edits = true, @@ -18,6 +18,21 @@ function M:init() require("oil").open() end, { desc = "Open parent directory" }) + vim.api.nvim_create_autocmd("User", { + group = vim.api.nvim_create_augroup("tobyvin_oil", { clear = true }), + pattern = "SessionSavePre", + callback = function(args) + if vim.bo[args.buf].filetype == "oil" then + require("oil").close() + local has_orig_alt, alt_buffer = pcall(vim.api.nvim_win_get_var, 0, "oil_original_alternate") + if has_orig_alt and vim.api.nvim_buf_is_valid(alt_buffer) then + vim.fn.setreg("#", alt_buffer) + end + end + end, + desc = "close oil buffer on session save", + }) + if vim.fn.argc() == 1 then arg = vim.fn.argv(0) --[[@as string]] local stat = vim.loop.fs_stat(arg) diff --git a/nvim/.config/nvim/lua/tobyvin/utils/session.lua b/nvim/.config/nvim/lua/tobyvin/utils/session.lua index 737757c..8634aa4 100644 --- a/nvim/.config/nvim/lua/tobyvin/utils/session.lua +++ b/nvim/.config/nvim/lua/tobyvin/utils/session.lua @@ -23,9 +23,11 @@ function M.write() vim.fn.mkdir(vim.fn.fnamemodify(res, ":p:h"), "p") + vim.api.nvim_exec_autocmds("User", { pattern = "SessionSavePre" }) if pcall(vim.cmd.mksession, { vim.fn.fnameescape(res), bang = true }) then vim.v.this_session = res end + vim.api.nvim_exec_autocmds("User", { pattern = "SessionSavePost" }) end function M.read() |