diff --git a/frontend/src/lib/components/copilot/chat/AvailableContextList.svelte b/frontend/src/lib/components/copilot/chat/AvailableContextList.svelte
index e521a31679..468e5ceafc 100644
--- a/frontend/src/lib/components/copilot/chat/AvailableContextList.svelte
+++ b/frontend/src/lib/components/copilot/chat/AvailableContextList.svelte
@@ -8,11 +8,24 @@
export let stringSearch = ''
export let selectedIndex = 0
+ // Define priority map for context types
+ const typePriority = {
+ code: 1,
+ diff: 2,
+ default: 3
+ }
+
+ $: sortedAvailableContext = availableContext.sort((a, b) => {
+ const priorityA = typePriority[a.type] || typePriority.default
+ const priorityB = typePriority[b.type] || typePriority.default
+ return priorityA - priorityB
+ })
+
$: actualAvailableContext = showAllAvailable
- ? availableContext.filter(
+ ? sortedAvailableContext.filter(
(c) => !stringSearch || c.title.toLowerCase().includes(stringSearch.toLowerCase())
)
- : availableContext.filter(
+ : sortedAvailableContext.filter(
(c) =>
!selectedContext.find((sc) => sc.type === c.type && sc.title === c.title) &&
(!stringSearch || c.title.toLowerCase().includes(stringSearch.toLowerCase()))
@@ -32,7 +45,7 @@
on:click={() => onSelect(element)}
>
- {element.title}
+ {element.type === 'diff' ? element.title.replace(/_/g, ' ') : element.title}
{/each}
{/if}
diff --git a/frontend/src/lib/components/copilot/chat/ContextElementBadge.svelte b/frontend/src/lib/components/copilot/chat/ContextElementBadge.svelte
index 25baf11ae0..bfb0b10f03 100644
--- a/frontend/src/lib/components/copilot/chat/ContextElementBadge.svelte
+++ b/frontend/src/lib/components/copilot/chat/ContextElementBadge.svelte
@@ -42,7 +42,9 @@
{/if}
- {contextElement.title}
+ {contextElement.type === 'diff'
+ ? contextElement.title.replace(/_/g, ' ')
+ : contextElement.title}
diff --git a/frontend/src/lib/components/copilot/chat/ContextManager.svelte.ts b/frontend/src/lib/components/copilot/chat/ContextManager.svelte.ts
index e05e6fd622..ad89b9b672 100644
--- a/frontend/src/lib/components/copilot/chat/ContextManager.svelte.ts
+++ b/frontend/src/lib/components/copilot/chat/ContextManager.svelte.ts
@@ -93,7 +93,7 @@ export default class ContextManager {
if (scriptOptions.lastSavedCode && scriptOptions.lastSavedCode !== scriptOptions.code) {
newAvailableContext.push({
type: 'diff',
- title: 'diff_with_last_saved_draft',
+ title: 'diff_with_last_saved_draft', // can't use spaces in the title, because it will break the word match in the context text area hightlighting logic
content: scriptOptions.lastSavedCode ?? '',
diff: diffLines(scriptOptions.lastSavedCode ?? '', scriptOptions.code),
lang: scriptOptions.lang