fix: more readable value name (#1521)
This commit is contained in:
@@ -20,7 +20,7 @@ function M.switch_file_selector_provider(target_provider)
|
||||
})
|
||||
end
|
||||
|
||||
---@param target Provider
|
||||
---@param target ProviderName
|
||||
function M.switch_provider(target) require("avante.providers").refresh(target) end
|
||||
|
||||
---@param path string
|
||||
|
||||
@@ -20,7 +20,7 @@ local M = {}
|
||||
---@field custom_tools AvanteLLMToolPublic[]
|
||||
M._defaults = {
|
||||
debug = false,
|
||||
---@alias Provider "claude" | "openai" | "azure" | "gemini" | "vertex" | "cohere" | "copilot" | string
|
||||
---@alias ProviderName "claude" | "openai" | "azure" | "gemini" | "vertex" | "cohere" | "copilot" | string
|
||||
provider = "claude",
|
||||
-- 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
|
||||
@@ -452,8 +452,8 @@ M._defaults = {
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
M._options = {}
|
||||
|
||||
---@type Provider[]
|
||||
M.providers = {}
|
||||
---@type ProviderName[]
|
||||
M.provider_names = {}
|
||||
|
||||
---@param opts? avante.Config
|
||||
function M.setup(opts)
|
||||
@@ -472,7 +472,7 @@ function M.setup(opts)
|
||||
)
|
||||
|
||||
M._options = merged
|
||||
M.providers = vim
|
||||
M.provider_names = vim
|
||||
.iter(M._defaults)
|
||||
:filter(function(_, value) return type(value) == "table" and value.endpoint ~= nil end)
|
||||
:fold({}, function(acc, k)
|
||||
@@ -488,7 +488,7 @@ function M.setup(opts)
|
||||
M._options.vendors[k] = type(v) == "function" and v() or v
|
||||
end
|
||||
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
|
||||
|
||||
@@ -501,7 +501,7 @@ function M.override(opts)
|
||||
if next(M._options.vendors) ~= nil then
|
||||
for k, v in pairs(M._options.vendors) do
|
||||
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
|
||||
vim.validate({ vendors = { M._options.vendors, "table", true } })
|
||||
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
|
||||
|
||||
---@param provider Provider
|
||||
---@param provider_name ProviderName
|
||||
---@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
|
||||
---@param provider Provider
|
||||
---@param provider_name ProviderName
|
||||
---@return AvanteProviderFunctor
|
||||
function M.get_provider(provider)
|
||||
if M._options[provider] ~= nil then
|
||||
return vim.deepcopy(M._options[provider], true)
|
||||
elseif M.vendors and M.vendors[provider] ~= nil then
|
||||
return vim.deepcopy(M.vendors[provider], true)
|
||||
function M.get_provider(provider_name)
|
||||
if M._options[provider_name] ~= nil then
|
||||
return vim.deepcopy(M._options[provider_name], true)
|
||||
elseif M.vendors and M.vendors[provider_name] ~= nil then
|
||||
return vim.deepcopy(M.vendors[provider_name], true)
|
||||
else
|
||||
error("Failed to find provider: " .. provider, 2)
|
||||
error("Failed to find provider: " .. provider_name, 2)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ function M.check()
|
||||
end
|
||||
|
||||
-- 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
|
||||
H.ok("Found Copilot plugin")
|
||||
else
|
||||
|
||||
@@ -4,14 +4,14 @@ local Config = require("avante.config")
|
||||
---@class avante.ModelSelector
|
||||
local M = {}
|
||||
|
||||
---@param provider string
|
||||
---@param provider_name string
|
||||
---@param cfg table
|
||||
---@return table?
|
||||
local function create_model_entry(provider, cfg)
|
||||
local function create_model_entry(provider_name, cfg)
|
||||
return cfg.model
|
||||
and {
|
||||
name = cfg.display_name or (provider .. "/" .. cfg.model),
|
||||
provider = provider,
|
||||
name = cfg.display_name or (provider_name .. "/" .. cfg.model),
|
||||
provider_name = provider_name,
|
||||
model = cfg.model,
|
||||
}
|
||||
end
|
||||
@@ -20,8 +20,8 @@ function M.open()
|
||||
local models = {}
|
||||
|
||||
-- Collect models from main providers and vendors
|
||||
for _, provider in ipairs(Config.providers) do
|
||||
local entry = create_model_entry(provider, Config.get_provider(provider))
|
||||
for _, provider_name in ipairs(Config.provider_names) do
|
||||
local entry = create_model_entry(provider_name, Config.get_provider(provider_name))
|
||||
if entry then table.insert(models, entry) end
|
||||
end
|
||||
|
||||
@@ -37,11 +37,15 @@ function M.open()
|
||||
if not choice then return end
|
||||
|
||||
-- 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
|
||||
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)
|
||||
|
||||
@@ -196,7 +196,7 @@ M.env = E
|
||||
|
||||
M = setmetatable(M, {
|
||||
---@param t avante.Providers
|
||||
---@param k Provider
|
||||
---@param k ProviderName
|
||||
__index = function(t, k)
|
||||
---@type AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
||||
local Opts = M.get_config(k)
|
||||
@@ -270,14 +270,14 @@ function M.setup()
|
||||
end
|
||||
end
|
||||
|
||||
---@param provider Provider
|
||||
function M.refresh(provider)
|
||||
require("avante.config").override({ provider = provider })
|
||||
---@param provider_name ProviderName
|
||||
function M.refresh(provider_name)
|
||||
require("avante.config").override({ provider = provider_name })
|
||||
|
||||
---@type AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
||||
local p = M[Config.provider]
|
||||
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
|
||||
|
||||
---@param opts AvanteProvider | AvanteSupportedProvider | AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
||||
@@ -309,11 +309,11 @@ function M.parse_config(opts)
|
||||
end
|
||||
|
||||
---@private
|
||||
---@param provider Provider
|
||||
---@param provider_name ProviderName
|
||||
---@return AvanteProviderFunctor | AvanteBedrockProviderFunctor
|
||||
function M.get_config(provider)
|
||||
provider = provider or Config.provider
|
||||
local cur = Config.get_provider(provider)
|
||||
function M.get_config(provider_name)
|
||||
provider_name = provider_name or Config.provider
|
||||
local cur = Config.get_provider(provider_name)
|
||||
return type(cur) == "function" and cur() or cur
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user