fix: more readable value name (#1521)

This commit is contained in:
yetone
2025-03-07 20:27:11 +08:00
committed by GitHub
parent 6c7c5464ca
commit 4d983532a1
6 changed files with 39 additions and 35 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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