fix(platform): detect Antigravity CLI aliases

This commit is contained in:
DhanushSantosh
2026-01-11 23:22:13 +05:30
parent 6d267ce0fa
commit 01cf81a105
3 changed files with 24 additions and 5 deletions

View File

@@ -4,6 +4,9 @@ import { FolderOpen } from 'lucide-react';
type IconProps = ComponentProps<'svg'>;
type IconComponent = ComponentType<IconProps>;
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,

View File

@@ -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<string, string> = {
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',

View File

@@ -87,11 +87,15 @@ async function findMacApp(appName: string): Promise<string | null> {
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<EditorInfo | nu
}
// Try CLI command first (works on all platforms)
if (await commandExists(definition.cliCommand)) {
return { name: definition.name, command: definition.cliCommand };
const cliCandidates = [definition.cliCommand, ...(definition.cliAliases ?? [])];
for (const cliCommand of cliCandidates) {
if (await commandExists(cliCommand)) {
return { name: definition.name, command: cliCommand };
}
}
// Try macOS app bundle (checks /Applications and ~/Applications)