Note: This PR body was truncated due to platform limits.
This PR contains the following updates:
Release Notes
oxc-project/oxc (oxlint)
Compare Source
Compare Source
🚀 Features
9e624c9 linter/react: Add version to ReactPluginSettings (#17169) (camc314)
Compare Source
🚀 Features
a0f74a0 linter/config: Allow aliasing plugin names to allow names the same as builtin plugins (#15569) (Cameron)
🐛 Bug Fixes
005ec25 linter: Permit $schema .oxlintrc.json struct (#17060) (Copilot)
d446c43 linter: Prevent extra fields from being present on oxlint config file (#16874) (connorshea)
Compare Source
Compare Source
Compare Source
Compare Source
🚀 Features
595867a oxlint: Generate markdownDescription fields for oxlint JSON schema. (#15959) (connorshea)
Compare Source
🚀 Features
84de1ca oxlint,oxfmt: Allow comments and also commas for vscode-json-ls (#15612) (leaysgur)
Compare Source
v1.27.0: oxlint v1.27.0 && oxfmt v0.12.0
Compare Source
Oxlint v1.27.0
🚀 Features
222a8f0 linter/plugins: Implement SourceCode#isSpaceBetween (#15498) (overlookmotel)
2f9735d linter/plugins: Implement context.languageOptions (#15486) (overlookmotel)
bc731ff linter/plugins: Stub out all Context APIs (#15479) (overlookmotel)
5822cb4 linter/plugins: Add extend method to FILE_CONTEXT (#15477) (overlookmotel)
7b1e6f3 apps: Add pure rust binaries and release to github (#15469) (Boshen)
2a89b43 linter: Introduce debug assertions after fixes to assert validity (#15389) (camc314)
ad3c45a editor: Add oxc.path.node option (#15040) (Sysix)
🐛 Bug Fixes
6f3cd77 linter/no-var: Incorrect warning for blocks (#15504) (Hamir Mahal)
6957fb9 linter/plugins: Do not allow access to Context#id in createOnce (#15489) (overlookmotel)
7409630 linter/plugins: Allow access to cwd in createOnce in ESLint interop mode (#15488) (overlookmotel)
732205e parser: Reject using / await using in a switch case / default clause (#15225) (sapphi-red)
a17ca32 linter/plugins: Replace Context class (#15448) (overlookmotel)
ecf2f7b language_server: Fail gracefully when tsgolint executable not found (#15436) (camc314)
3c8d3a7 lang-server: Improve logging in failure case for tsgolint (#15299) (camc314)
ef71410 linter: Use jsx if source type is JS in fix debug assertion (#15434) (camc314)
e32bbf6 linter/no-var: Handle TypeScript declare keyword in fixer (#15426) (camc314)
6565dbe linter/switch-case-braces: Skip comments when searching for : token (#15425) (camc314)
85bd19a linter/prefer-class-fields: Insert value after type annotation in fixer (#15423) (camc314)
fde753e linter/plugins: Block access to context.settings in createOnce (#15394) (overlookmotel)
ddd9f9f linter/forward-ref-uses-ref: Dont suggest removing wrapper in invalid positions (#15388) (camc314)
dac2a9c linter/no-template-curly-in-string: Remove fixer (#15387) (camc314)
989b8e3 linter/no-var: Only fix to const if the var has an initializer (#15385) (camc314)
cc403f5 linter/plugins: Return empty object for unimplemented parserServices (#15364) (magic-akari)
⚡ Performance
25d577e language_server: Start tools in parallel (#15500) (Sysix)
3c57291 linter/plugins: Optimize loops (#15449) (overlookmotel)
3166233 linter/plugins: Remove Arcs (#15431) (overlookmotel)
9de1322 linter/plugins: Lazily deserialize settings JSON (#15395) (overlookmotel)
3049ec2 linter/plugins: Optimize deepFreezeSettings (#15392) (overlookmotel)
444ebfd linter/plugins: Use single object for parserServices (#15378) (overlookmotel)
📚 Documentation
97d2104 linter: Update comment in lint.rs about default value for tsconfig path (#15530) (Connor Shea)
2c6bd9e linter: Always refer as "ES2015" instead of "ES6" (#15411) (sapphi-red)
a0c5203 linter/import/named: Update "ES7" comment in examples (#15410) (sapphi-red)
3dc24b5 linter,minifier: Always refer as "ES Modules" instead of "ES6 Modules" (#15409) (sapphi-red)
2ad77fb linter/no-this-before-super: Correct "Why is this bad?" section (#15408) (sapphi-red)
57f0ce1 linter: Add backquotes where appropriate (#15407) (sapphi-red)
Oxfmt v0.12.0
🚀 Features
3251000 oxfmt: Use prettier directly and bundle prettier (#15544) (Dunqing)
7b1e6f3 apps: Add pure rust binaries and release to github (#15469) (Boshen)
33ad374 oxfmt: Disable embedded formatting by default for alpha (#15402) (leaysgur)
5708126 formatter/sort_imports: Add options.newlinesBetween (#15369) (leaysgur)
2dfc3bd formatter: Remove Tag::StartVerbatim and Tag::EndVerbatim (#15370) (Dunqing)
88c7530 formatter: Remove FormatElement::LocatedTokenText (#15367) (Dunqing)
🐛 Bug Fixes
d32d22e formatter: Correct FormatElement size check (#15461) (Dunqing)
b0f43f9 formatter: Test call difference (#15356) (Dunqing)
01f20f3 formatter: Incorrect comment checking logic for grouping argument (#15354) (Dunqing)
⚡ Performance
f4b75b6 formatter: Pre-allocate enough space for the FormatElement buffer (#15422) (Dunqing)
5a61189 formatter: Avoid unnecessary allocation for BinaryLikeExpression (#15467) (Dunqing)
064f835 formatter: Optimize printing call arguments (#15464) (Dunqing)
29f35b2 formatter: Reuse previous indent stack in FitsMeasurer (#15416) (Dunqing)
a6808a0 oxfmt: Use AllocatorPool to reuse allocator between threads (#15412) (leaysgur)
2515045 formatter: Use CodeBuffer's built-in print_indent to print indentation (#15406) (Dunqing)
681607b formatter: Check the Text to see whether it has multiple lines based on its width (#15405) (Dunqing)
b92deb4 formatter: Replace String buffer with byte-oriented CodeBuffer (#14752) (Boshen)
963b87f formatter: Add text_without_whitespace for text that can never have whitespace (#15403) (Dunqing)
f30ce4b formatter: Optimize formatting literal string (#15380) (Dunqing)
8f25a0e formatter: Memorize text width for FormatElement::Text (#15372) (Dunqing)
f913543 formatter: Avoid allocation for SyntaxTokenCowSlice (#15366) (Dunqing)
98c9234 formatter: Optimize FormatElement::Token printing (#15365) (Dunqing)
Compare Source
🚀 Features
26f24d5 linter: Permit comments in .oxlintrc.json via json schema file (#15249) (Martin Leduc)
🐛 Bug Fixes
d6996d0 linter: Fix JSON schema to deny additional properties for categories enum. (#15257) (Connor Shea)
9304f9f linter: Fix JSON schema to deny additional properties for plugins enum. (#15259) (Connor Shea)
📚 Documentation
84ef5ab linter: Avoid linebreaks for markdown links and update plugins docs in the configuration schema. (#15246) (Connor Shea)
Compare Source
🚀 Features
bd74603 linter: Add support for vitest/valid-title rule (#12085) (Tyler Earls)
Compare Source
🐛 Bug Fixes
28e76ec oxlint: Resolving JS plugin failing when extends is used (#14556) (camc314)
v1.23.0: oxlint v1.23.0
Compare Source
[1.23.0] - 2025年10月13日
🚀 Features
452d128 linter: Node/no_process_env (#14536) (Kenneth Skovhus)
a9e1261 linter: Implement react-refresh/only-export-components (#14122) (Rintaro Itokawa)
a8d542b linter/no-duplicate-imports: Support allowSeparateTypeImports option (#14527) (camc314)
75a529c linter: Add run info about what functions rules implement (#13839) (camchenry)
4fbdef2 language_server: Support fmt.configPath configuration (#14502) (Sysix)
4d3ce2e language_server: Autodetect root .oxfmtrc.json (#14466) (Sysix)
🐛 Bug Fixes
fb4a20d language_server: Add whitespace for // oxlint-disable-next-line fix (#14356) (Sysix)
6fce7f4 oxlint/changelog: Remove duplicate changelog entries (#14528) (camc314)
74e52f3 linter/plugins: Resolve JS plugins with ESM condition names (#14541) (magic-akari)
9965676 linter/exhaustive-deps: Ignore empty strings passed to additionalHooks option (#14464) (Redas)
d0a8e3e linter: vue/no_required_prop_with_default called Option::unwrap() on a None value (#14491) (Sysix)
1192ea2 linter: Correct nextjs/no-typos path handling (#14480) (shulaoda)
2796b16 tsgolint: Pipe tsgolints stderr (#14477) (camc314)
🚜 Refactor
6440cde linter: Remove lifetime of Message (#14481) (Sysix)
f599bef language_server: Move Message to DiagnosticReport transformation to one place (#14447) (Sysix)
4f301de napi/parser, linter/plugins: Improve formatting of generated code (#14554) (overlookmotel)
68c0252 napi/parser, linter/plugins: Shorten generated raw transfer deserializer code (#14553) (overlookmotel)
20e884e linter: Store LintService in LintRunner (#14471) (Sysix)
9e9c5ba linter: Simplify built-in lint plugin checks (#14518) (camchenry)
1986e0f linter/no-ex-assign: Use let-else chain (#14526) (camc314)
ce9bcf0 linter/no-func-assign: Use let-else chain (#14525) (camc314)
a9cea7c language_server: Use FxHashSet for ServerLinter::extended_paths (#14517) (Sysix)
ea5838e linter/no-import-assign: Use let-else chain (#14524) (camc314)
f977700 language_server: Pass LintOptions to Worker::refresh_server_linter (#14510) (Sysix)
54b001f linter/no-new-require: Improve diagnostic message clarity (#14511) (shulaoda)
650ea68 linter: Improve nextjs/no-typos rule (#14476) (shulaoda)
📚 Documentation
198f2e9 linter: Fix code example for branches-sharing-code (#14514) (camc314)
d776a17 linter: Improve nextjs/no-typos rule documentation (#14470) (shulaoda)
⚡ Performance
b44a30e language_server: Transform Message to DiagnosticReport with one call (#14448) (Sysix)
31766fd linter/plugins: Provide loc via prototype (#14552) (overlookmotel)
aec0c08 linter: Allow analyzing node types in match blocks with guards (#14459) (camchenry)
9044187 linter: Skip running node-specific rule if file contains no relevant nodes (#14457) (camchenry)
422f54e linter: Only run rule run functions if implemented (#14454) (camchenry)
2c228ae liner: Use top-level match for no_obj_calls (#14523) (camchenry)
c49d891 linter: Use match for no_negated_condition (#14522) (camchenry)
e222fc2 linter: Use match for no_multi_assign (#14521) (camchenry)
4440516 linter: Refactor rules to take advantage of node type skipping (#14519) (camchenry)
78261d6 linter: Refactor no-invalid-fetch-options to be more easily analyzed (#14458) (camchenry)
🧪 Testing
8d8881d linter/plugins: Expand tests for module resolution of plugins (#14559) (overlookmotel)
33b6cde language_server: Add basic tests for WorkspaceWorker::did_change_configuration (#14531) (Sysix)
bfe1ecd language_server: Add tests for WorkspaceWorker::init_watchers (#14516) (Sysix)
💼 Other
v1.22.0: oxlint v1.22.0
Compare Source
[1.22.0] - 2025年10月08日
🚀 Features
9f9d25f linter/oxc: Implement branches-sharing-code (#14440) (camc314)
🐛 Bug Fixes
💼 Other
Compare Source
🐛 Bug Fixes
v1.20.0: oxlint v1.20.0
Compare Source
[1.20.0] - 2025年10月06日
🚀 Features
d16df93 linter: Support disable directives for type aware rules (#14052) (camc314)
f5c6acc linter: Add vue/no-export-in-script-setup rule (#14307) (Sysix)
353b153 linter: Implement eslint/no-param-reassign rule (#14341) (Matthew Davis)
a2914fe linter/plugins: Add loc field getter to all AST nodes (#14355) (overlookmotel)
07193c2 linter/plugins: Implement SourceCode#getAncestors (#14346) (overlookmotel)
c8de6fe linter/plugins: Add parent field to AST nodes (#14345) (overlookmotel)
5505a86 linter/plugins: Include range field in AST (#14321) (overlookmotel)
3656908 rust: Oxc-index-vec v4.0 (#14254) (Boshen)
1347de4 linter/plugins: Accept diagnostics with loc (#14304) (overlookmotel)
aefc8b3 linter/plugins: Implement SourceCode#getIndexFromLoc and getLocFromIndex (#14303) (overlookmotel)
93807db linter/plugins: Implement SourceCode#lines property (#14290) (overlookmotel)
2f8c985 linter/plugins: Implement SourceCode#visitorKeys property (#14289) (overlookmotel)
b69028f linter/plugins: Implement SourceCode#ast property (#14287) (overlookmotel)
d8d3d18 linter: Add vue/prefer-import-from-vue rule (#14284) (Sysix)
f0e760b linter: Add vue/define-props-destructuring rule (#14272) (Sysix)
bdf9010 linter/plugins: Add SourceCode API (#14281) (overlookmotel)
7f450fc linter/unicorn: Implement require-module-specifiers (#13089) (keita hino)
a1e7154 linter/unicorn: Implement prefer-classlist-toggle (#14262) (camc314)
8217dce linter/unicorn: Implement no-unnecessary-array-splice-count (#14255) (camc314)
3d5db4a linter/unicorn: Implement no-useless-error-capture-stack-trace (#14222) (camc314)
b3b482a linter/unicorn: Implement prefer-top-level-await (#14247) (camc314)
7931be8 linter/unicorn: Implement prefer-class-fields (#14245) (camc314)
a39434a linter/unicorn: Implement prefer-at (#14232) (camc314)
🐛 Bug Fixes
e605222 linter/no-useless-undefined: Correctly respect checkArguments option (#14369) (camc314)
f1bc608 linter: Fix flaky import/no_cycle test (#14328) (Boshen)
9a902c0 linter/plugins: Make range field non-optional on AST types (#14354) (overlookmotel)
0a42d7f tsgolint: Report errors if we fail to parse tsgolint diagnostic messages (#14301) (camc314)
42f8d7e linter/react-hooks: Fix diagnostic message for literal in dependency array (#14266) (camc314)
ece91c5 linter/react-hooks: Fix diagnostic message for duplicate dependency in array (#14265) (camc314)
864fa0e linter/no-unused-expression: False positive with satisfies expressions (#14259) (camc314)
adff069 language_server: Don't apply "ignore this rule" fixes for fixAll code action + command (#14243) (Sysix)
46cceb8 linter/rules-of-hooks: Correctly place primary span to fix disable directive (#14237) (camc314)
🚜 Refactor
1489376 napi/parser, linter/plugins: Minify walker code (#14376) (overlookmotel)
c8eeeb5 linter/plugins: Remove build-time dependency on napi/parser (#14374) (overlookmotel)
fb1a067 linter/plugins: Bundle walker and AST types map (#14373) (overlookmotel)
93d8164 linter/plugins: Export AST types direct from oxlint package (#14353) (overlookmotel)
230d996 linter/plugins: SourceCode#getText use range (#14352) (overlookmotel)
6e52bbd linter/plugins: Move location-related code into separate file (#14350) (overlookmotel)
13f1003 linter/plugins: Share ast between files (#14349) (overlookmotel)
00dde41 tsgolint: Make parsing TsGoLintMessage parsing errors an enum (#14300) (camc314)
fc314f5 tsgolint: Make MessageType parsing more idomatic (#14299) (camc314)
a24c36e language-server/tsgolint: Use an iterator for tsgolint message parsing (#14298) (camc314)
8be432a tsgolint: Use an iterator for tsgolint message parsing (#14297) (camc314)
57daa54 tsgolint: Remove always Some option wrapper (#14296) (camc314)
79eadf8 linter: Introduce LintRunner (#14051) (camc314)
65873ba linter/plugins: Add stubs for all SourceCode methods (#14285) (overlookmotel)
989ce2f linter/plugins: Convert Node type to interface (#14280) (overlookmotel)
891fc47 language_server: Share code for command oxc.fixAll and code action source.fixAll.oxc (#14244) (Sysix)
7fe930c language_server: Remove unused fixture files (#14246) (Sysix)
2b2c345 language-server: Move generate_inverted_diagnostics to error_with_position (#14118) (camc314)
⚡ Performance
fa3712d language_server: Create less ExternalPluginStores (#14378) (overlookmotel)
e75d42d napi/parser, linter/plugins: Remove runtime preserveParens option from raw transfer deserializers (#14338) (overlookmotel)
2e57351 linter/plugins: Initialize lineStartOffsets as [0] (#14302) (overlookmotel)
c27a393 linter/plugins: Deserialize AST on demand (#14288) (overlookmotel)
95a8cc4 linter/plugins: Use singleton for SourceCode (#14286) (overlookmotel)
🧪 Testing
0061ce7 linter: Add more tests for disable directives in partial loadable files (#14371) (camc314)
1387aaa linter/plugins: Test createOnce returning no visitor functions (#14279) (overlookmotel)
55ebb8b linter: Add test for disable_for_this_section fix (#14240) (Sysix)
a7e8662 linter: Port unicorn test cases to no-named-default (#14239) (camc314)
💼 Other
Compare Source
🚀 Features
b4d716f linter/plugins: Move custom JS plugin config to jsPlugins (#14133) (overlookmotel)
🐛 Bug Fixes
8879b5a linter/plugins: Add types export to npm/oxlint (#14219) (overlookmotel)
v1.18.0: oxlint v1.18.0
Compare Source
[1.18.0] - 2025年09月24日
This release should fix a critical memory leak when import plugin is enabled in IDEs.
🚀 Features
2481964 linter/exhaustive-deps: Add support for useEffectEvent (#14041) (Cody Olsen)
🐛 Bug Fixes
444fcf0 linter: Fix false positive in vue/no-required-prop-with-default (#14066) (yefan)
2186b28 linter: Fix Arc memory leak and lifecycle issues (#14049) (Boshen)
314c27d linter/plugins: definePlugin apply defineRule to rules (#14065) (overlookmotel)
7bd01ed linter/plugins: defineRule call createOnce lazily (#14062) (overlookmotel)
fb3e7e3 linter/plugins: defineRule accept visitor with no before / after hooks (#14060) (overlookmotel)
🚜 Refactor
⚡ Performance
ce538c7 linter/plugins: Load methods of globals into local vars (#14073) (overlookmotel)
c2f7459 language_server: Avoid cloning on message conversion (#14058) (Sysix)
🧪 Testing
2fd4b1e linter/plugins: Rename test (#14064) (overlookmotel)
f2b3934 linter/plugins: Test returning false from before hook skips visitation in ESLint (#14061) (overlookmotel)
b109419 linter/plugins: Align ESLint plugin with Oxlint (#14059) (overlookmotel)
Compare Source
🚀 Features
3e117c6 linter/plugins: Add defineRule API (#13945) (overlookmotel)
a14aa79 npm/oxlint: Convert to ES modules (#13876) (Boshen)
b52389a node: Bump engines field to require Node.js 20.19.0+ for ESM support (#13879) (Copilot)
53d04dd linter: Convert oxlint to NAPI app (#13723) (overlookmotel)
🚜 Refactor
bb040bc parser, linter: Replace .mjs files with .js (#14045) (overlookmotel)
7e0d736 linter/plugins: Rename --experimental-js-plugins to --js-plugins (#13860) (overlookmotel)
v1.16.0: oxlint v1.16.0
Compare Source
[1.16.0] - 2025年09月16日
🚀 Features
97c8d06 linter: Add preserve-caught-error rule (#13748) (孔辉)
8c19b18 linter/exhaustive-deps: Implement fixer for dep in global scope (#13783) (camc314)
06bce8f linter/exhaustive-deps: Implement fixer for missing dep (#13782) (camc314)
a8675f4 linter: Add eslint/class-methods-use-this rule (#12977) (Peter Cardenas)
db33196 parser: Adds typescript rule for empty argument list (#13730) (Karan Kiri)
2751193 linter: Add eslint/no-useless-computed-key rule (#13428) (yefan)
9a205d1 regex-parser: Parse simple TemplateLiterals (#13265) (Sysix)
🐛 Bug Fixes
a2c91cd linter: Drop rules to allow mutable access to ctx_host in run_external_rules (#13832) (camc314)
3af1e5d linter/no-unsafe-declaration-merging: Always mark first span as primary (#13830) (camc314)
1c43c7c linter: Keep message when merging composite fixes (#13827) (camc314)
26af302 linter/exhaustive-deps: Check stable value is on lhs of assignment expr (#13815) (camc314)
4bc12d0 linter/exhaustive-deps: Remove impossible comparison with parent kind (#13814) (camc314)
12baf5e linter/exhaustive-deps: Respect primary span when identifying disable directive location (#13781) (camc314)
fa7400a linter/no-undef: False positive with arguments in functions (#13763) (camc314)
50e6e3c editor: Restrict servers paths for oxc.path.server (#13740) (Sysix)
b45077d editor: Strip leading slash for bin path on windows (#13738) (Sysix)
8fa6227 editor: Don't allow oxc.path.server for untrusted workspaces (#13734) (Sysix)
56da114 linter/react/jsx-handler-names: Do not detect the function name within the inline-function's body block (#13456) (Takuji Shimokawa)
b2bc5b4 linter/react-perf/jsx-no-new-object-as-prop: Skip as/satisfies exprs (#13718) (camc314)
ab51394 raw_transfer: Disable layout assertions on some 32-bit platforms (#13716) (overlookmotel)
09428f6 linter/plugins: Remove outdated comment (#13691) (overlookmotel)
a294721 linter/plugins: Exit early if JS plugins enabled on unsupported platforms (#13689) (overlookmotel)
68a2280 linter/plugins: More graceful exit for --experimental-js-plugins CLI option (#13688) (overlookmotel)
🚜 Refactor
395d40d linter: Derive inmpls for PartialEq, Eq over manual ones (#13828) (camc314)
8e4cd8f linter/func-names: Use run_once over looping over all nodes (#13798) (camc314)
7f4e2fe eslint/func-names: Clean up implementation and improve documentation (#13601) (Antoine Zanardi)
137896a language_server: Split options for linting and formatting (#13627) (Sysix)
7346099 linter: Move oxlint application code into separate module (#13745) (overlookmotel)
6dd4107 linter: Remove #[cfg(test)] attributes from tester module (#13714) (overlookmotel)
c40c6ef linter/plugins: Directory for JS plugins-related code (#13701) (overlookmotel)
a0022c1 linter/plugins: Improve error messages for JS plugins (#13699) (overlookmotel)
1fd993f napi/oxlint: Rename napi/oxlint2 to napi/oxlint (#13682) (overlookmotel)
⚡ Performance
90c8286 linter: Detect node types from let..else statements (#13690) (camchenry)
08c05df semantic: Make CFG construction a compi
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 06:59 AM, only on Sunday and Saturday ( * 0-6 * * 6,0 ) in timezone Europe/Rome, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.
Uh oh!
There was an error while loading. Please reload this page.
This PR contains the following updates:
^0.18.0→^1.0.0Release Notes
oxc-project/oxc (oxlint)
v1.36.0Compare Source
v1.35.0Compare Source
🚀 Features
9e624c9linter/react: AddversiontoReactPluginSettings(#17169) (camc314)v1.34.0Compare Source
🚀 Features
a0f74a0linter/config: Allow aliasing plugin names to allow names the same as builtin plugins (#15569) (Cameron)🐛 Bug Fixes
005ec25linter: Permit$schema.oxlintrc.jsonstruct (#17060) (Copilot)d446c43linter: Prevent extra fields from being present on oxlint config file (#16874) (connorshea)v1.33.0Compare Source
v1.32.0Compare Source
v1.31.0Compare Source
v1.30.0Compare Source
🚀 Features
595867aoxlint: Generate markdownDescription fields for oxlint JSON schema. (#15959) (connorshea)v1.29.0Compare Source
🚀 Features
84de1caoxlint,oxfmt: Allow comments and also commas for vscode-json-ls (#15612) (leaysgur)v1.28.0Compare Source
v1.27.0: oxlint v1.27.0 && oxfmt v0.12.0Compare Source
Oxlint v1.27.0
🚀 Features
222a8f0linter/plugins: ImplementSourceCode#isSpaceBetween(#15498) (overlookmotel)2f9735dlinter/plugins: Implementcontext.languageOptions(#15486) (overlookmotel)bc731fflinter/plugins: Stub out allContextAPIs (#15479) (overlookmotel)5822cb4linter/plugins: Addextendmethod toFILE_CONTEXT(#15477) (overlookmotel)7b1e6f3apps: Add pure rust binaries and release to github (#15469) (Boshen)2a89b43linter: Introduce debug assertions after fixes to assert validity (#15389) (camc314)ad3c45aeditor: Addoxc.path.nodeoption (#15040) (Sysix)🐛 Bug Fixes
6f3cd77linter/no-var: Incorrect warning for blocks (#15504) (Hamir Mahal)6957fb9linter/plugins: Do not allow access toContext#idincreateOnce(#15489) (overlookmotel)7409630linter/plugins: Allow access tocwdincreateOncein ESLint interop mode (#15488) (overlookmotel)732205eparser: Rejectusing/await usingin a switchcase/defaultclause (#15225) (sapphi-red)a17ca32linter/plugins: ReplaceContextclass (#15448) (overlookmotel)ecf2f7blanguage_server: Fail gracefully when tsgolint executable not found (#15436) (camc314)3c8d3a7lang-server: Improve logging in failure case for tsgolint (#15299) (camc314)ef71410linter: Use jsx if source type is JS in fix debug assertion (#15434) (camc314)e32bbf6linter/no-var: Handle TypeScript declare keyword in fixer (#15426) (camc314)6565dbelinter/switch-case-braces: Skip comments when searching for:token (#15425) (camc314)85bd19alinter/prefer-class-fields: Insert value after type annotation in fixer (#15423) (camc314)fde753elinter/plugins: Block access tocontext.settingsincreateOnce(#15394) (overlookmotel)ddd9f9flinter/forward-ref-uses-ref: Dont suggest removing wrapper in invalid positions (#15388) (camc314)dac2a9clinter/no-template-curly-in-string: Remove fixer (#15387) (camc314)989b8e3linter/no-var: Only fix toconstif the var has an initializer (#15385) (camc314)cc403f5linter/plugins: Return empty object for unimplemented parserServices (#15364) (magic-akari)⚡ Performance
25d577elanguage_server: Start tools in parallel (#15500) (Sysix)3c57291linter/plugins: Optimize loops (#15449) (overlookmotel)3166233linter/plugins: RemoveArcs (#15431) (overlookmotel)9de1322linter/plugins: Lazily deserialize settings JSON (#15395) (overlookmotel)3049ec2linter/plugins: OptimizedeepFreezeSettings(#15392) (overlookmotel)444ebfdlinter/plugins: Use single object forparserServices(#15378) (overlookmotel)📚 Documentation
97d2104linter: Update comment in lint.rs about default value for tsconfig path (#15530) (Connor Shea)2c6bd9elinter: Always refer as "ES2015" instead of "ES6" (#15411) (sapphi-red)a0c5203linter/import/named: Update "ES7" comment in examples (#15410) (sapphi-red)3dc24b5linter,minifier: Always refer as "ES Modules" instead of "ES6 Modules" (#15409) (sapphi-red)2ad77fblinter/no-this-before-super: Correct "Why is this bad?" section (#15408) (sapphi-red)57f0ce1linter: Add backquotes where appropriate (#15407) (sapphi-red)Oxfmt v0.12.0
🚀 Features
3251000oxfmt: Useprettierdirectly and bundleprettier(#15544) (Dunqing)7b1e6f3apps: Add pure rust binaries and release to github (#15469) (Boshen)33ad374oxfmt: Disable embedded formatting by default for alpha (#15402) (leaysgur)5708126formatter/sort_imports: Addoptions.newlinesBetween(#15369) (leaysgur)2dfc3bdformatter: RemoveTag::StartVerbatimandTag::EndVerbatim(#15370) (Dunqing)88c7530formatter: RemoveFormatElement::LocatedTokenText(#15367) (Dunqing)🐛 Bug Fixes
d32d22eformatter: CorrectFormatElementsize check (#15461) (Dunqing)b0f43f9formatter: Test call difference (#15356) (Dunqing)01f20f3formatter: Incorrect comment checking logic for grouping argument (#15354) (Dunqing)⚡ Performance
f4b75b6formatter: Pre-allocate enough space for the FormatElement buffer (#15422) (Dunqing)5a61189formatter: Avoid unnecessary allocation forBinaryLikeExpression(#15467) (Dunqing)064f835formatter: Optimize printing call arguments (#15464) (Dunqing)29f35b2formatter: Reuse previous indent stack inFitsMeasurer(#15416) (Dunqing)a6808a0oxfmt: UseAllocatorPoolto reuse allocator between threads (#15412) (leaysgur)2515045formatter: Use CodeBuffer's built-in print_indent to print indentation (#15406) (Dunqing)681607bformatter: Check theTextto see whether it has multiple lines based on its width (#15405) (Dunqing)b92deb4formatter: Replace String buffer with byte-oriented CodeBuffer (#14752) (Boshen)963b87fformatter: Addtext_without_whitespacefor text that can never have whitespace (#15403) (Dunqing)f30ce4bformatter: Optimize formatting literal string (#15380) (Dunqing)8f25a0eformatter: Memorize text width forFormatElement::Text(#15372) (Dunqing)f913543formatter: Avoid allocation forSyntaxTokenCowSlice(#15366) (Dunqing)98c9234formatter: OptimizeFormatElement::Tokenprinting (#15365) (Dunqing)v1.26.0Compare Source
🚀 Features
26f24d5linter: Permit comments in.oxlintrc.jsonvia json schema file (#15249) (Martin Leduc)🐛 Bug Fixes
d6996d0linter: Fix JSON schema to deny additional properties for categories enum. (#15257) (Connor Shea)9304f9flinter: Fix JSON schema to deny additional properties for plugins enum. (#15259) (Connor Shea)📚 Documentation
84ef5ablinter: Avoid linebreaks for markdown links and update plugins docs in the configuration schema. (#15246) (Connor Shea)v1.25.0Compare Source
🚀 Features
bd74603linter: Add support for vitest/valid-title rule (#12085) (Tyler Earls)v1.24.0Compare Source
🐛 Bug Fixes
28e76ecoxlint: Resolving JS plugin failing whenextendsis used (#14556) (camc314)v1.23.0: oxlint v1.23.0Compare Source
[1.23.0] - 2025年10月13日
🚀 Features
452d128linter: Node/no_process_env (#14536) (Kenneth Skovhus)a9e1261linter: Implement react-refresh/only-export-components (#14122) (Rintaro Itokawa)a8d542blinter/no-duplicate-imports: SupportallowSeparateTypeImportsoption (#14527) (camc314)75a529clinter: Add run info about what functions rules implement (#13839) (camchenry)4fbdef2language_server: Supportfmt.configPathconfiguration (#14502) (Sysix)4d3ce2elanguage_server: Autodetect root.oxfmtrc.json(#14466) (Sysix)🐛 Bug Fixes
fb4a20dlanguage_server: Add whitespace for// oxlint-disable-next-linefix (#14356) (Sysix)6fce7f4oxlint/changelog: Remove duplicate changelog entries (#14528) (camc314)74e52f3linter/plugins: Resolve JS plugins with ESM condition names (#14541) (magic-akari)9965676linter/exhaustive-deps: Ignore empty strings passed toadditionalHooksoption (#14464) (Redas)d0a8e3elinter:vue/no_required_prop_with_defaultcalledOption::unwrap()on aNonevalue (#14491) (Sysix)1192ea2linter: Correctnextjs/no-typospath handling (#14480) (shulaoda)2796b16tsgolint: Pipe tsgolints stderr (#14477) (camc314)🚜 Refactor
6440cdelinter: Remove lifetime ofMessage(#14481) (Sysix)f599beflanguage_server: MoveMessagetoDiagnosticReporttransformation to one place (#14447) (Sysix)4f301denapi/parser, linter/plugins: Improve formatting of generated code (#14554) (overlookmotel)68c0252napi/parser, linter/plugins: Shorten generated raw transfer deserializer code (#14553) (overlookmotel)20e884elinter: StoreLintServiceinLintRunner(#14471) (Sysix)9e9c5balinter: Simplify built-in lint plugin checks (#14518) (camchenry)1986e0flinter/no-ex-assign: Use let-else chain (#14526) (camc314)ce9bcf0linter/no-func-assign: Use let-else chain (#14525) (camc314)a9cea7clanguage_server: UseFxHashSetforServerLinter::extended_paths(#14517) (Sysix)ea5838elinter/no-import-assign: Use let-else chain (#14524) (camc314)f977700language_server: PassLintOptionstoWorker::refresh_server_linter(#14510) (Sysix)54b001flinter/no-new-require: Improve diagnostic message clarity (#14511) (shulaoda)650ea68linter: Improve nextjs/no-typos rule (#14476) (shulaoda)📚 Documentation
198f2e9linter: Fix code example forbranches-sharing-code(#14514) (camc314)d776a17linter: Improvenextjs/no-typosrule documentation (#14470) (shulaoda)⚡ Performance
b44a30elanguage_server: TransformMessagetoDiagnosticReportwith one call (#14448) (Sysix)31766fdlinter/plugins: Providelocvia prototype (#14552) (overlookmotel)aec0c08linter: Allow analyzing node types in match blocks with guards (#14459) (camchenry)9044187linter: Skip running node-specific rule if file contains no relevant nodes (#14457) (camchenry)422f54elinter: Only run rule run functions if implemented (#14454) (camchenry)2c228aeliner: Use top-level match forno_obj_calls(#14523) (camchenry)c49d891linter: Use match forno_negated_condition(#14522) (camchenry)e222fc2linter: Use match forno_multi_assign(#14521) (camchenry)4440516linter: Refactor rules to take advantage of node type skipping (#14519) (camchenry)78261d6linter: Refactorno-invalid-fetch-optionsto be more easily analyzed (#14458) (camchenry)🧪 Testing
8d8881dlinter/plugins: Expand tests for module resolution of plugins (#14559) (overlookmotel)33b6cdelanguage_server: Add basic tests forWorkspaceWorker::did_change_configuration(#14531) (Sysix)bfe1ecdlanguage_server: Add tests forWorkspaceWorker::init_watchers(#14516) (Sysix)💼 Other
0082cdaoxlint: V1.23.0 (#14560) (Boshen)v1.22.0: oxlint v1.22.0Compare Source
[1.22.0] - 2025年10月08日
🚀 Features
9f9d25flinter/oxc: Implementbranches-sharing-code(#14440) (camc314)🐛 Bug Fixes
5c29bb6linter: Fix compile error with test target (#14449) (camc314)0dcdbd1oxlint: Bundle esquery (#14450) (camc314)💼 Other
b2af43aoxlint: V1.22.0 (#14451) (Boshen)v1.21.0Compare Source
🐛 Bug Fixes
6e8d2f6language_server: Ignore JS plugins (#14379) (overlookmotel)v1.20.0: oxlint v1.20.0Compare Source
[1.20.0] - 2025年10月06日
🚀 Features
d16df93linter: Support disable directives for type aware rules (#14052) (camc314)f5c6acclinter: Addvue/no-export-in-script-setuprule (#14307) (Sysix)353b153linter: Implement eslint/no-param-reassign rule (#14341) (Matthew Davis)a2914felinter/plugins: Addlocfield getter to all AST nodes (#14355) (overlookmotel)07193c2linter/plugins: ImplementSourceCode#getAncestors(#14346) (overlookmotel)c8de6felinter/plugins: Addparentfield to AST nodes (#14345) (overlookmotel)5505a86linter/plugins: Includerangefield in AST (#14321) (overlookmotel)3656908rust: Oxc-index-vec v4.0 (#14254) (Boshen)1347de4linter/plugins: Accept diagnostics withloc(#14304) (overlookmotel)aefc8b3linter/plugins: ImplementSourceCode#getIndexFromLocandgetLocFromIndex(#14303) (overlookmotel)93807dblinter/plugins: ImplementSourceCode#linesproperty (#14290) (overlookmotel)2f8c985linter/plugins: ImplementSourceCode#visitorKeysproperty (#14289) (overlookmotel)b69028flinter/plugins: ImplementSourceCode#astproperty (#14287) (overlookmotel)d8d3d18linter: Addvue/prefer-import-from-vuerule (#14284) (Sysix)f0e760blinter: Addvue/define-props-destructuringrule (#14272) (Sysix)bdf9010linter/plugins: AddSourceCodeAPI (#14281) (overlookmotel)7f450fclinter/unicorn: Implement require-module-specifiers (#13089) (keita hino)a1e7154linter/unicorn: Implement prefer-classlist-toggle (#14262) (camc314)8217dcelinter/unicorn: Implement no-unnecessary-array-splice-count (#14255) (camc314)3d5db4alinter/unicorn: Implement no-useless-error-capture-stack-trace (#14222) (camc314)b3b482alinter/unicorn: Implement prefer-top-level-await (#14247) (camc314)7931be8linter/unicorn: Implement prefer-class-fields (#14245) (camc314)a39434alinter/unicorn: Implement prefer-at (#14232) (camc314)🐛 Bug Fixes
e605222linter/no-useless-undefined: Correctly respectcheckArgumentsoption (#14369) (camc314)f1bc608linter: Fix flaky import/no_cycle test (#14328) (Boshen)9a902c0linter/plugins: Makerangefield non-optional on AST types (#14354) (overlookmotel)0a42d7ftsgolint: Report errors if we fail to parse tsgolint diagnostic messages (#14301) (camc314)42f8d7elinter/react-hooks: Fix diagnostic message for literal in dependency array (#14266) (camc314)ece91c5linter/react-hooks: Fix diagnostic message for duplicate dependency in array (#14265) (camc314)864fa0elinter/no-unused-expression: False positive with satisfies expressions (#14259) (camc314)adff069language_server: Don't apply "ignore this rule" fixes for fixAll code action + command (#14243) (Sysix)46cceb8linter/rules-of-hooks: Correctly place primary span to fix disable directive (#14237) (camc314)🚜 Refactor
1489376napi/parser, linter/plugins: Minify walker code (#14376) (overlookmotel)c8eeeb5linter/plugins: Remove build-time dependency onnapi/parser(#14374) (overlookmotel)fb1a067linter/plugins: Bundle walker and AST types map (#14373) (overlookmotel)93d8164linter/plugins: Export AST types direct fromoxlintpackage (#14353) (overlookmotel)230d996linter/plugins:SourceCode#getTextuserange(#14352) (overlookmotel)6e52bbdlinter/plugins: Move location-related code into separate file (#14350) (overlookmotel)13f1003linter/plugins: Shareastbetween files (#14349) (overlookmotel)00dde41tsgolint: Make parsingTsGoLintMessageparsing errors an enum (#14300) (camc314)fc314f5tsgolint: MakeMessageTypeparsing more idomatic (#14299) (camc314)a24c36elanguage-server/tsgolint: Use an iterator for tsgolint message parsing (#14298) (camc314)8be432atsgolint: Use an iterator for tsgolint message parsing (#14297) (camc314)57daa54tsgolint: Remove alwaysSomeoption wrapper (#14296) (camc314)79eadf8linter: IntroduceLintRunner(#14051) (camc314)65873balinter/plugins: Add stubs for allSourceCodemethods (#14285) (overlookmotel)989ce2flinter/plugins: ConvertNodetype to interface (#14280) (overlookmotel)891fc47language_server: Share code for commandoxc.fixAlland code actionsource.fixAll.oxc(#14244) (Sysix)7fe930clanguage_server: Remove unused fixture files (#14246) (Sysix)2b2c345language-server: Movegenerate_inverted_diagnosticstoerror_with_position(#14118) (camc314)⚡ Performance
fa3712dlanguage_server: Create lessExternalPluginStores (#14378) (overlookmotel)e75d42dnapi/parser, linter/plugins: Remove runtimepreserveParensoption from raw transfer deserializers (#14338) (overlookmotel)2e57351linter/plugins: InitializelineStartOffsetsas[0](#14302) (overlookmotel)c27a393linter/plugins: Deserialize AST on demand (#14288) (overlookmotel)95a8cc4linter/plugins: Use singleton forSourceCode(#14286) (overlookmotel)🧪 Testing
0061ce7linter: Add more tests for disable directives in partial loadable files (#14371) (camc314)1387aaalinter/plugins: TestcreateOncereturning no visitor functions (#14279) (overlookmotel)55ebb8blinter: Add test fordisable_for_this_sectionfix (#14240) (Sysix)a7e8662linter: Port unicorn test cases to no-named-default (#14239) (camc314)💼 Other
4bf6f69oxlint: V1.20.0 (#14381) (Boshen)v1.19.0Compare Source
🚀 Features
b4d716flinter/plugins: Move custom JS plugin config tojsPlugins(#14133) (overlookmotel)🐛 Bug Fixes
8879b5alinter/plugins: Add types export tonpm/oxlint(#14219) (overlookmotel)v1.18.0: oxlint v1.18.0Compare Source
[1.18.0] - 2025年09月24日
This release should fix a critical memory leak when import plugin is enabled in IDEs.
🚀 Features
2481964linter/exhaustive-deps: Add support foruseEffectEvent(#14041) (Cody Olsen)🐛 Bug Fixes
444fcf0linter: Fix false positive invue/no-required-prop-with-default(#14066) (yefan)2186b28linter: Fix Arc memory leak and lifecycle issues (#14049) (Boshen)314c27dlinter/plugins:definePluginapplydefineRuleto rules (#14065) (overlookmotel)7bd01edlinter/plugins:defineRulecallcreateOncelazily (#14062) (overlookmotel)fb3e7e3linter/plugins:defineRuleaccept visitor with nobefore/afterhooks (#14060) (overlookmotel)🚜 Refactor
56db8falinter: Move imports (#14085) (overlookmotel)a7dd0c7linter: Reduce scope of clippy attr (#14081) (overlookmotel)3a706a7linter: RenameLintRunnertoCliRunner(#14050) (camc314)⚡ Performance
ce538c7linter/plugins: Load methods of globals into local vars (#14073) (overlookmotel)c2f7459language_server: Avoid cloning on message conversion (#14058) (Sysix)🧪 Testing
2fd4b1elinter/plugins: Rename test (#14064) (overlookmotel)f2b3934linter/plugins: Test returningfalsefrombeforehook skips visitation in ESLint (#14061) (overlookmotel)b109419linter/plugins: Align ESLint plugin with Oxlint (#14059) (overlookmotel)v1.17.0Compare Source
🚀 Features
3e117c6linter/plugins: AdddefineRuleAPI (#13945) (overlookmotel)a14aa79npm/oxlint: Convert to ES modules (#13876) (Boshen)b52389anode: Bumpenginesfield to require Node.js 20.19.0+ for ESM support (#13879) (Copilot)53d04ddlinter: Convertoxlintto NAPI app (#13723) (overlookmotel)🚜 Refactor
bb040bcparser, linter: Replace.mjsfiles with.js(#14045) (overlookmotel)7e0d736linter/plugins: Rename--experimental-js-pluginsto--js-plugins(#13860) (overlookmotel)v1.16.0: oxlint v1.16.0Compare Source
[1.16.0] - 2025年09月16日
🚀 Features
97c8d06linter: Addpreserve-caught-errorrule (#13748) (孔辉)8c19b18linter/exhaustive-deps: Implement fixer for dep in global scope (#13783) (camc314)06bce8flinter/exhaustive-deps: Implement fixer for missing dep (#13782) (camc314)a8675f4linter: Add eslint/class-methods-use-this rule (#12977) (Peter Cardenas)db33196parser: Adds typescript rule for empty argument list (#13730) (Karan Kiri)2751193linter: Addeslint/no-useless-computed-keyrule (#13428) (yefan)9a205d1regex-parser: Parse simpleTemplateLiterals(#13265) (Sysix)🐛 Bug Fixes
a2c91cdlinter: Droprulesto allow mutable access toctx_hostinrun_external_rules(#13832) (camc314)3af1e5dlinter/no-unsafe-declaration-merging: Always mark first span as primary (#13830) (camc314)1c43c7clinter: Keep message when merging composite fixes (#13827) (camc314)26af302linter/exhaustive-deps: Check stable value is on lhs of assignment expr (#13815) (camc314)4bc12d0linter/exhaustive-deps: Remove impossible comparison with parent kind (#13814) (camc314)12baf5elinter/exhaustive-deps: Respect primary span when identifying disable directive location (#13781) (camc314)fa7400alinter/no-undef: False positive withargumentsin functions (#13763) (camc314)50e6e3ceditor: Restrict servers paths foroxc.path.server(#13740) (Sysix)b45077deditor: Strip leading slash for bin path on windows (#13738) (Sysix)8fa6227editor: Don't allowoxc.path.serverfor untrusted workspaces (#13734) (Sysix)56da114linter/react/jsx-handler-names: Do not detect the function name within the inline-function's body block (#13456) (Takuji Shimokawa)b2bc5b4linter/react-perf/jsx-no-new-object-as-prop: Skip as/satisfies exprs (#13718) (camc314)ab51394raw_transfer: Disable layout assertions on some 32-bit platforms (#13716) (overlookmotel)09428f6linter/plugins: Remove outdated comment (#13691) (overlookmotel)a294721linter/plugins: Exit early if JS plugins enabled on unsupported platforms (#13689) (overlookmotel)68a2280linter/plugins: More graceful exit for--experimental-js-pluginsCLI option (#13688) (overlookmotel)🚜 Refactor
395d40dlinter: Derive inmpls forPartialEq,Eqover manual ones (#13828) (camc314)8e4cd8flinter/func-names: Userun_onceover looping over all nodes (#13798) (camc314)7f4e2feeslint/func-names: Clean up implementation and improve documentation (#13601) (Antoine Zanardi)137896alanguage_server: Split options for linting and formatting (#13627) (Sysix)7346099linter: Moveoxlintapplication code into separate module (#13745) (overlookmotel)6dd4107linter: Remove#[cfg(test)]attributes fromtestermodule (#13714) (overlookmotel)c40c6eflinter/plugins: Directory for JS plugins-related code (#13701) (overlookmotel)a0022c1linter/plugins: Improve error messages for JS plugins (#13699) (overlookmotel)1fd993fnapi/oxlint: Renamenapi/oxlint2tonapi/oxlint(#13682) (overlookmotel)⚡ Performance
90c8286linter: Detect node types fromlet..elsestatements (#13690) (camchenry)08c05dfsemantic: Make CFG construction a compiConfiguration
📅 Schedule: Branch creation - Between 12:00 AM and 06:59 AM, only on Sunday and Saturday ( * 0-6 * * 6,0 ) in timezone Europe/Rome, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.