2024-01-26 17:47:29 +01:00
|
|
|
---@class VisualArea
|
|
|
|
---@field sr number Start row
|
|
|
|
---@field sc number Start col
|
|
|
|
---@field er number End row
|
|
|
|
---@field ec number End col
|
|
|
|
|
|
|
|
---Get current visual selection area
|
|
|
|
---@return VisualArea
|
|
|
|
return function()
|
2024-06-13 21:48:16 +02:00
|
|
|
local select = vim.fn.getpos 'v'
|
|
|
|
local cursor = vim.fn.getpos '.'
|
|
|
|
local sr, er = select[2], cursor[2]
|
|
|
|
local sc, ec = select[3], cursor[3]
|
2024-01-26 17:47:29 +01:00
|
|
|
|
2024-06-13 21:48:16 +02:00
|
|
|
if sc > ec then sc, ec = ec, sc end
|
|
|
|
if sr > er then sr, er = er, sr end
|
2024-01-26 17:47:29 +01:00
|
|
|
|
2024-06-13 21:48:16 +02:00
|
|
|
return { sr = sr, sc = sc, er = er, ec = ec }
|
2024-01-26 17:47:29 +01:00
|
|
|
end
|