From 7ae74404f4197681e1847d368ecf07b365116e5e Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Fri, 4 Jul 2025 01:08:37 -0400 Subject: [PATCH] Fix inconsistent descriptions in slash commands (#5388) --- ...ext-mentions.test.ts => context-mentions.spec.ts} | 0 webview-ui/src/utils/context-mentions.ts | 12 ++++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) rename webview-ui/src/utils/__tests__/{context-mentions.test.ts => context-mentions.spec.ts} (100%) diff --git a/webview-ui/src/utils/__tests__/context-mentions.test.ts b/webview-ui/src/utils/__tests__/context-mentions.spec.ts similarity index 100% rename from webview-ui/src/utils/__tests__/context-mentions.test.ts rename to webview-ui/src/utils/__tests__/context-mentions.spec.ts diff --git a/webview-ui/src/utils/context-mentions.ts b/webview-ui/src/utils/context-mentions.ts index 3299bc4e08..889dca9dbe 100644 --- a/webview-ui/src/utils/context-mentions.ts +++ b/webview-ui/src/utils/context-mentions.ts @@ -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 }]