From 595ea56fc18b625e072a07ec6a99cbfa677a2761 Mon Sep 17 00:00:00 2001 From: yetone Date: Wed, 16 Oct 2024 16:23:02 +0800 Subject: [PATCH] fix: compatible with backquoted returns (#728) --- lua/avante/sidebar.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lua/avante/sidebar.lua b/lua/avante/sidebar.lua index e2a4c08..196f64a 100644 --- a/lua/avante/sidebar.lua +++ b/lua/avante/sidebar.lua @@ -175,12 +175,18 @@ local function transform_result_content(original_content, result_content, code_l local line_content = result_lines[i] if line_content == "" then is_searching = true + local next_line = result_lines[i + 1] + if next_line and next_line:match("^%s*```%w+$") then i = i + 1 end search_start = i + 1 last_search_tag_start_line = i elseif line_content == "" then is_searching = false + local search_end = i + local prev_line = result_lines[i - 1] + if prev_line and prev_line:match("^%s*```$") then search_end = i - 1 end + local start_line = 0 local end_line = 0 for j = 1, #original_lines - (search_end - search_start) + 1 do @@ -217,11 +223,14 @@ local function transform_result_content(original_content, result_content, code_l goto continue elseif line_content == "" then is_replacing = true + local next_line = result_lines[i + 1] + if next_line and next_line:match("^%s*```%w+$") then i = i + 1 end last_replace_tag_start_line = i goto continue elseif line_content == "" then is_replacing = false - table.insert(transformed_lines, "```") + local prev_line = result_lines[i - 1] + if not (prev_line and prev_line:match("^%s*```$")) then table.insert(transformed_lines, "```") end goto continue end table.insert(transformed_lines, line_content)