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:
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