Closed
Conversation
What --- Replace the vendored tree-sitter-perl parser with the crates.io crate. Towards the unvendoring effort Wilfred#891. Why --- The crate version 1.1.2 has fixed the heap buffer overflow bugs that existed in the vendored version (see rough repro, probably not worth merging, in Wilfred#946). How --- Remove the vendored parser and build.rs entry. Add the crate dependency and update TreeSitterConfig atom_nodes. Update highlights/perl.scm for changed node names in 1.1.2: * call_expression -> call_expression_with_bareword * Remove named_block_statement, hash_arrow_operator, bareword (no longer exist) * patter_matcher_m -> pattern_matcher_m (typo fix) * semi_colon -> ";" (now a literal)
Restore highlighting parity with the old vendored grammar:
- Add `scalar_variable`, `array_variable`, `hash_variable` to `atom_nodes` so that
variables like `$setting` are treated as single atoms and fully colored
- Add `hash_access_variable` to `atom_nodes` so that `$foo->{$bar}` is one atom,
and drop it from `@operator` (`arrow_operator` handles `->`)
- Adapt to typo fix: `patter_matcher_m` → `pattern_matcher_m`
- Highlight hash-style use constant keys (`SEC`, `MIN`, etc. in the sample
file) as `@string` to preserve the magenta color from the old grammar
- Scope `fat_comma` (`=>`) `@operator` to `hash_ref` only, so use constant
FOO => ... leaves => unstyled as before
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Replace the vendored tree-sitter-perl parser with the crates.io tree-sitter-perl.
Why
Towards the unvendoring effort Wilfred#891, and also to be rid of the heap buffer overflow bugs in the older vendored version (see rough repro, probably not worth merging, in Wilfred#946).
Notes
Updated
highlights/perl.scmfor changed node names in 1.1.2:call_expression->call_expression_with_barewordnamed_block_statement,hash_arrow_operator,bareword(no longer exist)patter_matcher_m->pattern_matcher_m(typo fix)semi_colon-> ";"