diff --git a/apps/ui/src/components/icons/editor-icons.tsx b/apps/ui/src/components/icons/editor-icons.tsx index 5e3cd092..bf32a38a 100644 --- a/apps/ui/src/components/icons/editor-icons.tsx +++ b/apps/ui/src/components/icons/editor-icons.tsx @@ -4,6 +4,9 @@ import { FolderOpen } from 'lucide-react'; type IconProps = ComponentProps<'svg'>; type IconComponent = ComponentType; +const ANTIGRAVITY_COMMANDS = ['antigravity', 'agy'] as const; +const [PRIMARY_ANTIGRAVITY_COMMAND, LEGACY_ANTIGRAVITY_COMMAND] = ANTIGRAVITY_COMMANDS; + /** * Cursor editor logo icon - from LobeHub icons */ @@ -160,7 +163,8 @@ export function getEditorIcon(command: string): IconComponent { webstorm: WebStormIcon, xed: XcodeIcon, studio: AndroidStudioIcon, - agy: AntigravityIcon, + [PRIMARY_ANTIGRAVITY_COMMAND]: AntigravityIcon, + [LEGACY_ANTIGRAVITY_COMMAND]: AntigravityIcon, open: FinderIcon, explorer: FolderOpen, 'xdg-open': FolderOpen, diff --git a/apps/ui/src/lib/electron.ts b/apps/ui/src/lib/electron.ts index 27780fba..c93eba79 100644 --- a/apps/ui/src/lib/electron.ts +++ b/apps/ui/src/lib/electron.ts @@ -1646,6 +1646,8 @@ function createMockWorktreeAPI(): WorktreeAPI { }, openInEditor: async (worktreePath: string, editorCommand?: string) => { + const ANTIGRAVITY_EDITOR_COMMAND = 'antigravity'; + const ANTIGRAVITY_LEGACY_COMMAND = 'agy'; // Map editor commands to display names const editorNameMap: Record = { cursor: 'Cursor', @@ -1658,7 +1660,8 @@ function createMockWorktreeAPI(): WorktreeAPI { webstorm: 'WebStorm', xed: 'Xcode', studio: 'Android Studio', - agy: 'Antigravity', + [ANTIGRAVITY_EDITOR_COMMAND]: 'Antigravity', + [ANTIGRAVITY_LEGACY_COMMAND]: 'Antigravity', open: 'Finder', explorer: 'Explorer', 'xdg-open': 'File Manager', diff --git a/libs/platform/src/editor.ts b/libs/platform/src/editor.ts index c9260a27..a29608d7 100644 --- a/libs/platform/src/editor.ts +++ b/libs/platform/src/editor.ts @@ -87,11 +87,15 @@ async function findMacApp(appName: string): Promise { interface EditorDefinition { name: string; cliCommand: string; + cliAliases?: readonly string[]; macAppName: string; /** If true, only available on macOS */ macOnly?: boolean; } +const ANTIGRAVITY_CLI_COMMANDS = ['antigravity', 'agy'] as const; +const [PRIMARY_ANTIGRAVITY_COMMAND, ...LEGACY_ANTIGRAVITY_COMMANDS] = ANTIGRAVITY_CLI_COMMANDS; + /** * List of supported editors in priority order */ @@ -106,7 +110,12 @@ const SUPPORTED_EDITORS: EditorDefinition[] = [ { name: 'WebStorm', cliCommand: 'webstorm', macAppName: 'WebStorm' }, { name: 'Xcode', cliCommand: 'xed', macAppName: 'Xcode', macOnly: true }, { name: 'Android Studio', cliCommand: 'studio', macAppName: 'Android Studio' }, - { name: 'Antigravity', cliCommand: 'agy', macAppName: 'Antigravity' }, + { + name: 'Antigravity', + cliCommand: PRIMARY_ANTIGRAVITY_COMMAND, + cliAliases: LEGACY_ANTIGRAVITY_COMMANDS, + macAppName: 'Antigravity', + }, ]; /** @@ -120,8 +129,11 @@ async function findEditor(definition: EditorDefinition): Promise