diff options
| author | Maria Solano <majosolano99@gmail.com> | 2026-02-16 08:05:38 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-16 11:05:38 -0500 |
| commit | 6e1745e96e3d74ee7958904b81a3f8ebfe404184 (patch) | |
| tree | 21ecea597e5c2833a5ce09d5bc1500a1c1794047 /runtime/lua/vim/range.lua | |
| parent | 501a21f3339025f7afabc2ae29ae485cce9d64e5 (diff) | |
| download | rneovim-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.lua | 14 |
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. |