diff options
author | Maria José Solano <majosolano99@gmail.com> | 2025-01-28 23:59:28 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-29 08:59:28 +0100 |
commit | da0ae953490098c28bad4791e08e2cc4c2e385e2 (patch) | |
tree | 5794f7a7ed0f8a671d000f2d495103af7a38cdff /test | |
parent | 6711fa27ca6e822bfd2394ec513671617cc53efd (diff) | |
download | rneovim-da0ae953490098c28bad4791e08e2cc4c2e385e2.tar.gz rneovim-da0ae953490098c28bad4791e08e2cc4c2e385e2.tar.bz2 rneovim-da0ae953490098c28bad4791e08e2cc4c2e385e2.zip |
feat(treesitter): support modelines in `query.set()` (#30257)
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/treesitter/query_spec.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/functional/treesitter/query_spec.lua b/test/functional/treesitter/query_spec.lua index 6bab171ee8..6db0ffe5a0 100644 --- a/test/functional/treesitter/query_spec.lua +++ b/test/functional/treesitter/query_spec.lua @@ -812,6 +812,34 @@ void ui_refresh(void) ) end) + it('supports "; extends" modeline in custom queries', function() + insert('int zeero = 0;') + local result = exec_lua(function() + vim.treesitter.query.set( + 'c', + 'highlights', + [[; extends + (identifier) @spell]] + ) + local query = vim.treesitter.query.get('c', 'highlights') + local parser = vim.treesitter.get_parser(0, 'c') + local root = parser:parse()[1]:root() + local res = {} + for id, node in query:iter_captures(root, 0) do + table.insert(res, { query.captures[id], vim.treesitter.get_node_text(node, 0) }) + end + return res + end) + eq({ + { 'type.builtin', 'int' }, + { 'variable', 'zeero' }, + { 'spell', 'zeero' }, + { 'operator', '=' }, + { 'number', '0' }, + { 'punctuation.delimiter', ';' }, + }, result) + end) + describe('Query:iter_captures', function() it('includes metadata for all captured nodes #23664', function() insert([[ |