Python: Update tree-sitter
dependency
#19929
Draft
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.
Updates the Python extractor to depend on version 0.24.7 of tree-sitter (and 0.12.0 of tree-sitter-graph).
A few changes were needed in order to make the code build and run after updating the dependencies:
main.rs
, theLanguage
parameter is now passed as a reference.python.tsg
, many queries had captures that were not actually used in the body of the stanza. This is no longer allowed (unless the captures start with an underscore), as it may indicate an error. To fix this, I added underscores in the appropriate places (and verified that none of these unused captures were in fact bugs).Finally, something in the newer version of tree-sitter/tree-sitter-graph made it so that we were no longer able to detect syntax errors correctly. We previously did this by matching (in tree-sitter-graph) against all nodes, and then checking if their node type was either
ERROR
orMISSING
.As this no longer works, we now instead traverse the tree in a separate pass (but only if errors are present) and record all nodes that correspond to syntax errors, and then manually add these to the graph output.
Finally, A new option
--dump-errors
was added totsg-python
to make it easy to dump a list of the syntax errors encountered.