fix: edit supports think tag (#1430)

This commit is contained in:
yetone
2025-02-28 15:24:36 +08:00
committed by GitHub
parent 4cbba9f95e
commit 814bba5ef2
2 changed files with 49 additions and 6 deletions

View File

@@ -165,11 +165,19 @@ function Selection:create_editing_input()
full_response = full_response .. chunk full_response = full_response .. chunk
local response_lines_ = vim.split(full_response, "\n") local response_lines_ = vim.split(full_response, "\n")
local response_lines = {} local response_lines = {}
for i, line in ipairs(response_lines_) do local in_code_block = false
if string.match(line, "^```") and (i == 1 or i == #response_lines_) then goto continue end for _, line in ipairs(response_lines_) do
if string.match(line, "^```$") then goto continue end if line:match("^<code>") then
in_code_block = true
line = line:gsub("^<code>", "")
if line ~= "" then table.insert(response_lines, line) end
elseif line:match("</code>") then
in_code_block = false
line = line:gsub("</code>.*$", "")
if line ~= "" then table.insert(response_lines, line) end
elseif in_code_block then
table.insert(response_lines, line) table.insert(response_lines, line)
::continue:: end
end end
if #response_lines == 1 then if #response_lines == 1 then
local first_line = response_lines[1] local first_line = response_lines[1]

View File

@@ -2,7 +2,7 @@
{% block extra_prompt %} {% block extra_prompt %}
Your task is to modify the provided code according to the user's request. Follow these instructions precisely: Your task is to modify the provided code according to the user's request. Follow these instructions precisely:
1. Return *ONLY* the complete modified code. 1. The code you return must be wrapped in <code></code>, and cannot contain any other code.
2. *DO NOT* include three backticks: {%raw%}```{%endraw%} in your suggestion! Treat the suggested code AS IS. 2. *DO NOT* include three backticks: {%raw%}```{%endraw%} in your suggestion! Treat the suggested code AS IS.
@@ -19,4 +19,39 @@ Your task is to modify the provided code according to the user's request. Follow
8. *ONLY* return the new code snippets to be updated, *DO NOT* return the entire file content. 8. *ONLY* return the new code snippets to be updated, *DO NOT* return the entire file content.
Remember that Your response SHOULD CONTAIN ONLY THE MODIFIED CODE to be used as DIRECT REPLACEMENT to the original file. Remember that Your response SHOULD CONTAIN ONLY THE MODIFIED CODE to be used as DIRECT REPLACEMENT to the original file.
There is an example below:
Original code:
{% raw -%}
```python
def add(a, b):
return a + b
result = add(2, 3)
print(result)
```
{%- endraw %}
Selected code:
{% raw -%}
```python
def add(a, b):
return a + b
```
{%- endraw %}
User request:
{% raw -%}
Add a print statement to the function
{%- endraw %}
Your response:
<code>
{% raw -%}
def add(a, b):
print("Adding", a, "and", b)
return a + b
{%- endraw %}
</code>
{% endblock %} {% endblock %}