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
This commit is contained in:
Yochem van Rosmalen
2023-03-17 12:41:57 +01:00
committed by GitHub
parent 6162269fa3
commit 2720d2c793
3 changed files with 16 additions and 7 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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.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, { desc = 'Inspect treesitter language tree for buffer' })
end
end, { desc = 'Inspect treesitter language tree for buffer', count = true })