aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Vigouroux <tomvig38@gmail.com>2021-01-20 15:49:48 +0100
committerGitHub <noreply@github.com>2021-01-20 15:49:48 +0100
commit1785ac3e3787e84846d753ceb73a239f5575a691 (patch)
tree2c074316819e5a1c91cc3f4cc707a7986f3e670b
parentd9c1586e4a6f741174a277bd75470da478ede3f3 (diff)
parented558e269aff718305d854ad657621332b2d8fcb (diff)
downloadrneovim-1785ac3e3787e84846d753ceb73a239f5575a691.tar.gz
rneovim-1785ac3e3787e84846d753ceb73a239f5575a691.tar.bz2
rneovim-1785ac3e3787e84846d753ceb73a239f5575a691.zip
Merge pull request #13794 from nvim-treesitter/fix-languagetree-contains
fix(languagetree): use tree nodes instead of regions in contains
-rw-r--r--runtime/lua/vim/treesitter/languagetree.lua18
1 files changed, 8 insertions, 10 deletions
diff --git a/runtime/lua/vim/treesitter/languagetree.lua b/runtime/lua/vim/treesitter/languagetree.lua
index 9c620c422c..c864fe5878 100644
--- a/runtime/lua/vim/treesitter/languagetree.lua
+++ b/runtime/lua/vim/treesitter/languagetree.lua
@@ -425,23 +425,21 @@ function LanguageTree:register_cbs(cbs)
end
end
-local function region_contains(region, range)
- for _, node in ipairs(region) do
- local start_row, start_col, end_row, end_col = node:range()
- local start_fits = start_row < range[1] or (start_row == range[1] and start_col <= range[2])
- local end_fits = end_row > range[3] or (end_row == range[3] and end_col >= range[4])
+local function tree_contains(tree, range)
+ local start_row, start_col, end_row, end_col = tree:root():range()
+ local start_fits = start_row < range[1] or (start_row == range[1] and start_col <= range[2])
+ local end_fits = end_row > range[3] or (end_row == range[3] and end_col >= range[4])
- if start_fits and end_fits then
- return true
- end
+ if start_fits and end_fits then
+ return true
end
return false
end
function LanguageTree:contains(range)
- for _, region in pairs(self._regions) do
- if region_contains(region, range) then
+ for _, tree in pairs(self._trees) do
+ if tree_contains(tree, range) then
return true
end
end