From 9e3e8d06a2ea88762a52a8afeff71e8dd3a9257a Mon Sep 17 00:00:00 2001 From: yetone Date: Wed, 12 Mar 2025 17:57:09 +0800 Subject: [PATCH] feat: get custom tools from a function (#1567) --- lua/avante/config.lua | 2 +- lua/avante/llm_tools.lua | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lua/avante/config.lua b/lua/avante/config.lua index 7a92f5c..07c7f2c 100644 --- a/lua/avante/config.lua +++ b/lua/avante/config.lua @@ -465,7 +465,7 @@ M._defaults = { throttle = 600, }, disabled_tools = {}, ---@type string[] - ---@type AvanteLLMToolPublic[] + ---@type AvanteLLMToolPublic[] | fun(): AvanteLLMToolPublic[] custom_tools = {}, } diff --git a/lua/avante/llm_tools.lua b/lua/avante/llm_tools.lua index 7d237c5..b14f605 100644 --- a/lua/avante/llm_tools.lua +++ b/lua/avante/llm_tools.lua @@ -605,8 +605,10 @@ end ---@return AvanteLLMTool[] function M.get_tools() + local custom_tools = Config.custom_tools + if type(custom_tools) == "function" then custom_tools = custom_tools() end ---@type AvanteLLMTool[] - local unfiltered_tools = vim.list_extend(vim.list_extend({}, M._tools), Config.custom_tools) + local unfiltered_tools = vim.list_extend(vim.list_extend({}, M._tools), custom_tools) return vim .iter(unfiltered_tools) :filter(function(tool) ---@param tool AvanteLLMTool