feat(treesitter): improve query error message

This commit is contained in:
Amaan Qureshi
2023-07-19 05:02:49 -04:00
committed by Lewis Russell
parent 4afd33e69f
commit 845d5b8b64
5 changed files with 122 additions and 13 deletions

View File

@@ -1055,4 +1055,44 @@ int x = INT_MAX;
]])
end)
it('fails to load queries', function()
local function test(exp, cquery)
eq(exp, pcall_err(exec_lua, "vim.treesitter.query.parse('c', ...)", cquery))
end
-- Invalid node type
test(
'.../query.lua:0: Query error at 1:2. Invalid node type "dentifier":\n'..
'(dentifier) @variable\n'..
' ^',
'(dentifier) @variable')
-- Impossible pattern
test(
'.../query.lua:0: Query error at 1:13. Impossible pattern:\n'..
'(identifier (identifier) @variable)\n'..
' ^',
'(identifier (identifier) @variable)')
-- Invalid syntax
test(
'.../query.lua:0: Query error at 1:13. Invalid syntax:\n'..
'(identifier @variable\n'..
' ^',
'(identifier @variable')
-- Invalid field name
test(
'.../query.lua:0: Query error at 1:15. Invalid field name "invalid_field":\n'..
'((identifier) invalid_field: (identifier))\n'..
' ^',
'((identifier) invalid_field: (identifier))')
-- Invalid capture name
test(
'.../query.lua:0: Query error at 1:30. Invalid capture name "ok.capture":\n'..
'((identifier) @id (#eq? @id @ok.capture))\n'..
' ^',
'((identifier) @id (#eq? @id @ok.capture))')
end)
end)