summaryrefslogtreecommitdiff
path: root/packages/core/src/ide/ide-client.ts
diff options
context:
space:
mode:
authorchristine betts <[email protected]>2025-07-30 22:36:24 +0000
committerGitHub <[email protected]>2025-07-30 22:36:24 +0000
commit325bb8913776c60b763ee5f66375a4ca90d22ce0 (patch)
treeeb2aaf9fa1f826e9cfeff3e1507457aeb61d8fdf /packages/core/src/ide/ide-client.ts
parentac1bb5ee4275e508dfc2256bbd5ca012e4a4f469 (diff)
Add toggleable IDE mode setting (#5146)
Diffstat (limited to 'packages/core/src/ide/ide-client.ts')
-rw-r--r--packages/core/src/ide/ide-client.ts20
1 files changed, 16 insertions, 4 deletions
diff --git a/packages/core/src/ide/ide-client.ts b/packages/core/src/ide/ide-client.ts
index 4dd720dd..be24db3e 100644
--- a/packages/core/src/ide/ide-client.ts
+++ b/packages/core/src/ide/ide-client.ts
@@ -41,14 +41,14 @@ export class IdeClient {
private readonly currentIde: DetectedIde | undefined;
private readonly currentIdeDisplayName: string | undefined;
- private constructor(ideMode: boolean) {
- if (!ideMode) {
- return;
- }
+ constructor(ideMode: boolean) {
this.currentIde = detectIde();
if (this.currentIde) {
this.currentIdeDisplayName = getIdeDisplayName(this.currentIde);
}
+ if (!ideMode) {
+ return;
+ }
this.init().catch((err) => {
logger.debug('Failed to initialize IdeClient:', err);
});
@@ -130,6 +130,10 @@ export class IdeClient {
};
}
+ async reconnect(ideMode: boolean) {
+ IdeClient.instance = new IdeClient(ideMode);
+ }
+
private async establishConnection(port: string) {
let transport: StreamableHTTPClientTransport | undefined;
try {
@@ -189,7 +193,15 @@ export class IdeClient {
await this.establishConnection(port);
}
+ dispose() {
+ this.client?.close();
+ }
+
getDetectedIdeDisplayName(): string | undefined {
return this.currentIdeDisplayName;
}
+
+ setDisconnected() {
+ this.setState(IDEConnectionStatus.Disconnected);
+ }
}