From 7aec52ff3e87a60ae1b35b6b4dbde31a8bb360b1 Mon Sep 17 00:00:00 2001 From: guanghechen <42513619+guanghechen@users.noreply.github.com> Date: Wed, 2 Jul 2025 18:54:41 +0800 Subject: [PATCH] improve: support to customize the spinners (#2397) --- README.md | 5 ++++ README_zh.md | 5 ++++ lua/avante/config.lua | 42 ++++++++++++++++++++++++++++++++++ lua/avante/sidebar.lua | 4 ++-- lua/avante/ui/prompt_input.lua | 42 +--------------------------------- 5 files changed, 55 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index 98ed1ba..ec8ccbe 100644 --- a/README.md +++ b/README.md @@ -453,6 +453,11 @@ _See [config.lua#L9](./lua/avante/config.lua) for the full config_ align = "center", -- left, center, right for title rounded = true, }, + spinner = { + editing = { "⡀", "⠄", "⠂", "⠁", "⠈", "⠐", "⠠", "⢀", "⣀", "⢄", "⢂", "⢁", "⢈", "⢐", "⢠", "⣠", "⢤", "⢢", "⢡", "⢨", "⢰", "⣰", "⢴", "⢲", "⢱", "⢸", "⣸", "⢼", "⢺", "⢹", "⣹", "⢽", "⢻", "⣻", "⢿", "⣿" }, + generating = { "·", "✢", "✳", "∗", "✻", "✽" }, -- Spinner characters for the 'generating' state + thinking = { "🤯", "🙄" }, -- Spinner characters for the 'thinking' state + }, input = { prefix = "> ", height = 8, -- Height of the input window in vertical layout diff --git a/README_zh.md b/README_zh.md index 3295d08..ee8f891 100644 --- a/README_zh.md +++ b/README_zh.md @@ -396,6 +396,11 @@ _请参见 [config.lua#L9](./lua/avante/config.lua) 以获取完整配置_ align = "center", -- left, center, right 用于标题 rounded = true, }, + spinner = { + editing = { "⡀", "⠄", "⠂", "⠁", "⠈", "⠐", "⠠", "⢀", "⣀", "⢄", "⢂", "⢁", "⢈", "⢐", "⢠", "⣠", "⢤", "⢢", "⢡", "⢨", "⢰", "⣰", "⢴", "⢲", "⢱", "⢸", "⣸", "⢼", "⢺", "⢹", "⣹", "⢽", "⢻", "⣻", "⢿", "⣿" }, + generating = { "·", "✢", "✳", "∗", "✻", "✽" }, -- '生成中' 状态的旋转字符 + thinking = { "🤯", "🙄" }, -- '思考中' 状态的旋转字符 + }, input = { prefix = "> ", height = 8, -- 垂直布局中输入窗口的高度 diff --git a/lua/avante/config.lua b/lua/avante/config.lua index d989e11..51b1e76 100644 --- a/lua/avante/config.lua +++ b/lua/avante/config.lua @@ -558,6 +558,48 @@ M._defaults = { align = "center", -- left, center, right for title rounded = true, }, + spinner = { + editing = { + "⡀", + "⠄", + "⠂", + "⠁", + "⠈", + "⠐", + "⠠", + "⢀", + "⣀", + "⢄", + "⢂", + "⢁", + "⢈", + "⢐", + "⢠", + "⣠", + "⢤", + "⢢", + "⢡", + "⢨", + "⢰", + "⣰", + "⢴", + "⢲", + "⢱", + "⢸", + "⣸", + "⢼", + "⢺", + "⢹", + "⣹", + "⢽", + "⢻", + "⣻", + "⢿", + "⣿", + }, + generating = { "·", "✢", "✳", "∗", "✻", "✽" }, + thinking = { "🤯", "🙄" }, + }, input = { prefix = "> ", height = 6, -- Height of the input window in vertical layout diff --git a/lua/avante/sidebar.lua b/lua/avante/sidebar.lua index bab19a0..ebc43ec 100644 --- a/lua/avante/sidebar.lua +++ b/lua/avante/sidebar.lua @@ -89,8 +89,8 @@ function Sidebar:new(id) chat_history = nil, current_state = nil, state_timer = nil, - state_spinner_chars = { "·", "✢", "✳", "∗", "✻", "✽" }, - thinking_spinner_chars = { "🤯", "🙄" }, + state_spinner_chars = Config.windows.spinner.generating, + thinking_spinner_chars = Config.windows.spinner.thinking, state_spinner_idx = 1, state_extmark_id = nil, scroll = true, diff --git a/lua/avante/ui/prompt_input.lua b/lua/avante/ui/prompt_input.lua index cb5c4b1..0b6ec8b 100644 --- a/lua/avante/ui/prompt_input.lua +++ b/lua/avante/ui/prompt_input.lua @@ -44,47 +44,7 @@ function PromptInput:new(opts) obj.close_on_submit = opts.close_on_submit or false obj.win_opts = opts.win_opts obj.default_value = opts.default_value - obj.spinner_chars = { - "⡀", - "⠄", - "⠂", - "⠁", - "⠈", - "⠐", - "⠠", - "⢀", - "⣀", - "⢄", - "⢂", - "⢁", - "⢈", - "⢐", - "⢠", - "⣠", - "⢤", - "⢢", - "⢡", - "⢨", - "⢰", - "⣰", - "⢴", - "⢲", - "⢱", - "⢸", - "⣸", - "⢼", - "⢺", - "⢹", - "⣹", - "⢽", - "⢻", - "⣻", - "⢿", - "⣿", - "⣶", - "⣤", - "⣀", - } + obj.spinner_chars = Config.windows.spinner.editing obj.spinner_index = 1 obj.spinner_timer = nil obj.spinner_active = false