fix: incorrect minimize snippets (#1265)

This commit is contained in:
yetone 2025-02-13 13:39:24 +08:00 committed by GitHub
parent 763dbe064d
commit 25111c6df3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -770,27 +770,22 @@ local function minimize_snippet(original_lines, snippet)
return new_snippets
end
---@param snippets_map table<string, AvanteCodeSnippet[]>
---@param filepath string
---@param snippets AvanteCodeSnippet[]
---@return table<string, AvanteCodeSnippet[]>
function Sidebar:minimize_snippets(snippets_map)
function Sidebar:minimize_snippets(filepath, snippets)
local original_lines = {}
if vim.tbl_count(snippets_map) > 0 then
local filepaths = vim.tbl_keys(snippets_map)
local original_lines_ = Utils.read_file_from_buf_or_disk(filepaths[1])
if original_lines_ then original_lines = original_lines_ end
end
local original_lines_ = Utils.read_file_from_buf_or_disk(filepath)
if original_lines_ then original_lines = original_lines_ end
local results = {}
for filepath, snippets in pairs(snippets_map) do
for _, snippet in ipairs(snippets) do
local new_snippets = minimize_snippet(original_lines, snippet)
if new_snippets then
results[filepath] = results[filepath] or {}
for _, new_snippet in ipairs(new_snippets) do
table.insert(results[filepath], new_snippet)
end
for _, snippet in ipairs(snippets) do
local new_snippets = minimize_snippet(original_lines, snippet)
if new_snippets then
for _, new_snippet in ipairs(new_snippets) do
table.insert(results, new_snippet)
end
end
end
@ -823,11 +818,10 @@ function Sidebar:apply(current_cursor)
selected_snippets_map = all_snippets_map
end
if Config.behaviour.minimize_diff then selected_snippets_map = self:minimize_snippets(selected_snippets_map) end
vim.defer_fn(function()
api.nvim_set_current_win(self.code.winid)
for filepath, snippets in pairs(selected_snippets_map) do
if Config.behaviour.minimize_diff then snippets = self:minimize_snippets(filepath, snippets) end
local bufnr = Utils.get_or_create_buffer_with_filepath(filepath)
local path_ = PPath:new(filepath)
path_:parent():mkdir({ parents = true, exists_ok = true })