feat(linter): add typescript/prefer-regexp-exec rule#19447
Conversation
Merging this PR will not alter performance
Comparing Footnotes
|
70993f1 to
d98bb2c
Compare
4ea2e55 to
c740bcf
Compare
d98bb2c to
0cc2cf1
Compare
c740bcf to
71d8179
Compare
0cc2cf1 to
b1ceb5e
Compare
Merge activity
|
There was a problem hiding this comment.
Pull request overview
This PR adds the typescript/prefer-regexp-exec rule stub to the oxc linter. The rule enforces using RegExp#exec() over String#match() for better clarity and to avoid the overloaded behavior of String#match(). This is a standard rule stub following the tsgolint pattern, where the rule infrastructure is set up (registration, documentation, test fixtures) even though the actual implementation logic will be added later.
Changes:
- Added new rule stub
PreferRegexpExecwith documentation explaining when to preferRegExp#exec()overString#match() - Integrated the rule into all generated files following established patterns
- Added test fixture demonstrating the rule's expected behavior with appropriate test cases
Reviewed changes
Copilot reviewed 8 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| crates/oxc_linter/src/rules/typescript/prefer_regexp_exec.rs | New rule stub with documentation and empty implementation |
| crates/oxc_linter/src/rules.rs | Module declaration for the new rule in alphabetical order |
| crates/oxc_linter/src/generated/rules_enum.rs | Generated enum variants, methods, and match arms for rule integration |
| crates/oxc_linter/src/generated/rule_runner_impls.rs | RuleRunner trait implementation stub |
| apps/oxlint/fixtures/tsgolint/prefer-regexp-exec.ts | Test fixture with example violations and valid cases |
| apps/oxlint/fixtures/tsgolint/.oxlintrc.json | Configuration enabling the new rule for testing |
| apps/oxlint/src/snapshots/[email protected] | Updated snapshot showing the rule detecting 2 errors as expected |
71d8179 to
619fecc
Compare
b1ceb5e to
0293fc4
Compare
619fecc to
56a7feb
Compare
0293fc4 to
04536be
Compare
# Oxlint ### 💥 BREAKING CHANGES - 4315594 oxlint: [**BREAKING**] Deprecate `"always"` and `"as-needed"` options of the radix rule (#19408) (Sysix) - d4c7af3 linter: [**BREAKING**] Remove `allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing` option (#19451) (camc314) ### 🚀 Features - 82ca5c3 linter: Add typescript/dot-notation rule (#19442) (camc314) - 6db0811 linter: Implement eslint-plugin-vitest/no-importing-vitest-globals (#18694) (Said Atrahouch) - c7fe8ae linter: Implement eslint-plugin-vitest/prefer-import-in-mock (#17966) (Said Atrahouch) - 0abb39a linter: Implement eslint-vitest-jest-plugin/prefer-mock-return-shorthand (#18002) (Said Atrahouch) - 2b95537 linter: Implement `n/no-path-concat` rule (#19502) (Mikhail Baev) - 735d0e4 linter: Implement typescript/no-useless-default-assignment (#19488) (camc314) - 31c3a93 linter: Add typescript/no-unnecessary-type-parameters rule (#19450) (camc314) - c948090 linter: Add typescript/consistent-return rule (#19449) (camc314) - 9f87df0 linter: Add typescript/prefer-string-starts-ends-with rule (#19448) (camc314) - 04536be linter: Add typescript/prefer-regexp-exec rule (#19447) (camc314) - 56a7feb linter: Add typescript/prefer-readonly rule (#19446) (camc314) - a1cea63 linter: Add typescript/no-unnecessary-qualifier rule (#19445) (camc314) - e3144d2 linter: Add typescript/prefer-find rule (#19444) (camc314) - 13c7408 linter: Add typescript/prefer-readonly-parameter-types rule (#19443) (camc314) - 9b17d44 linter: Add typescript/strict-void-return rule (#19441) (camc314) - ed821b4 linter: Add typescript/consistent-type-exports rule (#19440) (camc314) ### 🐛 Bug Fixes - daad7bc linter/array-callback-return: Check `allowVoid` option (#19506) (Said Atrahouch) - 638cf94 linter: Add help text to eslint rule diagnostics (#19508) (Kyle Tse) - 79fc6d7 linter: Move no-use-before-define to eslint plugin (#19438) (camc314) - c832a9f linter: Add `onScrollEnd` and `onScrollEndCapture` to `react/no-unknown-property`. (#19536) (connorshea) - 999a0db linter: Add help text to `symbol-description` diagnostics (#19538) (Anthony Amaro) - f064482 linter: Add help text to eslint rule diagnostics (#19539) (Anthony Amaro) - fd11073 linter/react/no-unknown-property: Add missing `fetchPriority` prop (#19525) (João Pedro Schmitz) - a9bb604 linter/no-shadow: Align initializer shadow handling with typescript-eslint (#19462) (camc314) - 32e6eb9 linter: Handle typed arrays/array buffers in `prefer-spread` rule. (#19478) (connorshea) - e309f84 linter: Handle additional cases in `typescript/consistent-generic-constructors` rule. (#19477) (connorshea) - 71db91a linter/array-callback-return: Check `fromAsync`, update test cases (#19483) (Said Atrahouch) - 2a12d74 linter: Handle optional chaining in `no-array-method-this-argument` rule. (#19476) (connorshea) - f65310b linter: Handle optional chaining in `prefer-object-from-entries` rule. (#19475) (connorshea) - 840acf4 linter: Handle optional chain in `no-unnecessary-array-flat-depth` rule. (#19471) (connorshea) - 85a19e9 linter: Skip string literal imports in `consistent-assert` rule. (#19474) (connorshea) ### ⚡ Performance - 6155ac4 linter/constructor-super: Use node_id over nodes loop (#19489) (camc314) - a02496d linter/consistent-index-object-style: Resolve circular type refs semantically (#19490) (camc314) # Oxfmt ### 🚀 Features - 652c346 oxfmt/lsp: Support `untitled://` schema (#19287) (Sysix) ### 🐛 Bug Fixes - 6c61b70 oxfmt: Fix outdated `sortImports.groups` doc comments (#19513) (leaysgur) Co-authored-by: camc314 <[email protected]>

No description provided.