avante.nvim/lua/avante/range.lua

35 lines
1.0 KiB
Lua
Raw Normal View History

---@class avante.Range
---@field start avante.RangeSelection start point
---@field finish avante.RangeSelection Selection end point
2024-08-17 22:29:05 +08:00
local Range = {}
Range.__index = Range
---@class avante.RangeSelection: table<string, integer>
2024-11-23 21:49:33 +08:00
---@field lnum number
---@field col number
---Create a selection range
---@param start avante.RangeSelection Selection start point
---@param finish avante.RangeSelection Selection end point
2024-11-23 20:23:05 +08:00
function Range:new(start, finish)
local instance = setmetatable({}, Range)
instance.start = start
instance.finish = finish
return instance
2024-08-17 22:29:05 +08:00
end
2024-11-23 21:49:33 +08:00
---Check if the line and column are within the range
---@param lnum number Line number
---@param col number Column number
---@return boolean
function Range:contains(lnum, col)
local start = self.start
local finish = self.finish
if lnum < start.lnum or lnum > finish.lnum then return false end
if lnum == start.lnum and col < start.col then return false end
if lnum == finish.lnum and col > finish.col then return false end
return true
end
2024-08-17 22:29:05 +08:00
return Range