diff options
author | Thomas Vigouroux <tomvig38@gmail.com> | 2021-01-20 15:49:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-20 15:49:48 +0100 |
commit | 1785ac3e3787e84846d753ceb73a239f5575a691 (patch) | |
tree | 2c074316819e5a1c91cc3f4cc707a7986f3e670b | |
parent | d9c1586e4a6f741174a277bd75470da478ede3f3 (diff) | |
parent | ed558e269aff718305d854ad657621332b2d8fcb (diff) | |
download | rneovim-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.lua | 18 |
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 |