aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/range.lua
diff options
context:
space:
mode:
authorMaria Solano <majosolano99@gmail.com>2026-02-16 08:05:38 -0800
committerGitHub <noreply@github.com>2026-02-16 11:05:38 -0500
commit6e1745e96e3d74ee7958904b81a3f8ebfe404184 (patch)
tree21ecea597e5c2833a5ce09d5bc1500a1c1794047 /runtime/lua/vim/range.lua
parent501a21f3339025f7afabc2ae29ae485cce9d64e5 (diff)
downloadrneovim-6e1745e96e3d74ee7958904b81a3f8ebfe404184.tar.gz
rneovim-6e1745e96e3d74ee7958904b81a3f8ebfe404184.tar.bz2
rneovim-6e1745e96e3d74ee7958904b81a3f8ebfe404184.zip
feat(lua): support vim.Range:has(vim.pos) #37879
Diffstat (limited to 'runtime/lua/vim/range.lua')
-rw-r--r--runtime/lua/vim/range.lua14
1 files changed, 10 insertions, 4 deletions
diff --git a/runtime/lua/vim/range.lua b/runtime/lua/vim/range.lua
index d467e6c0c6..f0cd01145e 100644
--- a/runtime/lua/vim/range.lua
+++ b/runtime/lua/vim/range.lua
@@ -106,13 +106,19 @@ function Range:is_empty()
return self.start >= self.end_
end
---- Checks whether {outer} range contains {inner} range.
+--- Checks whether {outer} range contains {inner} range or position.
---
---@param outer vim.Range
----@param inner vim.Range
----@return boolean `true` if {outer} range fully contains {inner} range.
+---@param inner vim.Range|vim.Pos
+---@return boolean `true` if {outer} range fully contains {inner} range or position.
function Range.has(outer, inner)
- return outer.start <= inner.start and outer.end_ >= inner.end_
+ if inner.start then
+ -- inner is a range
+ return outer.start <= inner.start and outer.end_ >= inner.end_
+ else
+ -- inner is a position
+ return outer.start <= inner and outer.end_ >= inner
+ end
end
--- Computes the common range shared by the given ranges.