aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/treesitter/dev.lua
diff options
context:
space:
mode:
authorphanium <91544758+phanen@users.noreply.github.com>2025-03-11 21:15:22 +0800
committerGitHub <noreply@github.com>2025-03-11 06:15:22 -0700
commit0829e7575d63d51f0e33df81be2a45099aedea97 (patch)
tree0e965dd4e0b937e1ba202326c737036be9d777d4 /runtime/lua/vim/treesitter/dev.lua
parentb9d693b8046581d61373a43bdf9eb586a451c2e1 (diff)
downloadrneovim-0829e7575d63d51f0e33df81be2a45099aedea97.tar.gz
rneovim-0829e7575d63d51f0e33df81be2a45099aedea97.tar.bz2
rneovim-0829e7575d63d51f0e33df81be2a45099aedea97.zip
fix: warn when :InspectTree on buffer with no parser #32783
Problem: `InspectTree` error on buffer without ts parser attached. Solution: show a more correct warning.
Diffstat (limited to 'runtime/lua/vim/treesitter/dev.lua')
-rw-r--r--runtime/lua/vim/treesitter/dev.lua12
1 files changed, 10 insertions, 2 deletions
diff --git a/runtime/lua/vim/treesitter/dev.lua b/runtime/lua/vim/treesitter/dev.lua
index 24dd8243db..41ecf07aa1 100644
--- a/runtime/lua/vim/treesitter/dev.lua
+++ b/runtime/lua/vim/treesitter/dev.lua
@@ -76,7 +76,9 @@ end
---
---@package
function TSTreeView:new(bufnr, lang)
- local parser = vim.treesitter.get_parser(bufnr or 0, lang, { error = false })
+ bufnr = bufnr or 0
+ lang = lang or vim.treesitter.language.get_lang(vim.bo[bufnr].filetype)
+ local parser = vim.treesitter.get_parser(bufnr, lang, { error = false })
if not parser then
return nil,
string.format(
@@ -334,7 +336,13 @@ function M.inspect_tree(opts)
-- window id for source buffer
local win = api.nvim_get_current_win()
- local treeview = assert(TSTreeView:new(buf, opts.lang))
+ local treeview, err = TSTreeView:new(buf, opts.lang)
+ if err and err:match('no parser for lang') then
+ vim.api.nvim_echo({ { err, 'WarningMsg' } }, true, {})
+ return
+ elseif not treeview then
+ error(err)
+ end
-- Close any existing inspector window
if vim.b[buf].dev_inspect then