From 483c57013c9b02a049dab059f58e49a0bd192eb3 Mon Sep 17 00:00:00 2001 From: Waitzz <59369014+Waitzz@users.noreply.github.com> Date: Sun, 21 Dec 2025 19:34:24 +0800 Subject: [PATCH] fix: history selector snacks.nvim live search error (#2870) --- lua/avante/ui/selector/providers/snacks.lua | 31 +++++++++++---------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/lua/avante/ui/selector/providers/snacks.lua b/lua/avante/ui/selector/providers/snacks.lua index df420cd..2b29cd1 100644 --- a/lua/avante/ui/selector/providers/snacks.lua +++ b/lua/avante/ui/selector/providers/snacks.lua @@ -8,23 +8,26 @@ function M.show(selector) Utils.error("Snacks is not set up. Please install and set up Snacks to use it as a file selector.") return end - local function snacks_finder() + local function snacks_finder(opts, ctx) + local query = ctx.filter.search or "" local items = {} for i, item in ipairs(selector.items) do if not vim.list_contains(selector.selected_item_ids, item.id) then - table.insert(items, { - formatted = item.title, - text = item.title, - item = item, - idx = i, - preview = selector.get_preview_content and (function() - local content, filetype = selector.get_preview_content(item.id) - return { - text = content, - ft = filetype, - } - end)() or nil, - }) + if query == "" or item.title:match(query:gsub("[%(%)%.%%%+%-%*%?%[%]%^%$]", "%%%1")) then + table.insert(items, { + formatted = item.title, + text = item.title, + item = item, + idx = i, + preview = selector.get_preview_content and (function() + local content, filetype = selector.get_preview_content(item.id) + return { + text = content, + ft = filetype, + } + end)() or nil, + }) + end end end return items