commit 2720d2c793b22e6c0c8719e5592922619fffdf7a
parent 6162269fa3107b23fd18c6c6d0e3e8fb73cfb45e
Author: Yochem van Rosmalen <yochem+git@icloud.com>
Date: Fri, 17 Mar 2023 12:41:57 +0100
fix(treesitter): InspectTree does not respect 'splitright' #22692
Problem:
vim.treesitter.inspect_tree() and :InspectTree does not respect 'splitright'.
Solution:
- Change the default `command` from `topleft 60vnew` to `60vnew`.
- Change :InspectTree to respect command mods (`:vertical`, count, etc.).
Closes #22656
Diffstat:
3 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt
@@ -623,8 +623,8 @@ inspect_tree({opts}) *vim.treesitter.inspect_tree()*
• winid (integer|nil): Window id to display the tree buffer
in. If omitted, a new window is created with {command}.
• command (string|nil): Vimscript command to create the
- window. Default value is "topleft 60vnew". Only used when
- {winid} is nil.
+ window. Default value is "60vnew". Only used when {winid} is
+ nil.
• title (string|fun(bufnr:integer):string|nil): Title of the
window. If a function, it accepts the buffer number of the
source buffer as its only argument and should return a
diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua
@@ -439,7 +439,7 @@ end
--- - winid (integer|nil): Window id to display the tree buffer in. If omitted,
--- a new window is created with {command}.
--- - command (string|nil): Vimscript command to create the window. Default
---- value is "topleft 60vnew". Only used when {winid} is nil.
+--- value is "60vnew". Only used when {winid} is nil.
--- - title (string|fun(bufnr:integer):string|nil): Title of the window. If a
--- function, it accepts the buffer number of the source buffer as its only
--- argument and should return a string.
@@ -465,7 +465,7 @@ function M.inspect_tree(opts)
local w = opts.winid
if not w then
- vim.cmd(opts.command or 'topleft 60vnew')
+ vim.cmd(opts.command or '60vnew')
w = a.nvim_get_current_win()
end
diff --git a/runtime/plugin/nvim.lua b/runtime/plugin/nvim.lua
@@ -6,6 +6,15 @@ vim.api.nvim_create_user_command('Inspect', function(cmd)
end
end, { desc = 'Inspect highlights and extmarks at the cursor', bang = true })
-vim.api.nvim_create_user_command('InspectTree', function()
- vim.treesitter.inspect_tree()
-end, { desc = 'Inspect treesitter language tree for buffer' })
+vim.api.nvim_create_user_command('InspectTree', function(cmd)
+ if cmd.mods ~= '' or cmd.count ~= 0 then
+ local count = cmd.count ~= 0 and cmd.count or ''
+ local new = cmd.mods ~= '' and 'new' or 'vnew'
+
+ vim.treesitter.inspect_tree({
+ command = ('%s %s%s'):format(cmd.mods, count, new),
+ })
+ else
+ vim.treesitter.inspect_tree()
+ end
+end, { desc = 'Inspect treesitter language tree for buffer', count = true })