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.
fixes #226 as outlined in #226 (comment)
rust currently only strips shebangs that are on the same line (i.e. not separated by a
\n
, see strip_shebang in the rustc_lexer), but the previous regex allowed newlines and didn't correctly parse empty shebangs or shebangs with only a/
chracter.now the regex explicitly disallows
\n
characters and parses until it finds a newline or fails to parse if it finds a[
. this sadly also introduces a new small regression: tree-sitter can no longer parse rust files that are just a shebang and nothing else, no newline. i would like to fix it and the fix would be to replace the\n
at the end of the regex with a(\n|$)
, but if i do that then tree-sitter will complain withError processing rule shebang: Grammar error: Unexpected rule ExpandRegex(Assertion)
, so i just left it. i don't think that should be much of an issue probably.technically speaking the rust lexer allows all of these characters as whitespace, but i thought the current selection of ascii whitespaces is probably enough.