microsoft / microsoft/TypeScript
[tsserver] add support to fetch symbol references from only the current file.
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 132
Description
🔍 Search Terms
Hey.
it will be awesome if the "references" command can only get references of a symbol at position (x,y) but only inside the current file.
✅ Viability Checklist
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
- This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
⭐ Suggestion
this can be added using currentFileOnly?: boolean; (like that inside interface NavtoRequestArgs).
📃 Motivating Example
i use it mainly for rewriting javascript files (usually obfuscated ones), so for each symbol i need to get all references but only for the currently opened file, so i wish there was a flag for it. as i thought it will be more performant (i.e. instead of searching references all across the project, if we restricted it to the current file - by a flag in a the request - then it can be more performant due to reduced search space?)
💻 Use Cases
- What do you want to use this for?
- rewriting js files accurately.
- What shortcomings exist with current approaches?
- performance issues.
- What workarounds are you using in the meantime?
- requesting references then filtering them if the ref['file'] key is the same as that supplied in
referencesrequest. however, i think tsserver can be more performant than this approach.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the tsserver references request and compare its arguments with NavtoRequestArgs, which the issue cites as a precedent. Determine the request and response paths affected, then add and validate a current-file-only option so references can be limited to the supplied file without changing existing behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100