refactor(nvim): improve sorting of cmp comparators
Some checks failed
Check Formatting of Files / Check-Formatting (push) Has been cancelled

This commit is contained in:
Price Hiller 2024-11-20 13:04:06 -06:00
parent 201624c51a
commit 2f70f5ac83
Signed by: Price
GPG Key ID: C3FADDE7A8534BEB

View File

@ -68,6 +68,7 @@ return {
local cmp = require("cmp") local cmp = require("cmp")
local str = require("cmp.utils.str") local str = require("cmp.utils.str")
local compare = cmp.config.compare local compare = cmp.config.compare
local cmp_types = require("cmp.types")
local luasnip = require("luasnip") local luasnip = require("luasnip")
-- Load Snippets -- Load Snippets
@ -107,7 +108,7 @@ return {
"--max-depth 4", "--max-depth 4",
}, },
}, },
{ name = "zsh", max_item_count = 5 }, { name = "zsh", max_item_count = 3 },
{ name = "npm", keyword_length = 2 }, { name = "npm", keyword_length = 2 },
} }
@ -284,13 +285,18 @@ return {
sorting = { sorting = {
priority_weight = 2, priority_weight = 2,
comparators = { comparators = {
compare.locality,
compare.recently_used,
compare.score,
require("cmp_fuzzy_buffer.compare"), require("cmp_fuzzy_buffer.compare"),
compare.locality,
compare.offset, compare.offset,
compare.exact, compare.exact,
-- Copied from cmp-under-comparator compare.score,
compare.recently_used,
compare.kind,
compare.length,
compare.order,
--- Copied from cmp-under-comparator
---@param entry1 cmp.Entry
---@param entry2 cmp.Entry
function(entry1, entry2) function(entry1, entry2)
local _, entry1_under = entry1.completion_item.label:find("^_+") local _, entry1_under = entry1.completion_item.label:find("^_+")
local _, entry2_under = entry2.completion_item.label:find("^_+") local _, entry2_under = entry2.completion_item.label:find("^_+")
@ -349,7 +355,6 @@ return {
cmp.setup.cmdline(":", { cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(), mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = "cmdline_history", max_item_count = 3 },
{ {
name = "cmdline", name = "cmdline",
option = { option = {
@ -359,6 +364,7 @@ return {
}, },
priority = 100, priority = 100,
}, },
{ name = "cmdline_history", max_item_count = 3 },
}), }),
}) })
end, end,