mirror of
https://github.com/tree-sitter/tree-sitter.git
synced 2026-09-10 07:36:22 -04:00
An unanchored quantified sibling like `(program (comment)+ @doc (class))` keeps one match state per matching sibling. A recent fix stopped over-pruning them, but the per-node longest-match dedup is pairwise, so with n live states matching became O(n^3). Two states can only be capture subsets of one another if their captured byte ranges overlap, so keep each group ordered by first-capture position and stop the pairwise scan once the rest of the group is disjoint. Refs neovim/neovim#40517 |
||
|---|---|---|
| .. | ||
| binding_rust | ||
| binding_web | ||
| include/tree_sitter | ||
| lldb_pretty_printers | ||
| src | ||
| .ccls | ||
| Cargo.toml | ||
| LICENSE | ||
| package.nix | ||
| README.md | ||
| tree-sitter.pc.in | ||
Subdirectories
src- C source code for the Tree-sitter libraryinclude- C headers for the Tree-sitter librarybinding_rust- Rust bindings to the Tree-sitter librarybinding_web- JavaScript bindings to the Tree-sitter library, using WebAssembly