Files
telescope.nvim/lua/telescope/sorters.lua
2020-07-31 00:05:22 -04:00

35 lines
749 B
Lua

local sorters = {}
local Sorter = {}
Sorter.__index = Sorter
---@class Sorter
--- Sorter sorts a list of results by return a single integer for a line,
--- given a prompt
---
--- Lower number is better (because it's like a closer match)
--- But, any number below 0 means you want that line filtered out.
--- @param scoring_function function Function that has the interface:
-- (sorter, prompt, line): number
function Sorter:new(opts)
opts = opts or {}
return setmetatable({
state = {},
scoring_function = opts.scoring_function,
}, Sorter)
end
function Sorter:score(prompt, line)
return self:scoring_function(prompt, line)
end
function sorters.new(...)
return Sorter:new(...)
end
sorters.Sorter = Sorter
return sorters