aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--nvim/.config/nvim/lua/plugins/oil.lua17
-rw-r--r--nvim/.config/nvim/lua/tobyvin/utils/session.lua2
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()