diff options
| author | Shreya Keshive <[email protected]> | 2025-07-16 17:33:56 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-16 21:33:56 +0000 |
| commit | 69a8ae6a89918f4255304975f8653ff808264bc8 (patch) | |
| tree | bb32342db9f0406bd4f75ffb9756ac81ff84d5a5 /packages/core/src | |
| parent | f6ee0d182bcb6c9c6e3c9d34174d8d984bbddb37 (diff) | |
Minor UX updates for IDE mode (#4311)
Diffstat (limited to 'packages/core/src')
| -rw-r--r-- | packages/core/src/services/ideContext.test.ts | 15 | ||||
| -rw-r--r-- | packages/core/src/services/ideContext.ts | 9 | ||||
| -rw-r--r-- | packages/core/src/tools/mcp-client.ts | 3 |
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) { |
