fix: hide internal properties of config (#1036)

This commit is contained in:
yetone
2025-01-05 18:27:23 +08:00
committed by GitHub
parent 9895ce7681
commit 48fc35f978
5 changed files with 29 additions and 31 deletions

View File

@@ -6,7 +6,7 @@ local Utils = require("avante.utils")
---@class avante.CoreConfig: avante.Config
local M = {}
---@class avante.Config
M.defaults = {
M._defaults = {
debug = false,
---@alias Provider "claude" | "openai" | "azure" | "gemini" | "vertex" | "cohere" | "copilot" | string
provider = "claude", -- Only recommend using Claude
@@ -247,7 +247,7 @@ M.defaults = {
}
---@type avante.Config
M.options = {}
M._options = {}
---@class avante.ConflictConfig: AvanteConflictConfig
---@field mappings AvanteConflictMappings
@@ -261,9 +261,9 @@ M.providers = {}
function M.setup(opts)
vim.validate({ opts = { opts, "table", true } })
M.options = vim.tbl_deep_extend(
M._options = vim.tbl_deep_extend(
"force",
M.defaults,
M._defaults,
opts or {},
---@type avante.Config
{
@@ -273,7 +273,7 @@ function M.setup(opts)
}
)
M.providers = vim
.iter(M.defaults)
.iter(M._defaults)
:filter(function(_, value) return type(value) == "table" and value.endpoint ~= nil end)
:fold({}, function(acc, k)
acc = vim.list_extend({}, acc)
@@ -281,21 +281,21 @@ function M.setup(opts)
return acc
end)
vim.validate({ provider = { M.options.provider, "string", false } })
vim.validate({ provider = { M._options.provider, "string", false } })
M.diff = vim.tbl_deep_extend(
"force",
{},
M.options.diff,
{ mappings = M.options.mappings.diff, highlights = M.options.highlights.diff }
M._options.diff,
{ mappings = M._options.mappings.diff, highlights = M._options.highlights.diff }
)
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 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
end
vim.validate({ vendors = { M.options.vendors, "table", true } })
M.providers = vim.list_extend(M.providers, vim.tbl_keys(M.options.vendors))
vim.validate({ vendors = { M._options.vendors, "table", true } })
M.providers = vim.list_extend(M.providers, vim.tbl_keys(M._options.vendors))
end
end
@@ -303,26 +303,26 @@ end
function M.override(opts)
vim.validate({ opts = { opts, "table", true } })
M.options = vim.tbl_deep_extend("force", M.options, opts or {})
M._options = vim.tbl_deep_extend("force", M._options, opts or {})
M.diff = vim.tbl_deep_extend(
"force",
{},
M.options.diff,
{ mappings = M.options.mappings.diff, highlights = M.options.highlights.diff }
M._options.diff,
{ mappings = M._options.mappings.diff, highlights = M._options.highlights.diff }
)
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 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
end
vim.validate({ vendors = { M.options.vendors, "table", true } })
vim.validate({ vendors = { M._options.vendors, "table", true } })
end
end
M = setmetatable(M, {
__index = function(_, k)
if M.options[k] then return M.options[k] end
if M._options[k] then return M._options[k] end
end,
})
@@ -332,14 +332,14 @@ M.get_window_width = function() return math.ceil(vim.o.columns * (M.windows.widt
---@param provider Provider
---@return boolean
M.has_provider = function(provider) return M.options[provider] ~= nil or M.vendors[provider] ~= nil end
M.has_provider = function(provider) return M._options[provider] ~= nil or M.vendors[provider] ~= nil end
---get supported providers
---@param provider Provider
---@return AvanteProviderFunctor
M.get_provider = function(provider)
if M.options[provider] ~= nil then
return vim.deepcopy(M.options[provider], true)
if M._options[provider] ~= nil then
return vim.deepcopy(M._options[provider], true)
elseif M.vendors[provider] ~= nil then
return vim.deepcopy(M.vendors[provider], true)
else