-
-
Notifications
You must be signed in to change notification settings - Fork 475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor(linter): use regexp AST visitor in no-control-regex
#6129
refactor(linter): use regexp AST visitor in no-control-regex
#6129
Conversation
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. |
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @camchenry and the rest of your teammates on Graphite |
CodSpeed Performance ReportMerging #6129 will not alter performanceComparing Summary
|
252ac6a
to
3aa7e42
Compare
408cd8f
to
6a6e765
Compare
6a6e765
to
cd32655
Compare
A byte index vs char index problem somewhere. |
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
## [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 <1430279+Boshen@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Rewrites the
no-control-regex
rule to use a regular expression AST visitor instead of theregex
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:
Not sure where the bug lies there yet.