Use lazy-regex crate instead of plain regex #27
Merged
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.
Currently, the tree-sitter based rules start at the root node of a file and scan the whole tree to find any matches. They then sometimes use regex to inspect what they find further. Any regular expressions used are therefore compiled once per file.
Inverting the order of operations as suggested by #26 would mean having to compile a regular expression at each node, which would be terrible for performance.
This PR pre-emptively solves this problem by replacing all instances of the plain
Regex
crate withlazy-regex
, which provides similar capabilities but compiles only once per run.