Fixes
This commit is contained in:
parent
121121826b
commit
fd03ed5973
@ -81,7 +81,7 @@ function BracePair:find_closest(backward)
|
|||||||
-- See flags: https://neovim.io/doc/user/builtin.html#search()
|
-- See flags: https://neovim.io/doc/user/builtin.html#search()
|
||||||
local flags = 'Wcn'
|
local flags = 'Wcn'
|
||||||
if backward then
|
if backward then
|
||||||
flags = 'Wbn'
|
flags = 'Wcnb'
|
||||||
end
|
end
|
||||||
|
|
||||||
local ignore_func = function()
|
local ignore_func = function()
|
||||||
@ -172,28 +172,6 @@ function BraceRange.find_closest(pair)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BraceRange.find_closest_any()
|
function BraceRange.find_closest_any()
|
||||||
local range_compare = function(range_1, range_2)
|
|
||||||
local cursor = Cursor:get_current()
|
|
||||||
|
|
||||||
local row_diff1 = cursor.row - range_1.start.row
|
|
||||||
local row_diff2 = cursor.row - range_2.start.row
|
|
||||||
if row_diff1 < row_diff2 then
|
|
||||||
return -1
|
|
||||||
elseif row_diff1 > row_diff2 then
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
local col_diff1 = cursor.col - range_1.start.col
|
|
||||||
local col_diff2 = cursor.col - range_2.start.col
|
|
||||||
if col_diff1 < col_diff2 then
|
|
||||||
return -1
|
|
||||||
elseif col_diff1 > col_diff2 then
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
local ranges = {}
|
local ranges = {}
|
||||||
for _, brace in ipairs({'(', '[', '{', '<'}) do
|
for _, brace in ipairs({'(', '[', '{', '<'}) do
|
||||||
local pair = BracePair.from_brace(brace)
|
local pair = BracePair.from_brace(brace)
|
||||||
@ -204,7 +182,7 @@ function BraceRange.find_closest_any()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if #ranges > 0 then
|
if #ranges > 0 then
|
||||||
vim.fn.sort(ranges, range_compare)
|
table.sort(ranges)
|
||||||
return ranges[1]
|
return ranges[1]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -213,6 +191,27 @@ function BraceRange:is_wrapped()
|
|||||||
return self.start.row < self.stop.row
|
return self.start.row < self.stop.row
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function BraceRange.__lt(range_1, range_2)
|
||||||
|
local cursor = Cursor:get_current()
|
||||||
|
|
||||||
|
local row_diff1 = range_1.start.row - cursor.row
|
||||||
|
local col_diff1 = range_1.start.col - cursor.col
|
||||||
|
local row_diff2 = range_2.start.row - cursor.row
|
||||||
|
local col_diff2 = range_2.start.col - cursor.col
|
||||||
|
|
||||||
|
if row_diff1 < row_diff2 then
|
||||||
|
return false
|
||||||
|
elseif row_diff1 > row_diff2 then
|
||||||
|
return true
|
||||||
|
elseif col_diff1 < col_diff2 then
|
||||||
|
return false
|
||||||
|
elseif col_diff1 > col_diff2 then
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Param
|
-- Param
|
||||||
--
|
--
|
||||||
@ -245,7 +244,7 @@ end
|
|||||||
function Param:flush()
|
function Param:flush()
|
||||||
if self.offset then
|
if self.offset then
|
||||||
self.offset = math.min(self.offset, #self.text:match('(.-)%s*$'))
|
self.offset = math.min(self.offset, #self.text:match('(.-)%s*$'))
|
||||||
self.offset = self.offset - #self.text:match('^%s*')
|
self.offset = math.max(self.offset - #self.text:match('^%s*'), 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.text = self.text:match('^%s*(.-)%s*$')
|
self.text = self.text:match('^%s*(.-)%s*$')
|
||||||
|
Loading…
Reference in New Issue
Block a user