summaryrefslogtreecommitdiff
path: root/packages/vscode-ide-companion/src
diff options
context:
space:
mode:
authorShreya Keshive <[email protected]>2025-07-28 16:55:00 -0400
committerGitHub <[email protected]>2025-07-28 20:55:00 +0000
commit83c4dddb7ee7ba34d7dec09d00819972d2e1ff5f (patch)
treecea410a84cfc3b8c4476c9d78e905f197517b63f /packages/vscode-ide-companion/src
parent1c1aa047ff71992a4f9b9a43f1572037d7401691 (diff)
Only enable IDE integration if gemini-cli is running in the same path as open workspace (#5068)
Diffstat (limited to 'packages/vscode-ide-companion/src')
-rw-r--r--packages/vscode-ide-companion/src/extension.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/vscode-ide-companion/src/extension.ts b/packages/vscode-ide-companion/src/extension.ts
index 647acae3..637b69e3 100644
--- a/packages/vscode-ide-companion/src/extension.ts
+++ b/packages/vscode-ide-companion/src/extension.ts
@@ -8,14 +8,35 @@ import * as vscode from 'vscode';
import { IDEServer } from './ide-server';
import { createLogger } from './utils/logger';
+const IDE_WORKSPACE_PATH_ENV_VAR = 'GEMINI_CLI_IDE_WORKSPACE_PATH';
+
let ideServer: IDEServer;
let logger: vscode.OutputChannel;
let log: (message: string) => void = () => {};
+function updateWorkspacePath(context: vscode.ExtensionContext) {
+ const workspaceFolders = vscode.workspace.workspaceFolders;
+ if (workspaceFolders && workspaceFolders.length === 1) {
+ const workspaceFolder = workspaceFolders[0];
+ context.environmentVariableCollection.replace(
+ IDE_WORKSPACE_PATH_ENV_VAR,
+ workspaceFolder.uri.fsPath,
+ );
+ } else {
+ context.environmentVariableCollection.replace(
+ IDE_WORKSPACE_PATH_ENV_VAR,
+ '',
+ );
+ }
+}
+
export async function activate(context: vscode.ExtensionContext) {
logger = vscode.window.createOutputChannel('Gemini CLI IDE Companion');
log = createLogger(context, logger);
log('Extension activated');
+
+ updateWorkspacePath(context);
+
ideServer = new IDEServer(log);
try {
await ideServer.start(context);
@@ -25,6 +46,9 @@ export async function activate(context: vscode.ExtensionContext) {
}
context.subscriptions.push(
+ vscode.workspace.onDidChangeWorkspaceFolders(() => {
+ updateWorkspacePath(context);
+ }),
vscode.commands.registerCommand('gemini-cli.runGeminiCLI', () => {
const geminiCmd = 'gemini';
const terminal = vscode.window.createTerminal(`Gemini CLI`);