summaryrefslogtreecommitdiff
path: root/packages/core/src/ide/ide-client.ts
diff options
context:
space:
mode:
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);
+ }
}