{{#if language_name}}
Here's a file of {{language_name}} that I'm going to ask you to make an edit to.
{{else}}
Here's a file of text that I'm going to ask you to make an edit to.
{{/if}}

{{#if is_insert}}
The point you'll need to insert at is marked with <insert_here></insert_here>.
{{else}}
The section you'll need to rewrite is marked with <rewrite_this></rewrite_this> tags.
{{/if}}

<document>
{{{document_content}}}
</document>

{{#if is_truncated}}
The context around the relevant section has been truncated (possibly in the middle of a line) for brevity.
{{/if}}

{{#if is_insert}}
You can't replace {{content_type}}, your answer will be inserted in place of the `<insert_here></insert_here>` tags. Don't include the insert_here tags in your output.

Generate {{content_type}} based on the following prompt:

<prompt>
{{{user_prompt}}}
</prompt>

Match the indentation in the original file in the inserted {{content_type}}, don't include any indentation on blank lines.

Return ONLY the {{content_type}} to insert. Do NOT include any XML tags like <document>, <insert_here>, or any surrounding markup from the input.

Respond with a code block containing the {{content_type}} to insert. Replace \{{INSERTED_CODE}} with your actual {{content_type}}:

```
\{{INSERTED_CODE}}
```
{{else}}
Edit the section of {{content_type}} in <rewrite_this></rewrite_this> tags based on the following prompt:

<prompt>
{{{user_prompt}}}
</prompt>

{{#if rewrite_section}}
And here's the section to rewrite based on that prompt again for reference:

<rewrite_this>
{{{rewrite_section}}}
</rewrite_this>

{{#if diagnostic_errors}}
Below are the diagnostic errors visible to the user.  If the user requests problems to be fixed, use this information, but do not try to fix these errors if the user hasn't asked you to.

{{#each diagnostic_errors}}
<diagnostic_error>
    <line_number>{{line_number}}</line_number>
    <error_message>{{error_message}}</error_message>
    <code_content>{{code_content}}</code_content>
</diagnostic_error>
{{/each}}
{{/if}}

{{/if}}

Only make changes that are necessary to fulfill the prompt, leave everything else as-is. All surrounding {{content_type}} will be preserved.

Start at the indentation level in the original file in the rewritten {{content_type}}. Don't stop until you've rewritten the entire section, even if you have no more changes to make, always write out the whole section with no unnecessary elisions.

Return ONLY the rewritten {{content_type}}. Do NOT include any XML tags like <document>, <rewrite_this>, or any surrounding markup from the input.

Respond with a code block containing the rewritten {{content_type}}. Replace \{{REWRITTEN_CODE}} with your actual rewritten {{content_type}}:

```
\{{REWRITTEN_CODE}}
```
{{/if}}
