feat(linter): remove eslint prefixes from plugin names in diagnostics#21806
feat(linter): remove eslint prefixes from plugin names in diagnostics#21806
Conversation
…lint prefixes. This only updates the relevant code, I'll update the snapshots in a subsequent commit.
These all need to be updated now that we've removed the prefix in diagnostic messages.
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR updates diagnostic rule codes to use unprefixed, user-facing plugin names (e.g. jest(rule) instead of eslint-plugin-jest(rule)), and refreshes snapshots accordingly.
Changes:
- Replace “prefixed plugin name” logic with a canonical diagnostic display name (
plugin_display_name) used for error codes. - Update React Hooks rule scopes to match the new display format (
react-hooks). - Regenerate linter/CLI/LSP snapshots to reflect the new diagnostic codes.
Reviewed changes
Copilot reviewed 131 out of 522 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| crates/oxc_linter/src/context/mod.rs | Switches diagnostic code generation to use canonical display plugin names. |
| crates/oxc_linter/src/context/host.rs | Updates context initialization to use plugin_display_name. |
| crates/oxc_linter/src/rules/react/exhaustive_deps.rs | Updates React Hooks scope string for diagnostics. |
| crates/oxc_linter/src/rules/react/rules_of_hooks.rs | Updates React Hooks scope string for diagnostics. |
| crates/oxc_linter/src/snapshots/jest_require_top_level_describe.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_require_to_throw_message.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_prefer_todo.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_prefer_to_have_length.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_prefer_to_have_been_called_times.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_prefer_to_have_been_called.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_prefer_strict_equal.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_prefer_lowercase_title@vitest.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_prefer_hooks_on_top.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_prefer_expect_resolves.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_prefer_called_with.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_padding_around_test_blocks.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_padding_around_after_all_blocks.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_untyped_mock_factory.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_unneeded_async_expect_function.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_test_return_statement.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_standalone_expect@vitest.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_restricted_matchers.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_restricted_jest_methods.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_mocks_import.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_large_snapshots.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_jasmine_globals.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_interpolation_in_snapshots.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_identical_title.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_hooks.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_focused_tests.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_export.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_deprecated_functions.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_commented_out_tests.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_no_alias_methods.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_max_nested_describe.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_max_expects.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/jest_expect_expect.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_unambiguous.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_prefer_default_export.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_webpack_loader_syntax.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_unassigned_import.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_self_import.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_relative_parent_imports.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_namespace.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_named_export.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_named_default.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_named_as_default_member.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_named_as_default.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_mutable_exports.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_empty_named_blocks.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_dynamic_require.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_default_export.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_cycle@issue_21252.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_cycle@issue_19245.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_commonjs.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_anonymous_default_export.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_amd.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_no_absolute_path.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_named.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_max_dependencies.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_first.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_exports_last.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_export.snap | Snapshot update for new plugin display in diagnostic codes. |
| crates/oxc_linter/src/snapshots/import_default.snap | Snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__lsp__ts_path_alias_--import-plugin -D import__no-cycle deep__src__dep-a.ts@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli_issue_10054@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__tsgolint_rule_options_--type-aware@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__tsgolint_disable_directives_--type-aware@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__tsgolint_disable_directives_--type-aware --report-unused-disable-directives unused.ts@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__tsgolint_-c config-type-aware.json@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__tsgolint_-c config-type-aware-with-overrides.json no-floating-promises.ts@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__tsgolint_--type-aware -c config-type-aware-false.json no-floating-promises.ts@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__tsgolint_--type-aware -c config-test.json@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__overrides_with_plugin_-c .oxlintrc.json@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__jest_and_vitest_alias_rules_-c oxlint-jest.json test.js -c oxlint-vitest.json test.js@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__issue_10394_-c .oxlintrc.json@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__import_-c .oxlintrc.json test.js -c .oxlintrc-import-x.json test.js@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__import-cycle_--import-plugin -D import__no-cycle@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__extends_config_overrides@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__disable_vitest_rules_-c .oxlintrc-vitest.json --report-unused-disable-directives test.js@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__cross_module_nested_config_@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__cross_module_extended_config_@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/fixtures__cli__config_ignore_patterns__ignore_directory_-c eslintrc.json@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/_-c fixtures__cli__typescript_eslint__eslintrc.json fixtures__cli__typescript_eslint__test.ts@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/_-c fixtures__cli__eslintrc_off__eslintrc.json fixtures__cli__eslintrc_off__test.js@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/_-c fixtures__cli__config_ignore_patterns__ignore_extension__eslintrc.json fixtures__cli__config_ignore_patterns__ignore_extension@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/snapshots/_--vitest-plugin -c fixtures__cli__eslintrc_vitest_replace__eslintrc.json fixtures__cli__eslintrc_vitest_replace__foo.test.js@oxlint.snap | CLI snapshot update for new plugin display in diagnostic codes. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_tsgolint_unused_disabled_directives@test.ts.snap | LSP snapshot update for new diagnostic code values. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_tsgolint_type_aware_config@test.ts.snap | LSP snapshot update for new diagnostic code values. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_tsgolint@no-floating-promises__index.ts.snap | LSP snapshot update for new diagnostic code values. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_ts_path_alias@deep__src__dep-a.ts.snap | LSP snapshot update for new diagnostic code values. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_multiple_suggestions@forward_ref.ts.snap | LSP snapshot update for new diagnostic code values. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_issue_9958@issue.ts.snap | LSP snapshot update for new diagnostic code values. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_issue_14565@foo-bar.astro.snap | LSP snapshot update for new diagnostic code values. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_cross_module_nested_config@dep-a.ts_folder__folder-dep-a.ts.snap | LSP snapshot update for new diagnostic code values. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_cross_module_extended_config@dep-a.ts.snap | LSP snapshot update for new diagnostic code values. |
| apps/oxlint/src/lsp/snapshots/fixtures_lsp_cross_module@dep-a.ts.snap | LSP snapshot update for new diagnostic code values. |
Comments suppressed due to low confidence (1)
crates/oxc_linter/src/context/mod.rs:313
current_plugin_display_nameis now used for the diagnostic code, but the documentation URL still usescurrent_plugin_name. For plugins where the display name differs from the internal name (e.g.jsx_a11y→jsx-a11y,react_perf→react-perf), this will make the displayed code and the docs URL diverge (and can lead to incorrect/broken links depending on how docs are organized). Consider either (a) using the same canonical identifier for both the code and the docs URL, or (b) introducing a separate mapping for the docs URL slug so the two stay consistent by construction.
message.error = message
.error
.with_error_code(self.current_plugin_display_name, self.current_rule_name)
.with_url(format!(
"{}/{}/{}.html",
WEBSITE_BASE_RULES_URL, self.current_plugin_name, self.current_rule_name
));
The canonical ESLint plugin name is `eslint-plugin-next`, so removing the prefix should yield `next`, not the internal `nextjs` key.
Merging this PR will not alter performance
Comparing Footnotes
|
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
I can't think of any conflicts at the moment. I think this looks really nice. |
…agnostics # Conflicts: # apps/oxlint/src/snapshots/fixtures__cli__jest_and_vitest_alias_rules_-c oxlint-jest.json test.js -c oxlint-vitest.json test.js@oxlint.snap # crates/oxc_linter/src/snapshots/jest_no_focused_tests.snap # crates/oxc_linter/src/snapshots/jest_no_hooks.snap # crates/oxc_linter/src/snapshots/jest_no_identical_title.snap # crates/oxc_linter/src/snapshots/jest_no_large_snapshots.snap # crates/oxc_linter/src/snapshots/jest_no_mocks_import.snap # crates/oxc_linter/src/snapshots/jest_prefer_to_contain.snap # crates/oxc_linter/src/snapshots/jest_valid_expect.snap # crates/oxc_linter/src/snapshots/typescript_no_non_null_asserted_nullish_coalescing.snap
# Conflicts: # crates/oxc_linter/src/snapshots/jest_valid_expect_in_promise.snap
0011d79 to
526dcab
Compare
526dcab to
469a907
Compare
# Oxlint ### 🚀 Features - 1d40d60 linter: Implement SARIF formatter (#22067) (camchenry) - c0982fe linter/eslint: Implement no-restricted-properties rule (#22080) (AJ Bienz) - 5699d53 linter: Add help text to `agent` formatter (#22064) (camchenry) - fe7194d oxlint: Add agent output mode (#21955) (Jovi De Croock) - fb2f052 linter: Suggest moving shared branch code (#22022) (camc314) - 5868335 linter/no-else-return: Improve nested if diagnostic spans (#22009) (camc314) - 8b4829b linter: Split `no-negated-condition` rule to unicorn & eslint (#21998) (Sysix) - fea301a linter: Split jest/prefer-to-be into separate vitest rule (#21977) (camchenry) - 44aa0d6 linter: Split jest/prefer-strict-equal into separate vitest rule (#21976) (camchenry) - 2262b27 linter: Split jest/prefer-spy-on into separate vitest rule (#21975) (camchenry) - fef9143 linter: Split jest/prefer-mock-return-shorthand into separate vitest rule (#21974) (camchenry) - 2bda504 linter: Split jest/prefer-mock-promise-shorthand into separate vitest rule (#21973) (camchenry) - 6ef6c7d linter: Split jest/prefer-lowercase into separate vitest rule (#21972) (camchenry) - f4d2498 linter: Split jest/prefer-hooks-on-top into separate vitest rule (#21971) (camchenry) - fb8e366 linter: Split jest/prefer-hooks-in-order into separate vitest rule (#21970) (camchenry) - adcd85c linter: Split jest/prefer-expect-resolves into separate vitest rule (#21969) (camchenry) - 8ddc7ec linter: Split jest/prefer-equality-matcher into separate vitest rule (#21968) (camchenry) - 46bb1f3 linter: Split jest/prefer-each into separate vitest rule (#21967) (camchenry) - bdbff66 linter: Implement interactive-supports-focus (#21767) (mehm8128) - 733b094 linter: Split `prefer-to-have-been-called-times` rule (#21898) (Said Atrahouch) - 8804425 linter/eslint: Implement `logical-assignment-operators` rule (#21900) (Mikhail Baev) - 296d147 linter: Split jest/prefer-comparison-matcher into separate vitest rule (#21929) (camchenry) - 38146b6 linter: Split jest/prefer-called-with into separate vitest rule (#21927) (camchenry) - 6f86175 linter/vue: Implement return-in-computed-property rule (#21909) (bab) - dc2d0e4 linter: Split jest/no-unneeded-async-expect-function into separate vitest rule (#21878) (camchenry) - a03fc37 linter: Split jest/no-test-return-statement into separate vitest rule (#21877) (camchenry) - f11313e linter: Split jest/no-test-prefixes into separate vitest rule (#21876) (camchenry) - 4380812 linter: Split `prefer-to-have-length` rule (#21893) (Said Atrahouch) - 511bcc1 linter: Split jest `require-hook` rule (#21889) (Said Atrahouch) - 64a8180 linter: Split `jest/prefer-snapshot-hint` into a Jest rule and a Vitest rule. (#21881) (connorshea) - ae7924a linter/vue: Implement no-deprecated-model-definition rule (#21886) (bab) - 0dfe8b3 linter: Split `jest/require-to-throw-message` into Jest and Vitest rules. (#21879) (connorshea) - 51229ff linter: Split jest `valid-describe-callback` rule (#21882) (Said Atrahouch) - 2d102fd linter: Split `no-standalone-expect` rule into jest and vitest (#21862) (Sysix) - ee46a29 linter: Split `no-restricted-matchers` rule into jest and vitest (#21860) (Sysix) - 1f29459 linter: Split `no-restricted-jest-methods` rule into jest and vitest (#21859) (Sysix) - e7f8d55 linter: Remove eslint prefixes from plugin names in diagnostics (#21806) (Connor Shea) - 89fff8b linter: Split valid-expect-in-promise/jest rule into jest and vitest rules (#21854) (Said Atrahouch) ### 🐛 Bug Fixes - 0b48848 linter/prefer-array-some: Make find rewrite a suggestion (#22103) (camc314) - d24027e linter/prefer-array-some: Preserve find comparison fixes (#22094) (camc314) - af2d26c linter/astro: Handle js `---` after frontmatter in .astro files (#22091) (Andrew Powell) - 78d4ff0 linter/jsdoc/require-returns: Only look at the nearest jsdoc block (#22077) (camc314) - fa88857 linter/no-map-spread: Use default codegen options for fix (#22074) (camc314) - 2047a35 linter: Treat adjacent fixes as overlapping (#22071) (camc314) - 75fc551 linter: Handle no-extra-boolean-cast edge cases (#22031) (camc314) - e9d5284 linter/sort-keys: Don't autofix if comment could be misplaced (#22052) (Amund Eggen Svandal) - d7230b0 linter/no-constant-condition: Handle generator yields (#22046) (camc314) - e8dbc56 linter/array-type: Enable edge case tests (#22047) (camc314) - d57b51f linter/no-constant-condition: Propagate config errors (#22045) (camc314) - bdb6d95 linter/typescript: Remove duplicate rule tests (#22044) (camc314) - 0beaffc linter: Print resolved extended config (#22040) (camc314) - 192ad0e linter/react/only-export-components: Align rule with upstream cases (#22039) (camc314) - cdf4c53 linter/only-export-components: Support tanstack router (#21937) (camc314) - 893e18f linter: Stop gitignore lookup at repo boundary (#22033) (camc314) - 7100712 linter/constructor-super: Clarify duplicate super diagnostics (#22035) (camc314) - fce5b7c linter/constructor-super: Improve invalid `super` calls diagnostic (#22032) (camc314) - b3de93c linter/rules-of-hooks: Clarify conditional diagnostics (#22030) (camc314) - 4f9f629 linter/rules-of-hooks: Clarify loop diagnostics (#22029) (camc314) - e6f0978 linter/rules-of-hooks: Clarify async component diagnostics (#22024) (camc314) - e262f51 linter/rules-of-hooks: Improve diagnostic for hook inside class component (#22023) (camc314) - 7b71b0d linter/no-restricted-imports: Report once per import declaration (#22021) (camc314) - 3d5ae3d linter/vitest/require-mock-type-parameters: Handle chained typed mocks (#22019) (camc314) - 959a2db linter/reporter/github: Omit empty `file` annotations (#22017) (camc314) - 16003a1 linter/unicorn: Remove duplicate rule tests (#22018) (camc314) - 86b7547 linter/no-unreachable: Suppress nested unreachable diagnostics (#22011) (camc314) - 1d92ae8 linter/oxc: Remove duplicate rule tests (#22013) (camc314) - f270246 linter/branches-sharing-code: Ignore empty statements (#22012) (camc314) - f1c25dd linter: Stabilize debug diagnostic comparison (#22010) (camc314) - b6bc421 linter: Skip linting astro scripts with non JS script types (#21954) (camc314) - a77547d linter: Support plugin-qualified disable directives (#21999) (camc314) - 079cfdd linter: Match disable directive rule names exactly, not by substring (#21906) (Christian Vuerings) - 11a4e67 linter: Comptibles rules need to be disabled in jest and vitest at same time (#21982) (Said Atrahouch) - ce62f16 linter: `jsx-a11y/prefer-tag-over-role` detect more roles (#21933) (bab) - 024c390 linter/jest/vitest: Padding around after all blocks not working as expected (#21952) (kapobajza) - 05a8f75 linter/jest/no-standalone-expect: False positive with expect in an `ObjectProperty` (#21948) (Said Atrahouch) - 6a37c98 linter/no-unused-vars: Report unused re-exported imports (#21938) (camc314) - 2d5fc16 linter: `jsx-a11y/media-has-caption` report only once for self-closing tags (#21934) (bab) - 5adca29 linter: `jsx-a11y/no-autofocus` ignore `false` attribute values (#21918) (Sysix) - 2e5c18e linter/max-nested-describe: Reset nested describe depth (#21891) (camc314) ### ⚡ Performance - a77f0f7 linter/require-returns: Avoid jsdoc tag vec allocation (#22081) (camc314) - d9a1b32 linter/plugins: Avoid array lookups where possible in CFG visitor (#21940) (overlookmotel) - fefefd8 linter/plugins: Replace addition with bitwise OR in CFG visitor (#21939) (overlookmotel) ### 📚 Documentation - d58f594 oxlint/lsp: Auto generate docs for LSP options (#22082) (Sysix) - 9adc3b3 linter/no-misused-new: Clarify construct signatures behaviour (#22016) (camc314) - 1caf5ad linter/plugins: Reformat comments (#21873) (overlookmotel) # Oxfmt ### 🐛 Bug Fixes - ef0db6b formatter: Sequence expression in arrow function body collapses onto one line (#21183) (Justin Mecham) - 5d5d808 formatter: Preserve blank line after directive with trailing comment (#21153) (Justin Mecham) ### ⚡ Performance - 2fd907d formatter: Sort imports during IR construction (#22065) (overlookmotel) --------- Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com>
Fixes #21805.
This was generated with Claude Code and reviewed/tested by me. The first commit is the change to the code, the second is all the snapshots that needed to be updated.
Before:
After:
Note that I need to confirm whether this change will be a problem for the LSP integrations (I don't think it will?), as well as any other tooling we have. I am pretty confident that oxlint-migrate won't care, and neither should vite-plus - except maybe with integration/snapshot tests in vite-plus.