aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/treesitter
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/lua/vim/treesitter')
-rw-r--r--runtime/lua/vim/treesitter/_fold.lua4
-rw-r--r--runtime/lua/vim/treesitter/_query_linter.lua2
-rw-r--r--runtime/lua/vim/treesitter/dev.lua16
-rw-r--r--runtime/lua/vim/treesitter/query.lua6
4 files changed, 19 insertions, 9 deletions
diff --git a/runtime/lua/vim/treesitter/_fold.lua b/runtime/lua/vim/treesitter/_fold.lua
index 49792c3891..7237d2e7d4 100644
--- a/runtime/lua/vim/treesitter/_fold.lua
+++ b/runtime/lua/vim/treesitter/_fold.lua
@@ -114,7 +114,7 @@ local function compute_folds_levels(bufnr, info, srow, erow, parse_injections)
srow = srow or 0
erow = erow or api.nvim_buf_line_count(bufnr)
- local parser = assert(ts._get_parser(bufnr))
+ local parser = assert(ts.get_parser(bufnr, nil, { error = false }))
parser:parse(parse_injections and { srow, erow } or nil)
@@ -392,7 +392,7 @@ function M.foldexpr(lnum)
lnum = lnum or vim.v.lnum
local bufnr = api.nvim_get_current_buf()
- local parser = ts._get_parser(bufnr)
+ local parser = ts.get_parser(bufnr, nil, { error = false })
if not parser then
return '0'
end
diff --git a/runtime/lua/vim/treesitter/_query_linter.lua b/runtime/lua/vim/treesitter/_query_linter.lua
index 417b8bafbb..632d045293 100644
--- a/runtime/lua/vim/treesitter/_query_linter.lua
+++ b/runtime/lua/vim/treesitter/_query_linter.lua
@@ -177,7 +177,7 @@ function M.lint(buf, opts)
is_first_lang = i == 1,
}
- local parser = assert(vim.treesitter._get_parser(buf), 'query parser not found.')
+ local parser = assert(vim.treesitter.get_parser(buf, nil, { error = false }))
parser:parse()
parser:for_each_tree(function(tree, ltree)
if ltree:lang() == 'query' then
diff --git a/runtime/lua/vim/treesitter/dev.lua b/runtime/lua/vim/treesitter/dev.lua
index 2a6e166ef1..dbf0e73250 100644
--- a/runtime/lua/vim/treesitter/dev.lua
+++ b/runtime/lua/vim/treesitter/dev.lua
@@ -76,9 +76,14 @@ end
---
---@package
function TSTreeView:new(bufnr, lang)
- local parser = vim.treesitter._get_parser(bufnr or 0, lang)
+ local parser = vim.treesitter.get_parser(bufnr or 0, lang, { error = false })
if not parser then
- return nil, 'No parser available for the given buffer.'
+ return nil,
+ string.format(
+ 'Failed to create TSTreeView for buffer %s: no parser for lang "%s"',
+ bufnr,
+ lang
+ )
end
-- For each child tree (injected language), find the root of the tree and locate the node within
@@ -539,7 +544,7 @@ local edit_ns = api.nvim_create_namespace('treesitter/dev-edit')
local function update_editor_highlights(query_win, base_win, lang)
local base_buf = api.nvim_win_get_buf(base_win)
local query_buf = api.nvim_win_get_buf(query_win)
- local parser = assert(vim.treesitter._get_parser(base_buf, lang))
+ local parser = assert(vim.treesitter.get_parser(base_buf, lang, { error = false }))
api.nvim_buf_clear_namespace(base_buf, edit_ns, 0, -1)
local query_content = table.concat(api.nvim_buf_get_lines(query_buf, 0, -1, false), '\n')
@@ -596,9 +601,10 @@ function M.edit_query(lang)
end
vim.cmd(cmd)
- local parser = vim.treesitter._get_parser(buf, lang)
+ local parser = vim.treesitter.get_parser(buf, lang, { error = false })
if not parser then
- return nil, 'No parser available for the given buffer'
+ return nil,
+ string.format('Failed to show query editor for buffer %s: no parser for lang "%s"', buf, lang)
end
lang = parser:lang()
diff --git a/runtime/lua/vim/treesitter/query.lua b/runtime/lua/vim/treesitter/query.lua
index bd0574b8b7..758c8bb356 100644
--- a/runtime/lua/vim/treesitter/query.lua
+++ b/runtime/lua/vim/treesitter/query.lua
@@ -1028,7 +1028,11 @@ end
---
--- @param lang? string language to open the query editor for. If omitted, inferred from the current buffer's filetype.
function M.edit(lang)
- vim.treesitter.dev.edit_query(lang)
+ -- TODO(ribru17): Make edit_query return true upon success so we can just assert here
+ local _, err_msg = vim.treesitter.dev.edit_query(lang)
+ if err_msg then
+ error(err_msg)
+ end
end
return M