aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/treesitter/_range.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2023-03-08 17:59:45 +0000
committerGitHub <noreply@github.com>2023-03-08 17:59:45 +0000
commitb9f19d3e286d95d9209afbc479fa2eb908067fb1 (patch)
treebd0e11b0858cd47bb4785317bda6378f42b5805e /runtime/lua/vim/treesitter/_range.lua
parent276b647fdba07bf1762d8dd371c4b655b8a418df (diff)
downloadrneovim-b9f19d3e286d95d9209afbc479fa2eb908067fb1.tar.gz
rneovim-b9f19d3e286d95d9209afbc479fa2eb908067fb1.tar.bz2
rneovim-b9f19d3e286d95d9209afbc479fa2eb908067fb1.zip
Revert "refactor(treesitter): delegate region calculation to treesitter" (#22575)
Revert "refactor(treesitter): delegate region calculation to treesitter (#22553)" This reverts commit 276b647fdba07bf1762d8dd371c4b655b8a418df.
Diffstat (limited to 'runtime/lua/vim/treesitter/_range.lua')
-rw-r--r--runtime/lua/vim/treesitter/_range.lua28
1 files changed, 11 insertions, 17 deletions
diff --git a/runtime/lua/vim/treesitter/_range.lua b/runtime/lua/vim/treesitter/_range.lua
index 21e46a560a..bec24a23a5 100644
--- a/runtime/lua/vim/treesitter/_range.lua
+++ b/runtime/lua/vim/treesitter/_range.lua
@@ -78,8 +78,11 @@ end
---@param r2 Range4|Range6
---@return boolean
function M.intercepts(r1, r2)
- local srow_1, scol_1, erow_1, ecol_1 = M.unpack4(r1)
- local srow_2, scol_2, erow_2, ecol_2 = M.unpack4(r2)
+ local off_1 = #r1 == 6 and 1 or 0
+ local off_2 = #r1 == 6 and 1 or 0
+
+ local srow_1, scol_1, erow_1, ecol_1 = r1[1], r1[2], r1[3 + off_1], r1[4 + off_1]
+ local srow_2, scol_2, erow_2, ecol_2 = r2[1], r2[2], r2[3 + off_2], r2[4 + off_2]
-- r1 is above r2
if M.cmp_pos.le(erow_1, ecol_1, srow_2, scol_2) then
@@ -95,20 +98,15 @@ function M.intercepts(r1, r2)
end
---@private
----@param r Range4|Range6
----@return integer, integer, integer, integer
-function M.unpack4(r)
- local off_1 = #r == 6 and 1 or 0
- return r[1], r[2], r[3 + off_1], r[4 + off_1]
-end
-
----@private
---@param r1 Range4|Range6
---@param r2 Range4|Range6
---@return boolean whether r1 contains r2
function M.contains(r1, r2)
- local srow_1, scol_1, erow_1, ecol_1 = M.unpack4(r1)
- local srow_2, scol_2, erow_2, ecol_2 = M.unpack4(r2)
+ local off_1 = #r1 == 6 and 1 or 0
+ local off_2 = #r1 == 6 and 1 or 0
+
+ local srow_1, scol_1, erow_1, ecol_1 = r1[1], r1[2], r1[3 + off_1], r1[4 + off_1]
+ local srow_2, scol_2, erow_2, ecol_2 = r2[1], r2[2], r2[3 + off_2], r2[4 + off_2]
-- start doesn't fit
if M.cmp_pos.gt(srow_1, scol_1, srow_2, scol_2) then
@@ -125,13 +123,9 @@ end
---@private
---@param source integer|string
----@param range Range4|Range6
+---@param range Range4
---@return Range6
function M.add_bytes(source, range)
- if type(range) == 'table' and #range == 6 then
- return range --[[@as Range6]]
- end
-
local start_row, start_col, end_row, end_col = range[1], range[2], range[3], range[4]
local start_byte = 0
local end_byte = 0