-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Add way to differentiate references for definitions at requesting location #42889
Copy link
Copy link
Closed
Closed
Copy link
Labels
Domain: LS: Symbol NavigationRelates to go-to-definition, find-all-references, highlighting/occurrences.Relates to go-to-definition, find-all-references, highlighting/occurrences.Fix AvailableA PR has been opened for this issueA PR has been opened for this issueIn DiscussionNot yet reached consensusNot yet reached consensusSuggestionAn idea for TypeScriptAn idea for TypeScriptVS Code PriorityCritical issues that VS Code needs fixed in the current TypeScript milestoneCritical issues that VS Code needs fixed in the current TypeScript milestone
Milestone
Metadata
Metadata
Assignees
Labels
Domain: LS: Symbol NavigationRelates to go-to-definition, find-all-references, highlighting/occurrences.Relates to go-to-definition, find-all-references, highlighting/occurrences.Fix AvailableA PR has been opened for this issueA PR has been opened for this issueIn DiscussionNot yet reached consensusNot yet reached consensusSuggestionAn idea for TypeScriptAn idea for TypeScriptVS Code PriorityCritical issues that VS Code needs fixed in the current TypeScript milestoneCritical issues that VS Code needs fixed in the current TypeScript milestone
Bug Report
🔎 Search Terms
Problem
We use the
referencesrequest to power VS Code's references code lens feature. References returned by TS have an optionalisDefinitionproperty that tells if the reference is to a definition or not. We use this to avoid showing multiple references for a case such as:The references code lens basically just filtered out any references that are marked
isDefinitionHowever this also prevents us from showing the correct reference count in cases such as:
In this case, the two references to
fooshould have 1 reference, but we show 0 references because both references are definitions.microsoft/vscode#117021 shows another case with object literal shortcut
Proposal
We'd like a new property on the references response that tells us if the reference belongs to definition from the requesting location (not yet sure what the name of this should be).
For a case with overloads such as:
If we request references on any of the calls to
foo, this new property would be marked true. However it would not be true in cases such as:or: