summaryrefslogtreecommitdiff
path: root/packages/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src')
-rw-r--r--packages/core/src/services/ideContext.test.ts15
-rw-r--r--packages/core/src/services/ideContext.ts9
-rw-r--r--packages/core/src/tools/mcp-client.ts3
3 files changed, 27 insertions, 0 deletions
diff --git a/packages/core/src/services/ideContext.test.ts b/packages/core/src/services/ideContext.test.ts
index 0e6ff045..9aa4c013 100644
--- a/packages/core/src/services/ideContext.test.ts
+++ b/packages/core/src/services/ideContext.test.ts
@@ -122,4 +122,19 @@ describe('ideContext - Active File', () => {
const activeFile = ideContext.getActiveFileContext();
expect(activeFile).toEqual(testFile);
});
+
+ it('should clear the active file context', () => {
+ const testFile = {
+ filePath: '/path/to/test/file.ts',
+ cursor: { line: 5, character: 10 },
+ };
+
+ ideContext.setActiveFileContext(testFile);
+
+ expect(ideContext.getActiveFileContext()).toEqual(testFile);
+
+ ideContext.clearActiveFileContext();
+
+ expect(ideContext.getActiveFileContext()).toBeUndefined();
+ });
});
diff --git a/packages/core/src/services/ideContext.ts b/packages/core/src/services/ideContext.ts
index 6bbe8cb9..b5f0b4af 100644
--- a/packages/core/src/services/ideContext.ts
+++ b/packages/core/src/services/ideContext.ts
@@ -69,6 +69,14 @@ export function createIdeContextStore() {
}
/**
+ * Clears the active file context and notifies all registered subscribers of the change.
+ */
+ function clearActiveFileContext(): void {
+ activeFileContext = undefined;
+ notifySubscribers();
+ }
+
+ /**
* Retrieves the current active file context.
* @returns The `ActiveFile` object if a file is active, otherwise `undefined`.
*/
@@ -96,6 +104,7 @@ export function createIdeContextStore() {
setActiveFileContext,
getActiveFileContext,
subscribeToActiveFile,
+ clearActiveFileContext,
};
}
diff --git a/packages/core/src/tools/mcp-client.ts b/packages/core/src/tools/mcp-client.ts
index 24c975c3..5849884d 100644
--- a/packages/core/src/tools/mcp-client.ts
+++ b/packages/core/src/tools/mcp-client.ts
@@ -215,6 +215,9 @@ export async function connectAndDiscover(
mcpClient.onerror = (error) => {
console.error(`MCP ERROR (${mcpServerName}):`, error.toString());
updateMCPServerStatus(mcpServerName, MCPServerStatus.DISCONNECTED);
+ if (mcpServerName === IDE_SERVER_NAME) {
+ ideContext.clearActiveFileContext();
+ }
};
if (mcpServerName === IDE_SERVER_NAME) {