fix: more readable value name (#1521)
This commit is contained in:
@@ -20,7 +20,7 @@ function M.switch_file_selector_provider(target_provider)
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param target Provider
|
---@param target ProviderName
|
||||||
function M.switch_provider(target) require("avante.providers").refresh(target) end
|
function M.switch_provider(target) require("avante.providers").refresh(target) end
|
||||||
|
|
||||||
---@param path string
|
---@param path string
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ local M = {}
|
|||||||
---@field custom_tools AvanteLLMToolPublic[]
|
---@field custom_tools AvanteLLMToolPublic[]
|
||||||
M._defaults = {
|
M._defaults = {
|
||||||
debug = false,
|
debug = false,
|
||||||
---@alias Provider "claude" | "openai" | "azure" | "gemini" | "vertex" | "cohere" | "copilot" | string
|
---@alias ProviderName "claude" | "openai" | "azure" | "gemini" | "vertex" | "cohere" | "copilot" | string
|
||||||
provider = "claude",
|
provider = "claude",
|
||||||
-- WARNING: Since auto-suggestions are a high-frequency operation and therefore expensive,
|
-- WARNING: Since auto-suggestions are a high-frequency operation and therefore expensive,
|
||||||
-- currently designating it as `copilot` provider is dangerous because: https://github.com/yetone/avante.nvim/issues/1048
|
-- currently designating it as `copilot` provider is dangerous because: https://github.com/yetone/avante.nvim/issues/1048
|
||||||
@@ -452,8 +452,8 @@ M._defaults = {
|
|||||||
---@diagnostic disable-next-line: missing-fields
|
---@diagnostic disable-next-line: missing-fields
|
||||||
M._options = {}
|
M._options = {}
|
||||||
|
|
||||||
---@type Provider[]
|
---@type ProviderName[]
|
||||||
M.providers = {}
|
M.provider_names = {}
|
||||||
|
|
||||||
---@param opts? avante.Config
|
---@param opts? avante.Config
|
||||||
function M.setup(opts)
|
function M.setup(opts)
|
||||||
@@ -472,7 +472,7 @@ function M.setup(opts)
|
|||||||
)
|
)
|
||||||
|
|
||||||
M._options = merged
|
M._options = merged
|
||||||
M.providers = vim
|
M.provider_names = vim
|
||||||
.iter(M._defaults)
|
.iter(M._defaults)
|
||||||
:filter(function(_, value) return type(value) == "table" and value.endpoint ~= nil end)
|
:filter(function(_, value) return type(value) == "table" and value.endpoint ~= nil end)
|
||||||
:fold({}, function(acc, k)
|
:fold({}, function(acc, k)
|
||||||
@@ -488,7 +488,7 @@ function M.setup(opts)
|
|||||||
M._options.vendors[k] = type(v) == "function" and v() or v
|
M._options.vendors[k] = type(v) == "function" and v() or v
|
||||||
end
|
end
|
||||||
vim.validate({ vendors = { M._options.vendors, "table", true } })
|
vim.validate({ vendors = { M._options.vendors, "table", true } })
|
||||||
M.providers = vim.list_extend(M.providers, vim.tbl_keys(M._options.vendors))
|
M.provider_names = vim.list_extend(M.provider_names, vim.tbl_keys(M._options.vendors))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -501,7 +501,7 @@ function M.override(opts)
|
|||||||
if next(M._options.vendors) ~= nil then
|
if next(M._options.vendors) ~= nil then
|
||||||
for k, v in pairs(M._options.vendors) do
|
for k, v in pairs(M._options.vendors) do
|
||||||
M._options.vendors[k] = type(v) == "function" and v() or v
|
M._options.vendors[k] = type(v) == "function" and v() or v
|
||||||
if not vim.tbl_contains(M.providers, k) then M.providers = vim.list_extend(M.providers, { k }) end
|
if not vim.tbl_contains(M.provider_names, k) then M.provider_names = vim.list_extend(M.provider_names, { k }) end
|
||||||
end
|
end
|
||||||
vim.validate({ vendors = { M._options.vendors, "table", true } })
|
vim.validate({ vendors = { M._options.vendors, "table", true } })
|
||||||
end
|
end
|
||||||
@@ -517,20 +517,20 @@ function M.support_paste_image() return Utils.has("img-clip.nvim") or Utils.has(
|
|||||||
|
|
||||||
function M.get_window_width() return math.ceil(vim.o.columns * (M.windows.width / 100)) end
|
function M.get_window_width() return math.ceil(vim.o.columns * (M.windows.width / 100)) end
|
||||||
|
|
||||||
---@param provider Provider
|
---@param provider_name ProviderName
|
||||||
---@return boolean
|
---@return boolean
|
||||||
function M.has_provider(provider) return M._options[provider] ~= nil or M.vendors[provider] ~= nil end
|
function M.has_provider(provider_name) return M._options[provider_name] ~= nil or M.vendors[provider_name] ~= nil end
|
||||||
|
|
||||||
---get supported providers
|
---get supported providers
|
||||||
---@param provider Provider
|
---@param provider_name ProviderName
|
||||||
---@return AvanteProviderFunctor
|
---@return AvanteProviderFunctor
|
||||||
function M.get_provider(provider)
|
function M.get_provider(provider_name)
|
||||||
if M._options[provider] ~= nil then
|
if M._options[provider_name] ~= nil then
|
||||||
return vim.deepcopy(M._options[provider], true)
|
return vim.deepcopy(M._options[provider_name], true)
|
||||||
elseif M.vendors and M.vendors[provider] ~= nil then
|
elseif M.vendors and M.vendors[provider_name] ~= nil then
|
||||||
return vim.deepcopy(M.vendors[provider], true)
|
return vim.deepcopy(M.vendors[provider_name], true)
|
||||||
else
|
else
|
||||||
error("Failed to find provider: " .. provider, 2)
|
error("Failed to find provider: " .. provider_name, 2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ function M.check()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Check Copilot if configured
|
-- Check Copilot if configured
|
||||||
if Config.providers and Config.providers == "copilot" then
|
if Config.provider and Config.provider == "copilot" then
|
||||||
if Utils.has("copilot.lua") or Utils.has("copilot.vim") or Utils.has("copilot") then
|
if Utils.has("copilot.lua") or Utils.has("copilot.vim") or Utils.has("copilot") then
|
||||||
H.ok("Found Copilot plugin")
|
H.ok("Found Copilot plugin")
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ local Config = require("avante.config")
|
|||||||
---@class avante.ModelSelector
|
---@class avante.ModelSelector
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
---@param provider string
|
---@param provider_name string
|
||||||
---@param cfg table
|
---@param cfg table
|
||||||
---@return table?
|
---@return table?
|
||||||
local function create_model_entry(provider, cfg)
|
local function create_model_entry(provider_name, cfg)
|
||||||
return cfg.model
|
return cfg.model
|
||||||
and {
|
and {
|
||||||
name = cfg.display_name or (provider .. "/" .. cfg.model),
|
name = cfg.display_name or (provider_name .. "/" .. cfg.model),
|
||||||
provider = provider,
|
provider_name = provider_name,
|
||||||
model = cfg.model,
|
model = cfg.model,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
@@ -20,8 +20,8 @@ function M.open()
|
|||||||
local models = {}
|
local models = {}
|
||||||
|
|
||||||
-- Collect models from main providers and vendors
|
-- Collect models from main providers and vendors
|
||||||
for _, provider in ipairs(Config.providers) do
|
for _, provider_name in ipairs(Config.provider_names) do
|
||||||
local entry = create_model_entry(provider, Config.get_provider(provider))
|
local entry = create_model_entry(provider_name, Config.get_provider(provider_name))
|
||||||
if entry then table.insert(models, entry) end
|
if entry then table.insert(models, entry) end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -37,11 +37,15 @@ function M.open()
|
|||||||
if not choice then return end
|
if not choice then return end
|
||||||
|
|
||||||
-- Switch provider if needed
|
-- Switch provider if needed
|
||||||
if choice.provider ~= Config.provider then require("avante.providers").refresh(choice.provider) end
|
if choice.provider_name ~= Config.provider then require("avante.providers").refresh(choice.provider_name) end
|
||||||
|
|
||||||
-- Update config with new model
|
-- Update config with new model
|
||||||
Config.override({
|
Config.override({
|
||||||
[choice.provider] = vim.tbl_deep_extend("force", Config.get_provider(choice.provider), { model = choice.model }),
|
[choice.provider_name] = vim.tbl_deep_extend(
|
||||||
|
"force",
|
||||||
|
Config.get_provider(choice.provider_name),
|
||||||
|
{ model = choice.model }
|
||||||
|
),
|
||||||
})
|
})
|
||||||
|
|
||||||
Utils.info("Switched to model: " .. choice.name)
|
Utils.info("Switched to model: " .. choice.name)
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ M.env = E
|
|||||||
|
|
||||||
M = setmetatable(M, {
|
M = setmetatable(M, {
|
||||||
---@param t avante.Providers
|
---@param t avante.Providers
|
||||||
---@param k Provider
|
---@param k ProviderName
|
||||||
__index = function(t, k)
|
__index = function(t, k)
|
||||||
---@type AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
---@type AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
||||||
local Opts = M.get_config(k)
|
local Opts = M.get_config(k)
|
||||||
@@ -270,14 +270,14 @@ function M.setup()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param provider Provider
|
---@param provider_name ProviderName
|
||||||
function M.refresh(provider)
|
function M.refresh(provider_name)
|
||||||
require("avante.config").override({ provider = provider })
|
require("avante.config").override({ provider = provider_name })
|
||||||
|
|
||||||
---@type AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
---@type AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
||||||
local p = M[Config.provider]
|
local p = M[Config.provider]
|
||||||
E.setup({ provider = p, refresh = true })
|
E.setup({ provider = p, refresh = true })
|
||||||
Utils.info("Switch to provider: " .. provider, { once = true, title = "Avante" })
|
Utils.info("Switch to provider: " .. provider_name, { once = true, title = "Avante" })
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param opts AvanteProvider | AvanteSupportedProvider | AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
---@param opts AvanteProvider | AvanteSupportedProvider | AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
||||||
@@ -309,11 +309,11 @@ function M.parse_config(opts)
|
|||||||
end
|
end
|
||||||
|
|
||||||
---@private
|
---@private
|
||||||
---@param provider Provider
|
---@param provider_name ProviderName
|
||||||
---@return AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
---@return AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
||||||
function M.get_config(provider)
|
function M.get_config(provider_name)
|
||||||
provider = provider or Config.provider
|
provider_name = provider_name or Config.provider
|
||||||
local cur = Config.get_provider(provider)
|
local cur = Config.get_provider(provider_name)
|
||||||
return type(cur) == "function" and cur() or cur
|
return type(cur) == "function" and cur() or cur
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ cmd("SwitchProvider", function(opts) require("avante.api").switch_provider(vim.t
|
|||||||
complete = function(_, line, _)
|
complete = function(_, line, _)
|
||||||
local prefix = line:match("AvanteSwitchProvider%s*(.*)$") or ""
|
local prefix = line:match("AvanteSwitchProvider%s*(.*)$") or ""
|
||||||
---@param key string
|
---@param key string
|
||||||
return vim.tbl_filter(function(key) return key:find(prefix, 1, true) == 1 end, Config.providers)
|
return vim.tbl_filter(function(key) return key:find(prefix, 1, true) == 1 end, Config.provider_names)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
cmd(
|
cmd(
|
||||||
|
|||||||
Reference in New Issue
Block a user