neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 133ff6e11ea862c7425d9c6a2827b20c97cf297f
parent f57341a4b69398ff0c58686e66c2f4138be164aa
Author: Quentin Rasmont <qrasmont@gmail.com>
Date:   Thu,  2 Jun 2022 18:13:05 +0200

feat(treesitter): upstream node_contains()

Util from the nvim-treesitter project.

Diffstat:
Mruntime/lua/vim/treesitter.lua | 13+++++++++++++
1 file changed, 13 insertions(+), 0 deletions(-)

diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua @@ -141,4 +141,17 @@ function M.is_ancestor(dest, source) return false end +---Determines if a node contains a range +---@param node table The node +---@param range table The range +--- +---@returns (boolean) True if the node contains the range +function M.node_contains(node, range) + 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]) + + return start_fits and end_fits +end + return M