docs(linter): Improve rule docs for 27 unicorn rules#19903
docs(linter): Improve rule docs for 27 unicorn rules#19903graphite-app[bot] merged 1 commit intomainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates user-facing rule documentation and diagnostics for a set of linter rules (primarily unicorn, plus vue/max-props), adding clearer explanations, expanded examples, and MDN links surfaced as diagnostic notes. It also refreshes snapshot outputs to match the updated diagnostic text.
Changes:
- Improved rule docs (“What it does” / “Why is this bad?” / examples) across multiple
unicornrules andvue/max-props. - Updated several diagnostics/help texts for clarity and consistency, and added MDN links via
with_note(...)where relevant. - Regenerated/updated snapshot files to reflect new diagnostic output.
Reviewed changes
Copilot reviewed 34 out of 35 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| crates/oxc_linter/src/snapshots/vue_max_props.snap | Snapshot updated for revised vue/max-props diagnostic/help text. |
| crates/oxc_linter/src/snapshots/unicorn_prefer_keyboard_event_key.snap | Snapshot updated to include new MDN note: output. |
| crates/oxc_linter/src/snapshots/unicorn_prefer_global_this.snap | Snapshot updated to include new MDN note: output. |
| crates/oxc_linter/src/snapshots/unicorn_prefer_event_target.snap | Snapshot updated for punctuation + new MDN note: output. |
| crates/oxc_linter/src/snapshots/unicorn_prefer_at.snap | Snapshot updated for punctuation + new MDN note: output. |
| crates/oxc_linter/src/snapshots/unicorn_no_static_only_class.snap | Snapshot updated for revised diagnostic message formatting. |
| crates/oxc_linter/src/snapshots/unicorn_no_document_cookie.snap | Snapshot updated for punctuation + new MDN note: output. |
| crates/oxc_linter/src/snapshots/unicorn_consistent_assert.snap | Snapshot updated for punctuation/backtick formatting in diagnostics. |
| crates/oxc_linter/src/rules/vue/max_props.rs | Improves max-props docs and refines diagnostic/help wording. |
| crates/oxc_linter/src/rules/unicorn/prefer_negative_index.rs | Expands rule docs and tweaks test formatting. |
| crates/oxc_linter/src/rules/unicorn/prefer_keyboard_event_key.rs | Adds MDN note to diagnostics and improves rule docs/examples. |
| crates/oxc_linter/src/rules/unicorn/prefer_global_this.rs | Adds MDN note to diagnostics and refines rule docs formatting. |
| crates/oxc_linter/src/rules/unicorn/prefer_event_target.rs | Adds MDN note and adjusts diagnostic punctuation. |
| crates/oxc_linter/src/rules/unicorn/prefer_class_fields.rs | Expands rule examples to better illustrate preferred patterns. |
| crates/oxc_linter/src/rules/unicorn/prefer_at.rs | Adds MDN note and improves rule docs wording/links. |
| crates/oxc_linter/src/rules/unicorn/numeric_separators_style.rs | Improves “Why is this bad?” explanation with clearer examples. |
| crates/oxc_linter/src/rules/unicorn/no_useless_undefined.rs | Expands docs, adds warning callout, and fixes doc comment spacing. |
| crates/oxc_linter/src/rules/unicorn/no_useless_switch_case.rs | Clarifies rule intent and improves examples/readability. |
| crates/oxc_linter/src/rules/unicorn/no_useless_promise_resolve_reject.rs | Reflows and clarifies long-form explanation text. |
| crates/oxc_linter/src/rules/unicorn/no_useless_collection_argument.rs | Clarifies wording and formatting in docs/examples. |
| crates/oxc_linter/src/rules/unicorn/no_unreadable_array_destructuring.rs | Adds clearer rationale and more illustrative examples. |
| crates/oxc_linter/src/rules/unicorn/no_unnecessary_slice_end.rs | Clarifies description/rationale and improves wording. |
| crates/oxc_linter/src/rules/unicorn/no_thenable.rs | Improves wording and formatting of examples and rationale. |
| crates/oxc_linter/src/rules/unicorn/no_static_only_class.rs | Improves diagnostic text and rule documentation/examples. |
| crates/oxc_linter/src/rules/unicorn/no_single_promise_in_promise_methods.rs | Improves punctuation/formatting and example readability. |
| crates/oxc_linter/src/rules/unicorn/no_process_exit.rs | Expands rationale and reformats examples. |
| crates/oxc_linter/src/rules/unicorn/no_magic_array_flat_depth.rs | Improves documentation wording and adds MDN link in prose. |
| crates/oxc_linter/src/rules/unicorn/no_invalid_fetch_options.rs | Re-formats examples for readability/consistency. |
| crates/oxc_linter/src/rules/unicorn/no_instanceof_array.rs | Clarifies cross-realm rationale wording. |
| crates/oxc_linter/src/rules/unicorn/no_hex_escape.rs | Improves formatting and expands “Why is this bad?” rationale. |
| crates/oxc_linter/src/rules/unicorn/no_document_cookie.rs | Updates diagnostic/help punctuation, adds MDN note, and refines docs. |
| crates/oxc_linter/src/rules/unicorn/no_console_spaces.rs | Reflows rationale text for readability. |
| crates/oxc_linter/src/rules/unicorn/no_accessor_recursion.rs | Expands docs and improves examples/formatting. |
| crates/oxc_linter/src/rules/unicorn/explicit_length_check.rs | Adds rationale and expands “correct” examples. |
| crates/oxc_linter/src/rules/unicorn/consistent_assert.rs | Improves diagnostic punctuation/formatting and expands rationale. |
Merging this PR will not alter performance
Comparing Footnotes
|
|
Will merge this after the release today |
Merge activity
|
 Ok I lied, it's 26 unicorn rules and 1 vue rule. Sorry. No AI here :) This PR generally improves the documentation for all of these rules to provide more examples, improved explanations for the rules' purposes, and so on. It also adds MDN links where relevant via new diagnostic notes. (note: if this gets merged before the release but after the website PR is generated, make sure to regenerate the website PR 🙂)
