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.

(cherry picked from commit 8b41df185c)
This commit is contained in:
Riley Bruins
2025-06-06 16:00:18 -07:00
committed by github-actions[bot]
parent 8183eb32e1
commit dfeec113be
2 changed files with 7 additions and 2 deletions

View File

@@ -956,7 +956,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