Skip to content

docs(linter): Add oxlint.config.ts to the config docs.#19941

Merged
graphite-app[bot] merged 1 commit intomainfrom
update-config-docs
Mar 3, 2026
Merged

docs(linter): Add oxlint.config.ts to the config docs.#19941
graphite-app[bot] merged 1 commit intomainfrom
update-config-docs

Conversation

@connorshea
Copy link
Member

Previously we were not showing the oxlint.config.ts format at all in the config reference docs. This at least fixes that and removes an inaccurate warning message.

Helps fix part of oxc-project/website#950

Copilot AI review requested due to automatic review settings March 3, 2026 03:30
@github-actions github-actions bot added A-linter Area - Linter A-cli Area - CLI A-linter-plugins Area - Linter JS plugins C-docs Category - Documentation. Related to user-facing or internal documentation labels Mar 3, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Oxlint configuration reference docs to include the oxlint.config.ts format (in addition to .oxlintrc.json) and removes outdated guidance about JSON-only configs.

Changes:

  • Removes the “Only the .json format is supported” warning and drops --import-plugin from the documented usage line.
  • Adds an oxlint.config.ts example to the config schema description so it flows through to rendered docs.
  • Regenerates derived artifacts (website schema markdown/json snapshots and generated TS typings docs).

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tasks/website_linter/src/snapshots/schema_markdown.snap Updates rendered schema markdown to remove the JSON-only warning and include an oxlint.config.ts example.
tasks/website_linter/src/snapshots/schema_json.snap Updates the schema JSON snapshot to match the new schema description content.
npm/oxlint/configuration_schema.json Updates the published JSON schema description/markdownDescription to include oxlint.config.ts docs and revised usage text.
crates/oxc_linter/src/config/oxlintrc.rs Updates the Rust doc comment that feeds schema/docs, including the new TS config example.
apps/oxlint/src-js/package/config.generated.ts Regenerated TS types/docs from the updated schema.
Comments suppressed due to low confidence (4)

crates/oxc_linter/src/config/oxlintrc.rs:75

  • The usage line references oxlintrc.json, but the example immediately below uses .oxlintrc.json and the CLI default config name is .oxlintrc.json (see DEFAULT_OXLINTRC_NAME). Consider updating the usage text to match the default filename to avoid confusing users.
/// Usage: `oxlint -c oxlintrc.json`

crates/oxc_linter/src/config/oxlintrc.rs:146

  • The oxlint.config.ts example has an extra closing } right before });, which makes the sample TypeScript invalid. Remove the standalone } line so the call ends with a single });.
///  }
/// });

npm/oxlint/configuration_schema.json:4

  • The embedded oxlint.config.ts snippet in the schema strings ends with }\n});, which includes an extra } before }); and makes the sample invalid TypeScript. Also, the usage text mentions oxlintrc.json while the documented/default filename is .oxlintrc.json; consider aligning the usage line with the default/example name.
  "description": "Oxlint Configuration File\n\nThis configuration is aligned with ESLint v8's configuration schema (`eslintrc.json`).\n\nUsage: `oxlint -c oxlintrc.json`\n\nExample\n\n`.oxlintrc.json`\n\n```json\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"plugins\": [\"import\", \"typescript\", \"unicorn\"],\n\"env\": {\n\"browser\": true\n},\n\"globals\": {\n\"foo\": \"readonly\"\n},\n\"settings\": {\n\"react\": {\n\"version\": \"18.2.0\"\n},\n\"custom\": { \"option\": true }\n},\n\"rules\": {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"react/self-closing-comp\": [\"error\", { \"html\": false }]\n},\n\"overrides\": [\n{\n\"files\": [\"*.test.ts\", \"*.spec.ts\"],\n\"rules\": {\n\"@typescript-eslint/no-explicit-any\": \"off\"\n}\n}\n]\n}\n```\n\n`oxlint.config.ts`\n\n```ts\nimport { defineConfig } from \"oxlint\";\n\nexport default defineConfig({\nplugins: [\"import\", \"typescript\", \"unicorn\"],\nenv: {\n\"browser\": true\n},\nglobals: {\n\"foo\": \"readonly\"\n},\nsettings: {\nreact: {\nversion: \"18.2.0\"\n},\ncustom: { option: true }\n},\nrules: {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"react/self-closing-comp\": [\"error\", { \"html\": false }]\n},\noverrides: [\n{\nfiles: [\"*.test.ts\", \"*.spec.ts\"],\nrules: {\n\"@typescript-eslint/no-explicit-any\": \"off\"\n}\n}\n]\n}\n});\n```",

apps/oxlint/src-js/package/config.generated.ts:165

  • The oxlint.config.ts example in this generated JSDoc ends with a standalone } followed by });, which makes the sample invalid TypeScript. Fix the source schema/doc template so the snippet ends with a single });, then regenerate this file.
 * ]
 * }
 * });
 * ```

@codspeed-hq
Copy link

codspeed-hq bot commented Mar 3, 2026

Merging this PR will not alter performance

✅ 4 untouched benchmarks
⏩ 52 skipped benchmarks1


Comparing update-config-docs (6cd004c) with main (ccbd959)2

Open in CodSpeed

Footnotes

  1. 52 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on main (ec91dce) during the generation of this report, so ccbd959 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

Copy link
Contributor

@camc314 camc314 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@camc314 camc314 added the 0-merge Merge with Graphite Merge Queue label Mar 3, 2026
@camc314 camc314 self-assigned this Mar 3, 2026
Copy link
Contributor

camc314 commented Mar 3, 2026

Merge activity

Previously we were not showing the `oxlint.config.ts` format at all in the config reference docs. This at least fixes that and removes an inaccurate warning message.

Helps fix part of oxc-project/website#950
@graphite-app graphite-app bot force-pushed the update-config-docs branch from 6cd004c to 6c0e0b5 Compare March 3, 2026 12:35
@graphite-app graphite-app bot merged commit 6c0e0b5 into main Mar 3, 2026
21 checks passed
@graphite-app graphite-app bot deleted the update-config-docs branch March 3, 2026 12:42
@graphite-app graphite-app bot removed the 0-merge Merge with Graphite Merge Queue label Mar 3, 2026
camc314 pushed a commit that referenced this pull request Mar 9, 2026
# 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-cli Area - CLI A-linter Area - Linter A-linter-plugins Area - Linter JS plugins C-docs Category - Documentation. Related to user-facing or internal documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants