|
|
@@ -6,6 +6,14 @@ import { mentionRegex } from "@roo/context-mentions"
|
|
|
|
|
|
import { escapeSpaces } from "./path-mentions"
|
|
|
|
|
|
+/**
|
|
|
+ * Gets the description for a mode, prioritizing description > whenToUse > roleDefinition
|
|
|
+ * and taking only the first line
|
|
|
+ */
|
|
|
+function getModeDescription(mode: ModeConfig): string {
|
|
|
+ return (mode.description || mode.whenToUse || mode.roleDefinition).split("\n")[0]
|
|
|
+}
|
|
|
+
|
|
|
export interface SearchResult {
|
|
|
path: string
|
|
|
type: "file" | "folder"
|
|
|
@@ -137,13 +145,13 @@ export function getContextMenuOptions(
|
|
|
type: ContextMenuOptionType.Mode,
|
|
|
value: result.item.original.slug,
|
|
|
label: result.item.original.name,
|
|
|
- description: (result.item.original.whenToUse || result.item.original.roleDefinition).split("\n")[0],
|
|
|
+ description: getModeDescription(result.item.original),
|
|
|
}))
|
|
|
: modes.map((mode) => ({
|
|
|
type: ContextMenuOptionType.Mode,
|
|
|
value: mode.slug,
|
|
|
label: mode.name,
|
|
|
- description: (mode.description || mode.whenToUse || mode.roleDefinition).split("\n")[0],
|
|
|
+ description: getModeDescription(mode),
|
|
|
}))
|
|
|
|
|
|
return matchingModes.length > 0 ? matchingModes : [{ type: ContextMenuOptionType.NoResults }]
|