mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-14 17:54:53 +01:00
* fix: signature help active overload not updating - Active overload now updates when typed arguments narrow the overload set * fix: replace findIndex with direct index lookup in getActiveSignature - Instead of searching signatures by label to get an index and comparing it to info.selectedItemIndex, look up signatures[info.selectedItemIndex] directly so both sides of the comparison use the same index source * test: add unit tests for #268728 overload fix - Extract getActiveSignature as an exported function so unit tests can import it without the extension host - Add BEFORE suite documenting the original bug: on retrigger, old code returned the stale overload index even after TypeScript updated selectedItemIndex (e.g. after a string argument narrows the overload set on the comma trigger) - Add AFTER suite verifying the fix: retrigger now honours TypeScript's updated selectedItemIndex; the BUG test case that returned 0 now correctly returns 1 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: address Copilot review on #268728 - Rename exported helper to computeActiveSignatureIndex to avoid identifier collision with the private method - Stop returning activeSignatureHelp.activeSignature: that index refers to the previous signature list, which is stale if the list reorders between invocations; always use tsSelectedItemIndex instead - Add regression test for the reordering case: verifies that when the list reorders and TS still selects the same overload by label, the current index is returned, not the stale one * fix: address Copilot review on #268728 - Simplify computeActiveSignatureIndex to only accept tsSelectedItemIndex; the context and signatures params were unused and made the API misleading - Add @internal JSDoc to signal the computeActiveSignatureIndex export is for unit testing only, not public API - Replace assertion-based BEFORE suite with block comment documenting the original bug; asserting known-wrong behaviour institutionalizes incorrect expectations * fix: simplify active overload selection - Replace the label-matching retrigger guard with result.activeSignature = info.selectedItemIndex; the guard became a no-op after the existingIndex === selectedItemIndex fix and its removal is the correct minimal change - Export TypeScriptSignatureHelpProvider as _TypeScriptSignatureHelpProvider (VS Code underscore-prefix convention for test-only exports) - Add unit tests via mock ITypeScriptServiceClient: documents the old buggy guard behavior and verifies the fix — the FIX test would fail if the label-matching guard were reintroduced * fix: address Copilot unit test review comments - Move CancellationTokenSource into setup/teardown so it is properly disposed after each test - Add success: true and message: '' to mock response to match the protocol shape - Add @internal test-only export JSDoc to _TypeScriptSignatureHelpProvider to make the export intent explicit * Fix signature help overload selection Track TypeScript-selected and user-selected overloads separately so retriggers follow updated recommendations without resetting manual selections. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Language Features for TypeScript and JavaScript files
Notice: This extension is bundled with Visual Studio Code. It can be disabled but not uninstalled.
Features
See TypeScript in Visual Studio Code and JavaScript in Visual Studio Code to learn about the features of this extension.