75 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
{# Uses https://mitsuhiko.github.io/minijinja-playground/ for testing:
 | 
						|
{
 | 
						|
  "ask": true,
 | 
						|
  "use_xml_format": true,
 | 
						|
  "question": "Refactor to include tab flow",
 | 
						|
  "code_lang": "lua",
 | 
						|
  "file_content": "local Config = require('avante.config')"
 | 
						|
}
 | 
						|
#}
 | 
						|
{%- if ask %}
 | 
						|
{%- if not use_xml_format -%}
 | 
						|
INSTRUCTION:{% else -%}
 | 
						|
<instruction>{% endif -%}
 | 
						|
{% block user_prompt %}
 | 
						|
Your primary task is to suggest code modifications with precise line number ranges. Follow these instructions meticulously:
 | 
						|
 | 
						|
1. Carefully analyze the original code, paying close attention to its structure and line numbers. Line numbers start from 1 and include ALL lines, even empty ones.
 | 
						|
 | 
						|
2. When suggesting modifications:
 | 
						|
  a. Use the language in the question to reply. If there are non-English parts in the question, use the language of those parts.
 | 
						|
  b. Explain why the change is necessary or beneficial.
 | 
						|
  c. If an image is provided, make sure to use the image in conjunction with the code snippet.
 | 
						|
  d. Provide the exact code snippet to be replaced using this format:
 | 
						|
{% raw %}
 | 
						|
Replace lines: {{start_line}}-{{end_line}}
 | 
						|
```{{language}}
 | 
						|
{{suggested_code}}
 | 
						|
```
 | 
						|
{% endraw %}
 | 
						|
3. Crucial guidelines for suggested code snippets:
 | 
						|
  - The content regarding line numbers MUST strictly follow the format "Replace lines: {%raw%}{{start_line}}{%endraw%}-{%raw%}{{end_line}}{%endraw%}". Do not be lazy!
 | 
						|
  - Only apply the change(s) suggested by the most recent assistant message (before your generation).
 | 
						|
  - Do not make any unrelated changes to the code.
 | 
						|
  - Produce a valid full rewrite of the entire original file without skipping any lines. Do not be lazy!
 | 
						|
  - Do not arbitrarily delete pre-existing comments/empty Lines.
 | 
						|
  - Do not omit large parts of the original file for no reason.
 | 
						|
  - Do not omit any needed changes from the requisite messages/code blocks.
 | 
						|
  - If there is a clicked code block, bias towards just applying that (and applying other changes implied).
 | 
						|
  - Please keep your suggested code changes minimal, and do not include irrelevant lines in the code snippet.
 | 
						|
  - Maintain the SAME indentation in the returned code as in the source code
 | 
						|
 | 
						|
4. Crucial guidelines for line numbers:
 | 
						|
  - The range {%raw%}{{start_line}}{%endraw%}-{%raw%}{{end_line}}{%endraw%} is INCLUSIVE. Both start_line and end_line are included in the replacement.
 | 
						|
  - Count EVERY line, including empty lines and comments lines, comments. Do not be lazy!
 | 
						|
  - Use the same number for start and end lines for single-line changes.
 | 
						|
  - For multi-line changes, ensure the range covers ALL affected lines, from first to last.
 | 
						|
  - Double-check that your line numbers align perfectly with the original code structure.
 | 
						|
 | 
						|
5. Final check:
 | 
						|
  - Review all suggestions, ensuring each line number is correct, especially the start_line and end_line.
 | 
						|
  - Confirm that no unrelated code is accidentally modified or deleted.
 | 
						|
  - Verify that the start_line and end_line correctly include all intended lines for replacement.
 | 
						|
  - Perform a final alignment check to ensure your line numbers haven't shifted, especially the start_line.
 | 
						|
  - Double-check that your line numbers align perfectly with the original code structure.
 | 
						|
  - DO NOT return the complete modified code with applied changes!
 | 
						|
 | 
						|
Remember that ACCURATE line numbers are CRITICAL. The range {%raw%}{{start_line}}{%endraw%} to {%raw%}{{end_line}}{%endraw%} must include ALL LINES to be replaced. Double-check ALL RANGES before finalizing your response, and MAKE SURE THAT {%raw%}{{start_line}}{%endraw%} hasn't been shifted down. ENSURE line numbers MATCH the original code structure and indentation ARE PRESERVED.
 | 
						|
{% endblock %}
 | 
						|
{%- if use_xml_format -%}
 | 
						|
</instruction>
 | 
						|
 | 
						|
<question>{{question}}</question>
 | 
						|
{%- else %}
 | 
						|
QUESTION:
 | 
						|
{{question}}
 | 
						|
{%- endif %}
 | 
						|
{% else %}
 | 
						|
{% if use_xml_format -%}
 | 
						|
<question>{{question}}</question>
 | 
						|
{% else %}
 | 
						|
QUESTION:
 | 
						|
{{question}}
 | 
						|
{%- endif %}
 | 
						|
{%- endif %}
 |