diff options
Diffstat (limited to 'packages/vscode-ide-companion/src/extension.ts')
| -rw-r--r-- | packages/vscode-ide-companion/src/extension.ts | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/packages/vscode-ide-companion/src/extension.ts b/packages/vscode-ide-companion/src/extension.ts index 10aa41f8..a491ac41 100644 --- a/packages/vscode-ide-companion/src/extension.ts +++ b/packages/vscode-ide-companion/src/extension.ts @@ -85,21 +85,9 @@ export async function activate(context: vscode.ExtensionContext) { } if (!context.globalState.get(INFO_MESSAGE_SHOWN_KEY)) { - void vscode.window - .showInformationMessage( - 'Gemini CLI Companion extension successfully installed. Please restart your terminal to enable full IDE integration.', - 'Re-launch Gemini CLI', - ) - .then( - (selection) => { - if (selection === 'Re-launch Gemini CLI') { - void vscode.commands.executeCommand('gemini-cli.runGeminiCLI'); - } - }, - (err) => { - log(`Failed to show information message: ${String(err)}`); - }, - ); + void vscode.window.showInformationMessage( + 'Gemini CLI Companion extension successfully installed.', + ); context.globalState.update(INFO_MESSAGE_SHOWN_KEY, true); } @@ -107,11 +95,33 @@ export async function activate(context: vscode.ExtensionContext) { vscode.workspace.onDidChangeWorkspaceFolders(() => { updateWorkspacePath(context); }), - vscode.commands.registerCommand('gemini-cli.runGeminiCLI', () => { - const geminiCmd = 'gemini'; - const terminal = vscode.window.createTerminal(`Gemini CLI`); - terminal.show(); - terminal.sendText(geminiCmd); + vscode.commands.registerCommand('gemini-cli.runGeminiCLI', async () => { + const workspaceFolders = vscode.workspace.workspaceFolders; + if (!workspaceFolders || workspaceFolders.length === 0) { + vscode.window.showInformationMessage( + 'No folder open. Please open a folder to run Gemini CLI.', + ); + return; + } + + let selectedFolder: vscode.WorkspaceFolder | undefined; + if (workspaceFolders.length === 1) { + selectedFolder = workspaceFolders[0]; + } else { + selectedFolder = await vscode.window.showWorkspaceFolderPick({ + placeHolder: 'Select a folder to run Gemini CLI in', + }); + } + + if (selectedFolder) { + const geminiCmd = 'gemini'; + const terminal = vscode.window.createTerminal({ + name: `Gemini CLI (${selectedFolder.name})`, + cwd: selectedFolder.uri.fsPath, + }); + terminal.show(); + terminal.sendText(geminiCmd); + } }), vscode.commands.registerCommand('gemini-cli.showNotices', async () => { const noticePath = vscode.Uri.joinPath( |
