add sorter (not working yet)

This commit is contained in:
Senghan Bright 2021-01-14 12:24:11 +01:00
parent d1eab0a69c
commit bcec7dd4b8
2 changed files with 31 additions and 2 deletions

View File

@ -18,7 +18,7 @@ local entry_display = require "telescope.pickers.entry_display"
local finders = require "telescope.finders" local finders = require "telescope.finders"
local pickers = require "telescope.pickers" local pickers = require "telescope.pickers"
local previewers = require "telescope.previewers" local previewers = require "telescope.previewers"
local sorters = require "telescope.sorters" local sorters = require "telescope._extensions.frecency.sorter"
local conf = require('telescope.config').values local conf = require('telescope.config').values
local path = require('telescope.path') local path = require('telescope.path')
local utils = require('telescope.utils') local utils = require('telescope.utils')
@ -72,7 +72,7 @@ local frecency = function(opts)
end, end,
}, },
previewer = conf.file_previewer(opts), previewer = conf.file_previewer(opts),
sorter = sorters.get_generic_fuzzy_sorter(), -- TODO: do we have to have our own sorter? we only want filtering sorter = sorters.get_frecency_sorter()
}):find() }):find()
end end

View File

@ -0,0 +1,29 @@
local sorters = require "telescope.sorters"
local my_sorters = {}
my_sorters.get_frecency_sorter = function(opts)
opts = opts or {}
opts.ngram_len = 2
local fuzzy_sorter = sorters.get_generic_fuzzy_sorter(opts)
local frecency = sorters:new()
frecency.scoring_function = function(_, prompt, _, entry)
local base_score = fuzzy_sorter:score(prompt, entry)
if base_score == -1 then
return -1
end
if base_score == 0 then
return entry.index
else
return math.min(math.pow(entry.index, 0.25), 2) * base_score
end
end
return frecency
end
return my_sorters