Skip to content

Releases: oxc-project/oxc

oxlint v1.2.0

19 Jun 04:32
6eacee2
Compare
Choose a tag to compare

[1.2.0] - 2025-06-19

🚀 Features

  • 8c341a2 sema/check: Ts setters cannot have initializers (#11695) (Don Isaac)
  • 38dc614 oxc_linter: Reuse allocators (#11736) (camc314)
  • bf8263d playground: Allow specifying a JSON string as the linter config (#11710) (Nicholas Rayburn)
  • 0b4261b vscode: Add oxc.requireConfig configuration (#11700) (Sysix)
  • 52ecc87 linter: Implement import/extensions (#11548) (Tyler Earls)
  • 094b81c language_server: Add unusedDisableDirectives option (#11645) (Sysix)

🐛 Bug Fixes

  • 3d88eeb linter/no-console: False negative when console.* methods are used as args to functions (#11790) (camc314)
  • c80e405 linter/no-new-wrappers: Fix panic in fixer with multi byte chars (#11773) (camc314)
  • e58a0b0 linter: Panic in unicorn/consistent-function-scoping (#11772) (camc314)
  • 80c87d4 linter: Typo in typescript/consistent-index-object-style (#11744) (camc314)
  • ff775e9 linter/consistent-function-scoping: Descriptive diagnostic labels (#11682) (Don Isaac)
  • 989634a linter/no-inner-declaration: False negative with for loops (#11692) (camc314)
  • b272b91 linter/no-undef: False negative with unresolved ref after type ref (#11721) (camc314)
  • 6252275 linter: Panic in import/extensions with empty file names (#11720) (camc314)
  • f34e432 linter: Use fixer::noop in dangerous cases for eslint/no-var (#11693) (camc314)
  • 6c2b41c linter/consistent-function-scoping: Allow functions in TS modules/namespaces (#11681) (Don Isaac)
  • 2ca1c70 linter/exhaustive-deps: False positive with TS Non null assertion operator (#11690) (camc314)
  • ee15f7d linter: False negative in typescript/prefer-function-type (#11674) (camc314)
  • abd0441 linter: Add missing menuitemradio and menutitemcheckbox roles (#11651) (Daniel Flynn)
  • 8776301 linter/no-inner-declarations: Flag var statement as body of for loop (#11632) (overlookmotel)

🚜 Refactor

  • 5ca3d04 ast: Add TSArrayType as AstKind (#11745) (camchenry)
  • abdbaa9 language_server: Use rule name directly from OxcCode instead of parsing out of the stringified version of OxcCode (#11714) (Nicholas Rayburn)
  • 219adcc ast: Don't generate AstKind for ArrayExpressionElement (#11684) (Ulrich Stark)
  • c1be6b8 linter: Shorten Span construction (#11686) (Ulrich Stark)
  • 4ca659c linter: Cleanup typescript/prefer-function-type (#11672) (Brad Dunbar)
  • 8e30c5f ast: Don't generate AstKind for ForStatementInit (#11617) (Ulrich Stark)

📚 Documentation

  • ea6ce9d linter: Fix typo in import/no-namespace (#11741) (camc314)
  • 8b6076e linter: Document options for the typescript/array-type rule (#11665) (yefan)

⚡ Performance

  • f539f64 allocator: Remove Arc from AllocatorPool (#11760) (overlookmotel)
  • cfdc518 linter/no-inner-declarations: Move work to cold path (#11746) (overlookmotel)
  • 7c0fff7 linter: Skip running consistent-function-scoping on .d.ts files (#11739) (camc314)
  • b34c6f6 parser,semantic: Improve handling of diagnostics (#11641) (Boshen)
  • 2cd786b linter/no-inner-declarations: Remove unnecessary code and reduce branches (#11633) (overlookmotel)

🧪 Testing

oxlint v1.1.0

12 Jun 05:37
a50696d
Compare
Choose a tag to compare

[1.1.0] - 2025-06-12

🚀 Features

  • 1181018 linter: Add eslint/no-extra-bind rule (#11588) (yefan)
  • 3b03fd3 parser: Produce correct syntax error for interface I extends (typeof T) (#11610) (Boshen)
  • 844a8a8 parser: Produce syntax error for declare function foo() {} (#11606) (Boshen)

🐛 Bug Fixes

  • 0f24366 linter: Correct labels for redundant comparisons (#11620) (Wei Zhu)
  • dd87f93 linter: Stack overflow in react/exhaustive-deps (#11613) (camc314)
  • 4af58e0 linter: Add missing additional_hooks option to exhaustive-deps (#11602) (camc314)
  • a6adc0c linter/exhaustive-deps: Handle destructuring inside hooks (#11598) (Don Isaac)
  • 779727f linter: Improve span diagnostic loc within react/rules-of-hooks (#11589) (camc314)

🚜 Refactor

  • b7b0dc3 parser: Improve TSModuleDeclaration parsing (#11605) (Boshen)
  • d29bbb2 linter: Simplify implementation of eslint/no-lonely-if (#11550) (Ulrich Stark)
  • d41fb13 ast: Get jsx types out of AstKind exceptions (#11535) (Ulrich Stark)

oxlint v1.0.0

10 Jun 09:38
3cabde2
Compare
Choose a tag to compare

Announcing Oxlint 1.0

There no notable changes from v0.18.1.

oxlint v0.18.1

09 Jun 14:01
bad91f0
Compare
Choose a tag to compare

[0.18.1] - 2025-06-09

🐛 Bug Fixes

  • 6d68568 linter: False negative in typescript/array-type (#11574) (camc314)
  • 6a856a0 linter/no-magic-numbers: Fix typo in error message (#11560) (overlookmotel)
  • 3952e01 linter: False negative in jsx-a11y/aria-role (#11547) (camc314)
  • b0e3e08 linter: Misplaced quote in jsx-curly-brace-presence test case (#11546) (camc314)
  • a833ed1 linter: Misplaced quote in anchor-is-valid test case (#11545) (camc314)
  • 4e53b80 linter: Misplaced backtick in exhaustive-deps test case (#11544) (camc314)
  • e8a04b6 linter: Misplaced backtick in no-object-constructor test case (#11543) (camc314)
  • 65311d0 linter: Remove duplicate rule/scope from diagnostic (#11531) (camc314)

🚜 Refactor

  • 7ab84c2 editor: Use pattern for textDocument filter (#11559) (Sysix)
  • 9b475ad linter: Use one instance of rope per file (#11552) (Sysix)

📚 Documentation

  • e13ed51 editor/vscode: Fix typo in README (#11572) (David)
  • fa924ab linter: Cleanup docs for multiple linter rules (#11551) (Ulrich Stark)

⚡ Performance

  • 7bf25cb language_server: Transform MessageWithPosition to Diagnostic with less allocations (#11561) (Sysix)

oxlint v0.18.0

06 Jun 15:29
85b80dc
Compare
Choose a tag to compare

[0.18.0] - 2025-06-06

  • bd9dd88 linter: [BREAKING] Add more info to json reporter (#11524) (camc314)

Features

  • 825d40c linter: Fix casing in unicorn/no-useless-promise-resolve-reject (#11528) (camc314)
  • 2faee3d linter: Fix grammer in react/exhaustive-deps (#11527) (camc314)

Bug Fixes

  • 1a71d7c linter: Misplaced backtick in unicorn/no-array-for-each diagnostic (#11529) (camc314)
  • 7430b14 linter: Grammer in jest/valid-expect diagnostic (#11522) (camc314)
  • b92ac41 linter: Grammer in eslint/no-redeclare diagnostic (#11521) (camc314)
  • 17883e3 linter: Improve eslint/no-unsafe-negation diagnostic (#11520) (camc314)
  • 8c89937 linter: Improve eslint/no-shadow-restricted-names diagnostic (#11519) (camc314)
  • 3f0d889 linter: Add missing article to oxc/bad-array-method-on-arguments diagnostic (#11518) (camc314)
  • cf0c24c linter: Improve message in react/prefer-es6-class diagnostic (#11516) (camc314)
  • 91855df linter: Fix message in react/rules-of-hooks diagnostic (#11515) (camc314)
  • b272194 linter: Misplaced backtick in jest/no-conditional-expect diagnostic (#11514) (camc314)
  • 3403303 linter: Misplaced backtick in unicorn/prefer-dom-node-dataset diagnostic (#11513) (camc314)
  • d5ca872 linter: Misplaced backtick in eslint/radix diagnostic (#11512) (camc314)
  • 2dcf8be linter: Improve diagnostic message when function name is referenced (#11509) (camc314)
  • 0de0c9c linter: Improve diagnostic message for no-unsafe-declaration-merging (#11508) (camc314)
  • 0946dac linter: Correctly inherit categories when plugins are enabled (#11353) (Cameron)
  • 510c1c6 linter: Add missing allowArrowFunctions option for eslint/func-style (#11455) (yefan)
  • c77787c linter: Improve eslint/no-loss-of-precision (#11437) (magic-akari)
  • 11d4523 linter: False positive in react/exhaustive-deps (#11438) (camc314)
  • 616b613 linter/switch-case-braces: Align the logic with unicorn (#11405) (shulaoda)

Refactor

  • db0b099 language_server: Convert only once uri to path when creating ServerLinter (#11503) (Sysix)
  • ccceb52 language_server: Simplify workspace/didChangeConfiguration call (#11462) (Sysix)
  • 0fdc51e linter: Simplify OxlintRules::override_rules (#11510) (camc314)

Testing

  • 2ba2893 editor: Fix test for auto fixAll on save (#11448) (Sysix)

oxlint v0.17.0

30 May 18:37
9fda4f5
Compare
Choose a tag to compare

[0.17.0] - 2025-05-30

  • ead5309 linter: [BREAKING] Remove react from default plugin set (#11382) (camc314)

Features

  • 2d25bd8 linter: Remove unicorn/no-for-loop over typescript/prefer-for-of (#11354) (camc314)
  • bbb7eb1 linter: Add auto-fix to react/forward-ref-uses-ref (#11342) (yefan)
  • 590c27b linter: Add auto-fix to unicorn/no-await-expression-member (#11306) (yefan)
  • 7824f01 linter: Implement suggestion for jsx/no-useless-fragment (#10800) (Cam McHenry)
  • 2083d33 linter/language_server: Add second editor suggestion for react/forward-ref-uses-ref (#11375) (Sysix)

Bug Fixes

  • f6424dd linter: Reflect react plugin is disabled by default in cli (#11397) (camc314)
  • 25ecbfe linter: Remove use of FrameworkFlags::React to decide whether rules should run (#11383) (camc314)
  • 0d240e4 linter: False positive in react/exhaustive-deps with default formal parameter (#11395) (camc314)
  • c91697e linter: Fix panic in multi byte char in TryFrom aria (#11350) (camc314)
  • 9798ef1 linter: Stack overflow in no-async-endpoint-handlers (#11317) (camc314)
  • 348ad97 linter: Skip no-unused-vars on astro files (#11303) (camc314)
  • 183d7f0 linter: Make jest/no-large-snapshots error easier to comprehend (#11294) (Ulrich Stark)
  • 4e606a5 linter: Improve jest/no-large-snapshots (#11291) (Ulrich Stark)
  • 14f790f linter: Improve jest/no-restricted-matchers (#11292) (Ulrich Stark)
  • a2c82be linter/block-scoped-var: Better diagnostic messages (#11290) (DonIsaac)
  • 19772e5 linter/no-unused-vars: Panic when variable is redeclared as function in same scope (#11280) (Dunqing)
  • 7af5bb1 oxc_language_server: Include save option for text document sync capability (#11297) (Nicholas Rayburn)

Performance

  • 0ed6c1a language_server: Use Arc<RwLock> instead of Mutex for workspace workers (#11328) (Sysix)
  • a0ee946 linter: Reduce code size in globals (#11333) (shulaoda)
  • c90c5e9 linter/no-unused-vars: Simplify checking self call usage (#11281) (Dunqing)

Documentation

  • eae51ca linter: Clarify jsdoc/check-tag-names configuration (#11394) (Rägnar O'ock)
  • cd354d4 oxlint: Remove incorrect doc comment (#11326) (camc314)

Refactor

  • 42738f0 linter: Shorten code of match arms (#11389) (Ulrich Stark)
  • 8a34447 linter: Improve unicorn/text-encoding-identifier-case (#11386) (shulaoda)
  • eaa605e linter: Avoid some Arc::clone in linter runtime (#11388) (Boshen)
  • 1cd8b9c linter: Fixes in react/forward-ref-uses-ref are suggestions (#11376) (Sysix)
  • 50ef691 linter: Add diagnostics_with_multiple_fixes to LintContext (#11357) (Sysix)
  • 606bb34 linter: Accept PossibleFixes instead of Fix for Messages (#11295) (Sysix)
  • 042a3f3 linter: Use PossibleFixes instead of Option<Fix> (#11284) (Sysix)
  • ffcfb46 linter: Improve unicorn/throw-new-error (#11364) (shulaoda)
  • 8fb55c3 linter: Cleanup docs and simplify code of eslint/no-fallthrough (#11331) (Ulrich Stark)
  • e2f0f0a linter: Improve docs and simplify code of eslint/no-duplicate-imports (#11320) (Ulrich Stark)
  • b53b053 linter: Simplify accessing span of NameSpan (#11305) (Ulrich Stark)
  • 4bc2650 linter: Improve eslint/no-void (#11285) (shulaoda)

Styling

  • 49b664c linter: Remove needless newline in declare_oxc_lint (#11400) (camc314)

Testing

  • c4f64aa linter: Explicitly disable correctness for clarity (#11327) (camc314)
  • a404b2c linter: eslint/no-duplicate-imports shouldn't report the same span (#11324) (Ulrich Stark)

oxlint v0.16.12

25 May 07:01
e5eb45c
Compare
Choose a tag to compare

[0.16.12] - 2025-05-25

Features

  • 0c1f382 language_server: Watch for files inside .oxlintrc.json extends (#11226) (Sysix)
  • 1675b2c language_server: Tell clients to watch for .oxlintrc.json files (#11078) (Sysix)
  • 691416a linter: Add auto-fix to unicorn/no-static-only-class (#11249) (yefan)
  • 6a7018e linter: Generate stricter json schema for lint plugins (#11219) (camc314)
  • 66e0b1f linter: Implement unicorn/prefer-global-this (#11197) (camc314)
  • b26554b linter: Implement unicorn/no-instanceof-builtins (#11196) (camc314)
  • 699ec64 linter: Add autofix to eslint/no-unneeded-ternary (#11184) (yefan)
  • b3bbdda linter: Implement unicorn/prefer-object-from-entries (#11174) (camc314)
  • 20f9458 linter: Implement unicorn/prefer-array-find (#11170) (camc314)
  • f294c42 linter: Implement unicorn/no-array-method-this-argument (#11169) (camc314)
  • 07dac71 linter: Implement unicorn/prefer-array-index-of (#11168) (camc314)
  • cd920d3 linter: Implement unicorn/no-unnecessary-array-flat-depth (#11167) (camc314)
  • 385b84d linter: Unicorn/no-for-loop (#11154) (camc314)
  • a762038 linter: Add auto-fix to eslint/no-array-constructor (#11148) (yefan)
  • 12b0917 linter: Auto-generate docs for rule configs (#10629) (DonIsaac)

Bug Fixes

  • 0df5147 language_server: Correctly disable nested config search (#11173) (Sysix)
  • e8470d9 linter: Delay merging of oxlintrc configs (#10835) (camc314)
  • 6e9de84 linter: False positives in no-instanceof-builtins (#11210) (camc314)
  • 8e7fe03 linter: Fix panic in eslint/require-await (#11211) (camc314)
  • 4104b01 linter: Fix false positive on React in consistent-type-imports (#11171) (DonIsaac)
  • 25c6266 linter: Remove duplicate test case from no-useless-escape (#11146) (camc314)
  • 6a5911a linter: Add allow_regex_characters option to no-useless-escape (#11139) (camc314)
  • 7283f00 linter/prefer-todo: False fix for test['skip'] (#11128) (shulaoda)

Performance

  • 0c7aae4 linter: Speed up counting lines in eslint/max-lines and eslint/max-lines-per-function (#11242) (Ulrich Stark)
  • 1846b03 linter: Avoid iterating lines twice if blank lines are skipped (#11235) (Ulrich Stark)
  • e8479bf linter: Remove unnecessary codegen in jest/no-untyped-mock-factory (#11097) (shulaoda)
  • dd33e57 linter: Remove unnecessary codegen in eslint/prefer-numeric-literals (#11099) (shulaoda)
  • 49d677c linter: Remove unnecessary codegen in jest/prefer-to-have-length (#11100) (shulaoda)
  • c294447 linter: Remove unnecessary codegen in vitest/prefer-to-be-object (#11086) (shulaoda)
  • 8faf518 linter: Remove unnecessary codegen in unicorn/require-number-to-fixed-digits-argument (#11085) (shulaoda)
  • e1bbdab linter/prefer-expect-resolves: Remove unnecessary codegen (#11127) (shulaoda)
  • 6e3e37b unicorn/no-instanceof-array: Reduce memory allocations in fixer (#11109) (shulaoda)

Documentation

  • f2e3e79 linter: Fix formatting inconsistencies in rule docs (#11227) (Ulrich Stark)
  • df4cc8d linter: Update missing linter rule documentation (#11190) (Aman Desai)
  • b70c51e linter: Google_font_preconnect: linter rules (#11189) (Aman Desai)
  • 67c0b4d linter: Explanation for rule nextjs/no_sync_script (#11166) (Aman Desai)
  • c974f32 linter: Improve rule docs for eslint/no-bitwise (#11126) (Ulrich Stark)
  • cbb8e0b linter: Improve rule docs for eslint/default-case (#11125) (Ulrich Stark)
  • bcc923c linter: Normalize rule docs format (#11104) (Ulrich Stark)
  • 69a14ab linter: Improve docs for eslint/no-debugger (#11103) (Ulrich Stark)
  • 2f7346b linter: Improve docs for eslint/no-constructor-return (#11102) (Ulrich Stark)

Refactor

  • a28fe1e editor: Use always the provided language server (#11115) (Sysix)
  • 0d192e8 language_server: Introduce ServerLinter.extended_paths property (#11223) (Sysix)
  • ff8f519 language_server: Restructure initialized function (#11077) (Sysix)
  • 6b68de0 language_server: Add intern capability for didChangeWatchedFiles.dynamicRegistration (#11075) (Sysix)
  • 35761ae language_server/editor: Refresh file watchers without restarting the server (didChangeConfiguration) (#11112) (Sysix)
  • d5fdf17 language_server/editor: Refresh file watchers without restarting the server (didChangeWorkspaceFolders) (#11094) (Sysix)
  • c64f800 linter: Introduce ConfigStoreBuilder.extended_paths property (#11222) (Sysix)
  • e4c7614 linter: Cleanup eslint/no-useless-constructor (#11221) (Ulrich Stark)
  • a695472 linter: Simplify finding ancestor of specific kind (#11224) (Ulrich Stark)
  • b822ac8 linter: Simplify deserialization for AllowWarnDeny (#11195) (camc314)
  • 1210621 linter: Remove functions in favor of Span::contains_inclusive (#11133) (Ulrich Stark)
  • 73b3f42 linter: Better names for parameters of diagnostic functions (#11129) (Ulrich Stark)
  • 24fe879 linter: Remove unnecessary span construction (#11131) (Ulrich Stark)
  • f079338 linter: Remove unnecessary macro (#11114) (overlookmotel)
  • 9f3a14a linter: Cleanup diagnostic and docs for eslint/no-console (#11101) (Ulrich Stark)
  • 18cdabf linter/prefer-todo: Remove unnecessary codegen (#11130) (shulaoda)
  • bb8bde3 various: Update macros to use expr fragment specifier (#11113) (overlookmotel)

oxlint v0.16.11

16 May 09:42
c9f7575
Compare
Choose a tag to compare

[0.16.11] - 2025-05-16

Features

  • 078bf0b language_server: Better fallback handling when passing invalid Options values (#10930) (Sysix)
  • be7f7e1 language_server/editor: Support multi workspace folders (#10875) (Sysix)
  • eef93b4 linter: Add import/no-unassigned-import (#10970) (yefan)
  • cc0112f linter: No-unused-vars add setting for reportVarsOnlyUsedAsTypes (#11009) (camc314)
  • 17e49c3 linter: Implement configuration and checking loops for eslint/no_constant_condition (#10949) (Ulrich Stark)
  • 21117ac linter: Implement react/forbid-elements (#10928) (Thomas BOCQUEZ)
  • 466c24a linter: Add gitlab reporter output format (#10927) (Connor Pearson)
  • a064082 linter: Add import/consistent-type-specifier-style rule (#10858) (yefan)
  • 4733b52 linter/no-extraneous-class: Add conditional fixer (#10798) (DonIsaac)

Bug Fixes

  • 87bf2a8 editor: Send only workspace/didChangeConfiguration when some workspace configuration is effected (#11017) (Sysix)
  • ed5708d editor: Detect all workspaces config path changes (#11016) (Sysix)
  • 89cc21b language_server: Normalize oxlintrc config path (#10982) (Sysix)
  • c52a9ba linter: Fix plugins inside overrides not being applied (#11057) (camc314)
  • b12bd48 linter: Fix rule config not being correctly applied (#11055) (camc314)
  • 9a368be linter: False negative in no-restriced-imports with patterns and side effects (#11027) (camc314)
  • 8c2cfbc linter: False negative in no-restricted-imports (#11026) (camc314)
  • 8956870 linter: False positive in no-unused-vars (#11002) (camc314)
  • 33a60d2 linter: Skip eslint/no-redeclare when running on modules (#11004) (camc314)
  • 39063ce linter: Reword diagnostic message for no-control-regex (#10993) (camc314)
  • 9eedb58 linter: False positive with negative matches in no-restricted-imports (#10976) (camc314)
  • 10e77d7 linter: Improve diagnostics for no-control-regex (#10959) (camc314)
  • 0961296 linter: Add gitlab to linter --help docs (#10932) (camc314)
  • 82889ae linter/no-extraneous-class: Improve docs, reporting and code refactor (#10797) (DonIsaac)
  • 11c34e7 linter/no-img-element: Improve diagnostic and docs (#10908) (DonIsaac)
  • 584d8b9 napi: Enable mimalloc no_opt_arch feature on linux aarch64 (#11053) (Boshen)
  • 126ae75 semantic: Distinguish class private elements (#11044) (magic-akari)
  • 773d0de semantic: Correctly handle nested brackets in jsdoc parsing (#10922) (camc314)
  • b215b6c semantic: Dont parse @ as jsdoc tags inside [/] (#10919) (camc314)

Documentation

  • db6afb9 linter: Improve docs of no-debugger (#11033) (camc314)
  • 16541de linter: Improve docs of default-param-last (#11032) (camc314)
  • 2c2f3c4 linter: Improve docs of default-case-last (#11031) (camc314)
  • 56bb9ce linter: Improve docs of array-callback-return (#11030) (camc314)
  • 13dbcc6 linter: Correct docs for default config for no-redeclare (#10995) (camc314)
  • a86cbb3 linter: Fix incorrect backticks of fenced code blocks (#10947) (Ulrich Stark)

Refactor

  • 3cc1466 language_server: New configuration structure for initialize and workspace/didChangeConfiguration (#10890) (Sysix)
  • bd2ef7d language_server: Use Arc for diagnostic_report_map (#10940) (Sysix)
  • bb999a3 language_server: Avoid cloning linter by taking reference in LintService (#10907) (Ulrich Stark)
  • d1b0c83 linter: Remove overrides index vec (#11058) (camc314)
  • 7ad6cf8 linter: Store severity separately, remove RuleWithSeverity (#11051) (camchenry)
  • e31c361 linter: Remove nested match statements in no-restricted-imports (#10975) (camc314)
  • 6ad9d4f linter: Tidy eslint/func-names (#10923) (camc314)
  • faf0a95 syntax: Rename NameSpaceModule to NamespaceModule (#10917) (Dunqing)

Testing

  • 76b6b33 editor: Add tests for multi workspace folder setup (#10904) (Sysix)

oxlint v0.16.10

09 May 07:06
cbf3134
Compare
Choose a tag to compare

[0.16.10] - 2025-05-09

Features

  • e1bc037 language_server: Request for workspace configuration when client did not send them in initialize (#10789) (Sysix)
  • 3bd339b language_server: Provide commands / code actions for unopened files (#10815) (Sysix)
  • 4c62348 linter: Regex/no-useless-backreference (#10773) (camc314)
  • d7ebdd7 linter: Add unicorn/no-unnecessary-slice-end rule (#10826) (yefan)

Bug Fixes

  • f3cc3a2 language_server: Request client for configuration when no configuration is passed in workspace/didChangeConfiguration (#10871) (Sysix)
  • 24fcb1e language_server: Return server version initialize response (#10810) (Sysix)
  • 7d09973 linter: False positive with withResolvers in prefer-await-to-then (#10896) (camc314)
  • 9b94300 linter: Mark fixer as dangerous for erasing-op (#10868) (camc314)
  • ae70cc1 linter: Add missing option to no-shadow-restricted-names (#10827) (camc314)
  • b2c287f linter/no-unused-vars: Fixer cannot delete usused for in/of iterators (#10824) (DonIsaac)
  • 5ce0a68 linter/no-unused-vars: Recognize parameters used in await/yield expressions within comma expressions (#10808) (magic-akari)

Performance

  • 00ffbc9 language_server: Do not request for configuration when all workers are ready (#10897) (Sysix)
  • 96cca22 language_server: Use simdutf8 when reading files from file system (#10814) (Sysix)

Documentation

  • efaadd3 linter: Fix a few incorrect backticks in no_restricted_imports (#10914) (Boshen)
  • ccda8f0 linter: Improve no-plusplus docs (#10885) (Peter Cardenas)
  • 5f15809 linter: Improve docs for jsdoc/require-property (#10705) (camc314)

Refactor

  • 553ab5b language_server: Remove OnceCell from WorkspaceWorker.root_uri (#10898) (Sysix)
  • f43fd18 language_server: Move the initialization of ServerLinter into a separate call (#10776) (Sysix)
  • 39e0463 language_server: Move nested_configs to ServerLinter (#10775) (Sysix)
  • 9ec13f6 language_server: Move gitignore_glob to ServerLinter (#10762) (Sysix)
  • 3d47159 language_server: Use IsolatedLintHandlerFileSystem (#10830) (Sysix)
  • 3d794f6 language_server: Move functions related to ServerLinter to ServerLinter (#10761) (Sysix)
  • 79819cc linter: Move around some config store logic (#10861) (camc314)
  • e132aba linter: Extract nested config searching to a fn (#10860) (camc314)
  • 243c247 linter: Able to use custom file system in runtime (#10828) (Sysix)
  • efb4fb8 oxlint: Avoid result unwrap (#10836) (camc314)

Testing

  • 47b946d linter: Use TesterFileSystem for Runtimes filesystem (#10829) (Sysix)

oxlint v0.16.9

03 May 13:33
f400a11
Compare
Choose a tag to compare

[0.16.9] - 2025-05-03

Features

  • 63f02a8 linter: Add react/forward_ref_uses_ref (#10506) (x6eull)
  • a3ada34 linter: Implement fixer for unicorn/prefer-number-properties (#10693) (camc314)
  • e97a4e0 linter: Add fixer to unicorn/prefer-spread (#10691) (camc314)
  • a69a0ee linter: Add eslint/block-scoped-var (#10237) (yefan)
  • 387af3a linter: Report vars only used as types (#10664) (camc314)
  • eac205f linter: Add unicorn/consistent-assert rule (#10653) (Shota Kitahara)
  • 0e6a727 linter: Add autofixer for eslint/radix (#10652) (yefan)
  • fb070c4 linter/no-extra-boolean-cast: Implement auto-fixer (#10682) (DonIsaac)
  • 432cd77 linter/no-new-wrapper: Implement auto-fixer (#10680) (DonIsaac)

Bug Fixes

  • 4ee95ec editor: Activate extension when astro files are opened too (#10725) (Sysix)
  • 46665bd langage_server: Fix initialize nested configs (#10698) (Sysix)
  • eb3f37c language_server: On configuration change, send updated diagnostics to the client (#10764) (Sysix)
  • 8c499c6 linter: Fix panic when doing code gen on regexp (#10769) (camc314)
  • 8e99abf linter: Fix grammer in no unused vars diagnostic msg (#10770) (camc314)
  • b38338a linter: Make require post message target origin a fixer a suggestion (#10754) (camc314)
  • 48c542d linter: Skip linting vue <script> where lang is not js / ts (#10740) (Boshen)
  • c9575f6 linter: Fix false positive in react/exhaustive deps (#10727) (camc314)
  • d8d8f64 linter: Shorten span of promise/prefer-await-to-then (#10717) (camc314)
  • a88e349 linter: Mark isNan and isFinite as dangerous fixes in unicorn/prefer-number-properties (#10706) (Sysix)
  • f4ab05f linter: Panic in unicorn/no-useless-spread (#10715) (camc314)
  • 06f1717 linter: False positive in no unused vars when importing value used as type (#10690) (camc314)
  • 746b318 linter: False positive in typescript/explicit-function-return-type with satisfies (#10668) (camc314)
  • cce1043 linter: False positive in typescript/explicit-function-return-type (#10667) (camc314)
  • c89da93 linter: False positive in eslint/curly on windows (#10671) (camc314)
  • 374e19e linter: False positive in react/jsx-curly-brace-presence (#10663) (camc314)
  • e7c2b32 linter: Move consistent-assert to pedantic (#10665) (camc314)
  • 344ef88 linter: False positive in eslint/no-unused-vars when calling inside sequence expression (#10646) (Ulrich Stark)
  • 98bcd5f lsp: Incorrect quick fix offset in vue files (#10742) (camc314)

Documentation

  • 275fe71 editor: oxc.flags are not related to oxlint (#10645) (Sysix)

Refactor

  • 2efe3f0 linter: Move run on regex node to utils (#10772) (camc314)

Testing

  • 1c4f90f editor: Add test for nested config serverity (#10697) (Sysix)
  • 9ebf3d4 language_server: Refactor tester to use WorkspaceWorker (#10730) (Sysix)
  • 5a709ad language_server: Add test for init_nested_configs (#10728) (Sysix)
  • 2615758 language_server: Fix slow test (#10659) (Alexander S.)
  • fd18aaa language_server: Skip slow test (#10658) (overlookmotel)
  • f6f1c5c lsp: Include fixed content in lsp snapshots (#10744) (camc314)