Add the ability to specify source priority manually

This commit is contained in:
hrsh7th
2021-09-16 13:04:07 +09:00
parent ca77ec6dcc
commit 12ed912c36
3 changed files with 7 additions and 1 deletions

View File

@@ -230,6 +230,11 @@ The source name.
The source customization options. It is defined by each source. The source customization options. It is defined by each source.
#### sources[number].priority (type: number|nil)
The manually specified source priority.
If you don't specifies it, The source priority will determine by the default algorithm (see `sorting.priority_weight`).
#### sources[number].keyword_pattern (type: string) #### sources[number].keyword_pattern (type: string)
The source specific keyword_pattern for override. The source specific keyword_pattern for override.

View File

@@ -89,7 +89,7 @@ menu.update = function(self, ctx, sources)
if s.offset <= offset then if s.offset <= offset then
if not has_triggered_by_symbol_source or s.is_triggered_by_symbol then if not has_triggered_by_symbol_source or s.is_triggered_by_symbol then
-- source order priority bonus. -- source order priority bonus.
local priority = (#sources - (i - 1)) * config.get().sorting.priority_weight local priority = s:get_config().priority or ((#sources - (i - 1)) * config.get().sorting.priority_weight)
for _, e in ipairs(s:get_entries(ctx)) do for _, e in ipairs(s:get_entries(ctx)) do
e.score = e.score + priority e.score = e.score + priority

View File

@@ -100,6 +100,7 @@ cmp.PreselectMode.None = 'none'
---@class cmp.SourceConfig ---@class cmp.SourceConfig
---@field public name string ---@field public name string
---@field public opts table ---@field public opts table
---@field public priority number|nil
---@field public keyword_pattern string ---@field public keyword_pattern string
---@field public keyword_length number ---@field public keyword_length number
---@field public max_item_count number ---@field public max_item_count number