summaryrefslogtreecommitdiff
path: root/packages/vscode-ide-companion/src/extension.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/vscode-ide-companion/src/extension.ts')
-rw-r--r--packages/vscode-ide-companion/src/extension.ts28
1 files changed, 25 insertions, 3 deletions
diff --git a/packages/vscode-ide-companion/src/extension.ts b/packages/vscode-ide-companion/src/extension.ts
index ecc63048..62901793 100644
--- a/packages/vscode-ide-companion/src/extension.ts
+++ b/packages/vscode-ide-companion/src/extension.ts
@@ -5,10 +5,32 @@
*/
import * as vscode from 'vscode';
-import { startIDEServer } from './ide-server';
+import { IDEServer } from './ide-server';
+
+let ideServer: IDEServer;
+let logger: vscode.OutputChannel;
export async function activate(context: vscode.ExtensionContext) {
- startIDEServer(context);
+ logger = vscode.window.createOutputChannel('Gemini CLI IDE Companion');
+ logger.show();
+ logger.appendLine('Starting Gemini CLI IDE Companion server...');
+ ideServer = new IDEServer(logger);
+ try {
+ await ideServer.start(context);
+ } catch (err) {
+ const message = err instanceof Error ? err.message : String(err);
+ logger.appendLine(`Failed to start IDE server: ${message}`);
+ }
}
-export function deactivate() {}
+export function deactivate() {
+ if (ideServer) {
+ logger.appendLine('Deactivating Gemini CLI IDE Companion...');
+ return ideServer.stop().finally(() => {
+ logger.dispose();
+ });
+ }
+ if (logger) {
+ logger.dispose();
+ }
+}