diff --git a/runtime/lua/vim/treesitter/languagetree.lua b/runtime/lua/vim/treesitter/languagetree.lua index f2e745ec65..bea04ee605 100644 --- a/runtime/lua/vim/treesitter/languagetree.lua +++ b/runtime/lua/vim/treesitter/languagetree.lua @@ -1268,12 +1268,13 @@ end local function tree_contains(tree, range) local tree_ranges = tree:included_ranges(false) - return Range.contains({ - tree_ranges[1][1], - tree_ranges[1][2], - tree_ranges[#tree_ranges][3], - tree_ranges[#tree_ranges][4], - }, range) + for _, tree_range in ipairs(tree_ranges) do + if Range.contains(tree_range, range) then + return true + end + end + + return false end --- Determines whether {range} is contained in the |LanguageTree|.