aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMaria José Solano <majosolano99@gmail.com>2025-01-28 23:59:28 -0800
committerGitHub <noreply@github.com>2025-01-29 08:59:28 +0100
commitda0ae953490098c28bad4791e08e2cc4c2e385e2 (patch)
tree5794f7a7ed0f8a671d000f2d495103af7a38cdff /test
parent6711fa27ca6e822bfd2394ec513671617cc53efd (diff)
downloadrneovim-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.lua28
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([[