This commit is contained in:
Zacharias-Brohn
2025-02-20 21:52:20 +01:00
parent d87b6964b5
commit e407d58cb1
8 changed files with 216 additions and 89 deletions
+36
View File
@@ -0,0 +1,36 @@
vim.api.nvim_create_autocmd({'BufEnter', 'QuitPre'}, {
nested = false,
callback = function(e)
local tree = require('nvim-tree.api').tree
-- Nothing to do if tree is not opened
if not tree.is_visible() then
return
end
-- How many focusable windows do we have? (excluding e.g. incline status window)
local winCount = 0
for _,winId in ipairs(vim.api.nvim_list_wins()) do
if vim.api.nvim_win_get_config(winId).focusable then
winCount = winCount + 1
end
end
-- We want to quit and only one window besides tree is left
if e.event == 'QuitPre' and winCount == 2 then
vim.api.nvim_cmd({cmd = 'qall'}, {})
end
-- :bd was probably issued an only tree window is left
-- Behave as if tree was closed (see `:h :bd`)
if e.event == 'BufEnter' and winCount == 1 then
-- Required to avoid "Vim:E444: Cannot close last window"
vim.defer_fn(function()
-- close nvim-tree: will go to the last buffer used before closing
tree.toggle({find_file = true, focus = true})
-- re-open nivm-tree
tree.toggle({find_file = true, focus = false})
end, 10)
end
end
})