Files
telescope.nvim/lua/telescope/pickers/scroller.lua
MenBrial 3e884e863a fix: bug scroller.create (#366)
Corrects error creation
2020-12-26 18:51:08 +01:00

58 lines
1.3 KiB
Lua

local scroller = {}
local calc_count_fn = function(sorting_strategy)
if sorting_strategy == 'ascending' then
return function(a, b) return math.min(a, b) end
else
return function(a, b, row)
if a == b or not row then
return math.max(a, b)
else
local x = a - b
if row < x then
return math.max(a, b) - 1, true
elseif row == a then
return x, true
else
return math.max(a, b)
end
end
end
end
end
scroller.create = function(strategy, sorting_strategy)
local calc_count = calc_count_fn(sorting_strategy)
if strategy == 'cycle' then
return function(max_results, num_results, row)
local count, b = calc_count(max_results, num_results, row)
if b then return count end
if row >= count then
return 0
elseif row < 0 then
return count - 1
end
return row
end
elseif strategy == 'limit' or strategy == nil then
return function(max_results, num_results, row)
local count = calc_count(max_results, num_results)
if row >= count then
return count - 1
elseif row < 0 then
return 0
end
return row
end
else
error("Unsupported strategy: " .. strategy)
end
end
return scroller