Web bindings: Auto-generate Node subclasses with getters for node fields #729
+268
−120
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Subclasses will only generate if the node-types object is passed as the second arg to
Parser.Language.Load
. This makes the web bindings more like the node bindings and was modeled after this commit.This makes tree-sitter for very powerful using TypeScript when combined with a tool like described here: #707. As many users are using the web bindings in a node environment for cross-platform compatibility (like a LSP), I think it is beneficial to allow optional
node-types
to passed when loading the language so they can benefit from subclasses and extra type information.The motivation for this is I'm implementing type inference for the Elm Language Server, and this will make things much cleaner.
/cc @razzeee