neovim/test/functional/treesitter/testutil.lua
Riley Bruins f0ea38a4bc test(treesitter): add a simple testutil file
The util file, for now, just abstracts the common `run_query` function.
2024-12-06 08:36:28 -08:00

26 lines
666 B
Lua

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 res = {}
for id, node, metadata in query:iter_captures(tree:root(), 0) do
table.insert(
res,
{ query.captures[id], metadata[id] and metadata[id].range or { node:range() } }
)
end
return res
end, language, query_string)
end
return M