aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyker <hykerr@proton.me>2024-11-15 04:00:18 +0100
committerGitHub <noreply@github.com>2024-11-14 19:00:18 -0800
commit6ef80eb42c730e66e5a769f619e05b353c08c118 (patch)
treef1355197a04125782dbc866c7f10798f68fbc2a1
parent54c85bcb6d55ae7fa749e9998b67ebbcda58f4b9 (diff)
downloadrneovim-6ef80eb42c730e66e5a769f619e05b353c08c118.tar.gz
rneovim-6ef80eb42c730e66e5a769f619e05b353c08c118.tar.bz2
rneovim-6ef80eb42c730e66e5a769f619e05b353c08c118.zip
fix(treesitter): keep treeview open if source window is still open #31198
Problem: When there is a tree view opened by :InspectTree and the source buffer is open in multiple windows, closing one of the source windows will lead to the tree view being closed as well. Regression by #31181. Solution: Check how many source windows are open when trying to quit one. If there are more than one, keep the tree view(s) open. If the only source window is closed, also close the tree view(s). fix #31196
-rw-r--r--runtime/lua/vim/treesitter/dev.lua9
1 files changed, 8 insertions, 1 deletions
diff --git a/runtime/lua/vim/treesitter/dev.lua b/runtime/lua/vim/treesitter/dev.lua
index 74d796f7fa..26817cdba5 100644
--- a/runtime/lua/vim/treesitter/dev.lua
+++ b/runtime/lua/vim/treesitter/dev.lua
@@ -530,12 +530,19 @@ function M.inspect_tree(opts)
api.nvim_create_autocmd({ 'BufHidden', 'BufUnload', 'QuitPre' }, {
group = group,
buffer = buf,
- once = true,
callback = function()
+ -- don't close inpector window if source buffer
+ -- has more than one open window
+ if #vim.fn.win_findbuf(buf) > 1 then
+ return
+ end
+
-- close all tree windows
for _, window in pairs(vim.fn.win_findbuf(b)) do
close_win(window)
end
+
+ return true
end,
})
end