diff options
author | Hyker <hykerr@proton.me> | 2024-11-15 04:00:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-14 19:00:18 -0800 |
commit | 6ef80eb42c730e66e5a769f619e05b353c08c118 (patch) | |
tree | f1355197a04125782dbc866c7f10798f68fbc2a1 | |
parent | 54c85bcb6d55ae7fa749e9998b67ebbcda58f4b9 (diff) | |
download | rneovim-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.lua | 9 |
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 |