From 6e1745e96e3d74ee7958904b81a3f8ebfe404184 Mon Sep 17 00:00:00 2001 From: Maria Solano Date: Mon, 16 Feb 2026 08:05:38 -0800 Subject: feat(lua): support vim.Range:has(vim.pos) #37879 --- runtime/lua/vim/range.lua | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'runtime/lua/vim/range.lua') 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. -- cgit