diff options
author | Amaan Qureshi <amaanq12@gmail.com> | 2023-07-19 05:02:49 -0400 |
---|---|---|
committer | Lewis Russell <me@lewisr.dev> | 2023-08-31 13:33:40 +0100 |
commit | 845d5b8b64190e0e09a6a6dd97bdbc0e6f96eb02 (patch) | |
tree | 8c1116e6abe75c456f3a816cb633f76f7676016a /test/functional/treesitter/parser_spec.lua | |
parent | 4afd33e69f4c4a061bcb51a5ed437163262f943c (diff) | |
download | rneovim-845d5b8b64190e0e09a6a6dd97bdbc0e6f96eb02.tar.gz rneovim-845d5b8b64190e0e09a6a6dd97bdbc0e6f96eb02.tar.bz2 rneovim-845d5b8b64190e0e09a6a6dd97bdbc0e6f96eb02.zip |
feat(treesitter): improve query error message
Diffstat (limited to 'test/functional/treesitter/parser_spec.lua')
-rw-r--r-- | test/functional/treesitter/parser_spec.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/functional/treesitter/parser_spec.lua b/test/functional/treesitter/parser_spec.lua index 56af0c8738..37dde37a64 100644 --- a/test/functional/treesitter/parser_spec.lua +++ b/test/functional/treesitter/parser_spec.lua @@ -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) |