fix(treesitter): support multiple @injection.content captures

Before, only the last capture's range would be counted for injection.
Now all captured ranges will be counted in the ranges array. This is
more intuitive, and also provides a nice solution/alternative to the
"scoped injections" issue.
This commit is contained in:
Riley Bruins
2025-06-06 16:00:18 -07:00
committed by Christian Clason
parent 775e845d59
commit 8b41df185c
2 changed files with 7 additions and 2 deletions

View File

@@ -1013,7 +1013,9 @@ function LanguageTree:_get_injection(match, metadata)
local ft = vim.filetype.match({ filename = text })
lang = ft and resolve_lang(ft)
elseif name == 'injection.content' then
ranges = get_node_ranges(node, self._source, metadata[id], include_children)
for _, range in ipairs(get_node_ranges(node, self._source, metadata[id], include_children)) do
ranges[#ranges + 1] = range
end
end
end
end