Skip to content

Conversation

@gthb
Copy link
Owner

@gthb gthb commented Jan 29, 2026

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.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 -> ";"

gthb added 2 commits January 29, 2026 16:18
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
@gthb gthb closed this Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant