refactor(linter): use regexp AST visitor in no-control-regex#6129
Merged
graphite-app[bot] merged 1 commit intomainfrom Sep 28, 2024
Merged
Conversation
Contributor
Your org has enabled the Graphite merge queue for merging into mainAdd the label “0-merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix. You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link. |
Member
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @camchenry and the rest of your teammates on |
CodSpeed Performance ReportMerging #6129 will not alter performanceComparing Summary
|
252ac6a to
3aa7e42
Compare
408cd8f to
6a6e765
Compare
6a6e765 to
cd32655
Compare
Member
A byte index vs char index problem somewhere. |
Contributor
Merge activity
|
- closes #5416 Rewrites the `no-control-regex` rule to use a regular expression AST visitor instead of the `regex` crate and parsing by hand. This change simplifies the code and makes it easier to maintain. One notable change in the snapshots is the printing of the control characters. Previously, we always printed from the source text. Now, we print a representation of the control character itself based on its numeric value. This resulted in the nonprintable chars being printed, which are invisible. The other reason for this change is that the spans output by the regex parser for unicode escapes do not match 1:1 when raw strings and escapes are involved. This resulted in goofy looking spans in the output: ``` ⚠ eslint(no-control-regex): Unexpected control character: '*\\x' ╭─[no_control_regex.tsx:1:22] 1 │ new RegExp('\\u{1111}*\\x1F', 'u') · ──── ╰──── ``` Not sure where the bug lies there yet.
cd32655 to
db751f0
Compare
This was referenced Oct 7, 2024
Boshen
added a commit
that referenced
this pull request
Oct 8, 2024
## [0.9.10] - 2024-10-07 ### Features - f272137 editors/vscode: Clear diagnostics on file deletion (#6326) (dalaoshu) - 1a5f293 editors/vscode: Update VSCode extention to use project's language server (#6132) (dalaoshu) - 376cc09 linter: Implement `no-throw-literal` (#6144) (dalaoshu) - 5957214 linter: Allow fixing in files with source offsets (#6197) (camchenry) - a089e19 linter: Eslint/no-else-return (#4305) (yoho) - 183739f linter: Implement prefer-await-to-callbacks (#6153) (dalaoshu) - ae539af linter: Implement no-return-assign (#6108) (Radu Baston) ### Bug Fixes - 9e9808b linter: Fix regression when parsing ts in vue files (#6336) (Boshen) - 93c6db6 linter: Improve docs and diagnostics message for no-else-return (#6327) (DonIsaac) - e0a3378 linter: Correct false positive in `unicorn/prefer-string-replace-all` (#6263) (H11) - ea28ee9 linter: Improve the fixer of `prefer-namespace-keyword` (#6230) (dalaoshu) - f6a3450 linter: Get correct source offsets for astro files (#6196) (camchenry) - be0030c linter: Allow whitespace control characters in `no-control-regex` (#6140) (camchenry) - e7e8ead linter: False positive in `no-return-assign` (#6128) (DonIsaac) ### Performance - ac0a82a linter: Reuse allocator when there are multiple source texts (#6337) (Boshen) - 50a0029 linter: Do not concat vec in `no-useless-length-check` (#6276) (camchenry) ### Documentation - 7ca70dd linter: Add docs for `ContextHost` and `LintContext` (#6272) (camchenry) - a949ecb linter: Improve docs for `eslint/getter-return` (#6229) (DonIsaac) - 14ba263 linter: Improve docs for `eslint-plugin-import` rules (#6131) (dalaoshu) ### Refactor - 642725c linter: Rename vars from `ast_node_id` to `node_id` (#6305) (overlookmotel) - 8413175 linter: Move shared function from utils to rule (#6127) (dalaoshu) - ba9c372 linter: Make jest/vitest rule mapping more clear (#6273) (camchenry) - 82b8f21 linter: Add schemars and serde traits to AllowWarnDeny and RuleCategories (#6119) (DonIsaac) - ea908f7 linter: Consolidate file loading logic (#6130) (DonIsaac) - db751f0 linter: Use regexp AST visitor in `no-control-regex` (#6129) (camchenry) - 3aa7e42 linter: Use RegExp AST visitor for `no-hex-escape` (#6117) (camchenry) - 9d5b44a linter: Use regex visitor in `no-regex-spaces` (#6063) (camchenry) - 0d44cf7 linter: Use regex visitor in `no-useless-escape` (#6062) (camchenry) - eeb8873 linter: Use regex visitor in `no-empty-character-class` (#6058) (camchenry) ### Testing - d883562 linter: Invalid `eslint/no-unused-vars` options (#6228) (DonIsaac) --------- Co-authored-by: Boshen <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
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.

Rewrites the
no-control-regexrule to use a regular expression AST visitor instead of theregexcrate and parsing by hand. This change simplifies the code and makes it easier to maintain.One notable change in the snapshots is the printing of the control characters. Previously, we always printed from the source text. Now, we print a representation of the control character itself based on its numeric value. This resulted in the nonprintable chars being printed, which are invisible. The other reason for this change is that the spans output by the regex parser for unicode escapes do not match 1:1 when raw strings and escapes are involved. This resulted in goofy looking spans in the output:
Not sure where the bug lies there yet.