microsoft / microsoft/vscode-anycode
Give access to the AST and custom TS queries for other extension developpers
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 387
- Forks
- 47
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 3
Description
Hello,
This is a feature request that could make other extension developers quite happy and solve quite a few issues related to interacting with source code. It would be great if there were API endpoints allowing other developers to make custom queries on the parsed Treesitter tree and thus allow them to navigate the AST more freely.
At the moment if someone decided to do relatively simple things like:
- Knowing if the cursor is presently inside a string
- Knowing where a function begins and ends
- Get the location in the text of matching brackets
all require extension developers to make their own custom parsers only to reimplement existing VSCode's functionalities. This is probably unnecessary duplication and the end result is often worse than the existing VSCode's implementation. Unfortunately at the moment the VSCode's API does not give a proper access to the AST and tokens produced during parsing (this github issue elaborates on the subject). There is a useful command called vscode.executeDocumentSymbolProvider but it is not enough and does not always categorize symbols properly: see this issue
Treesitter and Anycode could probably solve this problem by parsing the tree once on document changes and then giving it access to other extensions to query on their own. Would this be possible?
Thank you
Contributor guide
No contributing guide indexed for this repository
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 reviewing the existing vscode.executeDocumentSymbolProvider command and the linked VS Code and TypeScript issues about AST access, symbol categorization, and parsed trees. Compare those limitations with the requested Treesitter and Anycode approach; done would mean a defined API for extension developers to access the parsed tree or tokens and run custom queries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100