blob: 23e16d8a89bc72799cdd2b63a5adf66320cfb8c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
local n = require('test.functional.testnvim')()
local exec_lua = n.exec_lua
local M = {}
---@param language string
---@param query_string string
function M.run_query(language, query_string)
return exec_lua(function(lang, query_str)
local query = vim.treesitter.query.parse(lang, query_str)
local parser = vim.treesitter.get_parser()
local tree = parser:parse()[1]
local Range = require('vim.treesitter._range')
local res = {}
for id, node, metadata in query:iter_captures(tree:root(), 0) do
table.insert(res, {
query.captures[id],
{ Range.unpack4(vim.treesitter.get_range(node, 0, metadata[id])) },
})
end
return res
end, language, query_string)
end
return M
|