9de967c to
bbe73de
Compare
 Ok I lied, it's 26 unicorn rules and 1 vue rule. Sorry. No AI here :) This PR generally improves the documentation for all of these rules to provide more examples, improved explanations for the rules' purposes, and so on. It also adds MDN links where relevant via new diagnostic notes. (note: if this gets merged before the release but after the website PR is generated, make sure to regenerate the website PR 🙂)
bbe73de to
d54c275
Compare
# Oxlint ### 🚀 Features - e6b604f oxlint: Auto-enable gitlab formatter on GitLab (#20076) (camc314) - 2488a68 linter: Add .oxlintrc.jsonc config file support (#19870) (Scott S.) - 61bf388 linter: Add `options.reportUnusedDisableDirectives` to config file (#19799) (Peter Wagenet) - c92422b oxlint: Auto-enable github formatter on GitHub Actions (#19944) (Boshen) - 0337c6d linter: Implement typescript/no-unecessary-type-conversion (#19955) (camc314) - 2919313 linter: Introduce denyWarnings config options (#19926) (camc314) - a607119 linter: Introduce maxWarnings config option (#19777) (camc314) ### 🐛 Bug Fixes - 0861d9a linter/plugins: Remove getters from `Context` (#20115) (overlookmotel) - 92cfb14 linter/plugins: Fix types for `walkProgram` and `walkProgramWithCfg` (#20081) (overlookmotel) - 10e211f oxlint/lsp: Send other code actions besides `source.fixAll` if requested (#20042) (Sysix) - 602daaa linter/plugins: Fix type definition for `VisitorObject` (#20065) (overlookmotel) - ee0491e apps,napi: Explicitly specify libs in tsconfigs (#20071) (camc314) - b6e9499 linter: Fix the logic for `unicorn/prefer-dom-node-remove` to handle literal callees as well as arguments. (#20059) (connorshea) - 3874ae1 linter: Update `unicorn/prefer-query-selector` to also catch `getElementsByName()`. (#20060) (connorshea) - 77c93fb linter: Handle array-type shorthand inside union members (#20034) (camc314) - 50eb160 linter/no-unused-vars: Allow unused type params in ambient module blocks (#19615) (Don Isaac) - 1dd0d21 linter/no-restricted-imports: Apply regex pattern checks to side-effect imports (#20028) (camc314) - 7f3d735 linter: Error when --type-check is used without --type-aware (#20025) (camc314) - eea201c unicorn/prefer-string-slice: Avoid unsafe autofix for substr-to-slice (#20010) (camc314) - 50359dc oxlint/lsp: Detect `reportUnusedDisableDirectives` from oxlint config, change lsp `unusedDisableDirectives` default value to `None` (#20011) (Sysix) - 4bc84b1 linter/plugins: Allow `null` and `undefined` for `rule.meta.fixable` (#20008) (overlookmotel) - 753e27e linter/role-supports-aria-props: Add `aria-posinset` to supported `option` ARIA properties (#20003) (JongKyung Lee) - f57b2c9 linter/plugins: Fix return types of tokens methods (#19985) (overlookmotel) - 27ee4fc linter/no-loss-of-precision: Avoid double rounding for negative exponents (#19999) (camc314) - 77a94bb linter: Avoid no-loss-of-precision false positive for 3e-308 (#19992) (camc314) - 6245c56 linter/no-unused-private-class-members: Treat logical lhs access as usage (#19991) (camc314) - 65891e3 linter: Avoid prefer-const false positive for mixed-scope destructuring (#19982) (camc314) - 89991fe linter: Avoid prefer-const false positive for operator reassignments (#19975) (camc314) - 87318e7 oxlint/lsp: Load js config with reforcing fs read (#19551) (Sysix) - d40a942 linter/no-useless-constructor: Mark fixer as suggestion (#19961) (camc314) - ccbd959 linter/prefer-code-point: Report String.fromCharCode member references (#19931) (camc314) - 14fbbfc linter: Add help text to oxc/no-rest-spread-properties rule (#19900) (Subin Kim) ### ⚡ Performance - 2baa5fb napi: Unify build-test profile to coverage for cache sharing (#20090) (Boshen) - 77f1c71 linter/plugins: Make tokens class instances (#19980) (overlookmotel) - 758b424 linter/plugins: Reduce memory copies for tokens (#19979) (overlookmotel) - 236847f linter/plugins: Cache token objects (#19978) (overlookmotel) - 94b597a linter/plugins: Store tokens as a `Box<[Token]>` (#19969) (overlookmotel) ### 📚 Documentation - 2c0010a linter/plugins: Move comment about "bivariance hack" into generated code (#20082) (overlookmotel) - 7538f09 linter: Improve `import/extensions` and `import/no-named-as-default` rule docs. (#20053) (connorshea) - 1f909cf linter: Improve docs for `unicorn/require-post-message-target-origin` rule. (#20061) (connorshea) - 12ae35c oxlint/lsp: Remove outdated ToDo for `LintOptions.run` (#20012) (Sysix) - 3be73e6 linter/plugins: Fix JSDoc comments for tokens methods (#20004) (overlookmotel) - 48ef285 linter: Update `--config` docs (#19965) (camc314) - 6ea49a0 linter: Fix some identation issues for the generated types used in `oxlint.config.ts`. (#19942) (connorshea) - 6c0e0b5 linter: Add oxlint.config.ts to the config docs. (#19941) (connorshea) - 160e423 linter: Add a note that the typeAware and typeCheck options require oxlint-tsgolint (#19940) (connorshea) - d54c275 linter: Improve rule docs for 27 unicorn rules (#19903) (connorshea) # Oxfmt ### 🚀 Features - ee26215 oxfmt: Support css-in-js substitution (#20019) (leaysgur) - 0f0ff51 oxfmt: Display default settings was used message in cli stats (#19939) (leaysgur) - 88815b8 oxfmt: Reintroduce stats line for write mode (#19938) (leaysgur) ### 🐛 Bug Fixes - ee0491e apps,napi: Explicitly specify libs in tsconfigs (#20071) (camc314) - 92f4490 oxfmt: Apply `is_ignored_dir` for glob paths too (#20056) (leaysgur) - 114f974 oxfmt/lsp: Prefer language_id over file extension when formatting (#19977) (copilot-swe-agent) ### ⚡ Performance - 2baa5fb napi: Unify build-test profile to coverage for cache sharing (#20090) (Boshen) Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Ok I lied, it's 26 unicorn rules and 1 vue rule. Sorry.
No AI here :)
This PR generally improves the documentation for all of these rules to provide more examples, improved explanations for the rules' purposes, and so on.
It also adds MDN links where relevant via new diagnostic notes.
(note: if this gets merged before the release but after the website PR is generated, make sure to regenerate the website PR 🙂)