Skip to content

Releases: oxc-project/oxc

oxc crates_v0.99.0

24 Nov 10:12
Immutable release. Only release title and notes can be modified.
7252123

Choose a tag to compare

💥 BREAKING CHANGES

  • cbb27fd ast: [BREAKING] Add TSGlobalDeclaration type (#15712) (overlookmotel)

🚀 Features

  • 0c1f82b linter/plugins: Add tokens property to Program (#16020) (overlookmotel)
  • 6cff132 span: Add Span::merge_within method (#15869) (sapphi-red)
  • 102365d allocator/vec: Add Vec::into_bump_slice method (#15770) (Dunqing)

🐛 Bug Fixes

  • e2ca770 codegen: Add support for printing type arguments in new expressions (#15963) (Ives van Hoorne)
  • 2bd3cb6 apps, editors, napi: Fix oxlint-disable comments (#16014) (overlookmotel)
  • 622cb5e parser: Preserve legal comments with @preserve/@license when preceded by other annotations (#15929) (copilot-swe-agent)
  • 7c46a9e transformer/tagged-template-transform: Handle \n escape sequences (#15830) (Dunqing)
  • f386efc minifier: Avoid generating invalid spans (#15778) (sapphi-red)
  • d4ff004 parser: Forbid invalid modifiers on module and global (#15723) (overlookmotel)
  • 2191ae9 semantic: Allow reserved keywords in typescript ambient contexts (#15495) (sapphi-red)
  • 7d1ebad isolated-declarations: Incorrect nested namespace output in isolated declarations (#15800) (copilot-swe-agent)

⚡ Performance

  • b4b0ed8 transformer/typescript: Reverse order of checks (#15722) (overlookmotel)

📚 Documentation

  • c81a331 data_structures: Doc comments on fields of Stack (#15793) (overlookmotel)
  • cfae31d allocator: Use allocator as var name in examples (#15781) (overlookmotel)

oxlint v1.30.0 & oxfmt v0.15.0

24 Nov 11:28
Immutable release. Only release title and notes can be modified.
bf9f469

Choose a tag to compare

Table of Contents

Oxlint v1.30.0

💥 BREAKING CHANGES

  • cbb27fd ast: [BREAKING] Add TSGlobalDeclaration type (#15712) (overlookmotel)

🚀 Features

  • 72660f7 linter: Support auto generate config document for tuple lint option (#15904) (Duc Nghiem Xuan)
  • 0c1f82b linter/plugins: Add tokens property to Program (#16020) (overlookmotel)
  • 9e61beb linter/plugins: Implement SourceCode#getFirstToken() (#16002) (Arsh)
  • 9a548dd linter/plugins: Implement SourceCode#getLastTokens() (#16000) (Arsh)
  • 0b6cb11 linter/plugins: Implement SourceCode#getFirstTokens() (#15976) (Arsh)
  • 166781e linter/plugins: Implement SourceCode#getTokenAfter() (#15973) (Arsh)
  • 6ae232b linter: Expose type errors via tsgolint (#15917) (camc314)
  • 2bfdd26 linter/plugins: Implement SourceCode#getTokensAfter() (#15971) (Arsh)
  • 45fffc1 linter/plugins: Implement SourceCode#getTokenBefore() (#15956) (Arsh)
  • 776e473 linter/plugins: Implement SourceCode#getTokensBefore() (#15955) (Arsh)
  • 595867a oxlint: Generate markdownDescription fields for oxlint JSON schema. (#15959) (connorshea)
  • 5569317 vscode: Add quick actions to status bar tooltip (#15962) (Sysix)
  • 986cac1 linter/plugins: Token-related SourceCode APIs (TS ESLint implementation) (#15861) (Arsh)
  • a21f9e4 linter: Implement unicorn/prefer-bigint-literals rule (#15923) (Michiel Vrins)
  • 4b9d8d2 linter/type-aware: Include range with tsconfig diagnostics (#15916) (camc314)
  • 220d01e editor: Improve the status bar item for the VS Code extension by adding a tooltip. (#15819) (connorshea)

🐛 Bug Fixes

  • 2bd3cb6 apps, editors, napi: Fix oxlint-disable comments (#16014) (overlookmotel)
  • 81f5360 linter/prefer-number-properties: Get fixer to replace entire call expr (#15979) (camc314)
  • e4ba07f language_server: Always write to memory file system (#15975) (Sysix)
  • a8a2032 linter: Support missing range for internal diagnostics (#15964) (camc314)
  • 619a226 oxlint/lsp: Don't register textDocument/formatting capability (#15882) (Sysix)
  • 6ab1a20 linter: Fix no_useless_spread producing invalid syntax when removing empty object spreads (#15905) (camc314)
  • be4b6df linter: Unicorn/prefer-string-replace-all incorrectly escapes backslashes (#15901) (camc314)
  • 9fa9ef2 linter: Gracefully fail when using import plugin, large file counf and JS plugins (#15864) (camc314)
  • c027398 linter/plugins: Correct bindings package names glob in TSDown config (#15871) (overlookmotel)
  • b622ef8 linter: Fix oxc/bad_array_method_on_arguments rule behavior. (#15854) (connorshea)
  • aa06c3f linter: Recognize NewExpression as value context in no-unused-private-class-members (#15843) (camc314)
  • e89c5ba typescript/prefer-namespace-keyword: Skip nested TSModuleDeclarations (#15806) (overlookmotel)
  • 646d020 linter/exhaustive-dependencies: Prevent is_callee_of_call_expr flag from leaking into nested expressions (#15832) (camc314)
  • 46bd6bd linter/plugins: Pin @typescript-eslint/scope-manager dependency (#15807) (overlookmotel)
  • fba31fa linter: Patch @typescript-eslint/scope manager (#15214) (Arsh)
  • 50307c1 linter/jest: Ignore expect identifier in argument position (#15785) (camc314)

⚡ Performance

  • 024b48a linter/plugins: Lazy-load tokens parsing code (#16011) (overlookmotel)
  • 15365c9 linter/plugins: Reduce var assignments (#15953) (overlookmotel)
  • 84d1f4f linter/plugins: Downgrade some checks to debug-only (#15922) (overlookmotel)
  • a49f704 linter/typescript: Avoid searching source text unless required (#15805) (overlookmotel)

📚 Documentation

  • ceffa5a linter: Add config option docs for various rules. (#16024) (connorshea)
  • 9a0ed13 linter: Fix config option docs for eslint/operator-assignment rule. (#16030) (connorshea)
  • 0b18005 linter: Add config docs generation for rules with Regex arguments (#15978) (connorshea)
  • 48d18e0 linter: Improve diagnostic message for promise/catch-or-return rule (#15980) (connorshea)
  • 6c72e84 linter: Use backticks for code elements across more rule diagnostics (#15958) (connorshea)
  • a63dad7 linter/plugins: Add comment (#15952) (overlookmotel)
  • 81ea642 vscode: Use markdownDescription for better formatting in VSCode Settings (#15889) (connorshea)
  • db6a110 linter/plugins: Fix JSDoc comment (#15884) (overlookmotel)
  • 1487271 linter: Add config option docs for jsdoc/require-param and jsdoc/require-returns rules (#15857) (connorshea)
  • fbf0fd4 linter/plugins: Add JSDoc comments to Plugin and Rule types (#15815) (overlookmotel)
  • ac5e4b5 linter/plugins: Add JSDoc comments and improve comments (#15814) (overlookmotel)
  • 9b7b083 linter: Fix error in curly "all" example (#15801) (camc314)
  • 65a3520 linter: Improve diagnostic for consistent-type-definitions rule. (#15752) (connorshea)

🛡️ Security

  • f9b9276 deps: Update dependency rolldown to v1.0.0-beta.51 (#15856) (renovate[bot])

Oxfmt v0.15.0

💥 BREAKING CHANGES

  • a937890 formatter: [BREAKING] Default to lineWidth: 100 (#15933) (leaysgur)
  • 03d5f5a formatter/sort-imports: [BREAKING] Change default order to natural with natord crate (#15828) (leaysgur)
  • cbb27fd ast: [BREAKING] Add TSGlobalDeclaration type (#15712) (overlookmotel)

🚀 Features

  • 7818e22 formatter/sort-imports: Support options.groups (#15831) (leaysgur)
  • f9a502c oxfmt: oxfmt --lsp support (#15765) (leaysgur)

🐛 Bug Fixes

  • 4817486 formatter: Revert FormatElement::BestFitting printing logic (#16028) (Dunqing)
  • 5562dd6 formatter: Incorrect formatting method chain with trailing comments (#16027) (Dunqing)
  • 6d14c8b formatter: Comments in export class decorators are printing incorrectly (#15897) (Dunqing)
  • 683c764 formatter: Correct a few minor mismatched typescript tests (#15894) (Dunqing)
  • c11cc07 formatter: Improve formatting for default type on type parameters (#15893) (Dunqing)
  • 0bff596 formatter: Handle JSX expresssion dangling comment (#15890) (leaysgur)
  • 16a9dc8 formatter: Inconsistent printing of class extends and interface extends (#15892) (Dunqing)
  • 300b496 formatter: Inconsistent CallExpression and NewExpression around member chain and logical expression (#15858) (Dunqing)

⚡ Performance

  • 65174cc formatter: Reduce the size of TextWidth to 4 byte (#15827) (Dunqing)
  • 4fe3aac formatter: Use ArenaVec and ArenaBox (#15420) (Dunqing)

oxc crates_v0.98.0

17 Nov 12:45
Immutable release. Only release title and notes can be modified.
c588bc5

Choose a tag to compare

💥 BREAKING CHANGES

  • ea51b0b napi: [BREAKING] Standardize function naming with sync suffixes (#15661) (Boshen)
  • b2af6b5 ast: [BREAKING] Remove AstKind for Argument (#13902) (taearls)

🚀 Features

  • 1b18457 transformer: Support tagged template expression with </script transformation (#15664) (Dunqing)
  • 77efb76 parser: Improve error message for invalid switch clauses (#15728) (sapphi-red)
  • 5691727 parser: Improve import source from error message (#15727) (sapphi-red)
  • b7404bc parser: Improve error message for missing function body (#15726) (sapphi-red)
  • 71c2fb0 parser: Improve error message when JSX is found while not enabled (#15725) (sapphi-red)
  • 56e7e44 minifier: Disable removal of unnecessary use strict directives for DCE (#15691) (sapphi-red)
  • 8a61cfd allocator, ast: Introduce UnstableAddress trait (#15700) (overlookmotel)
  • f5ce55a napi: Export all options using wildcard exports (Boshen)
  • 68703b9 minifier: Rotate binary expressions to remove parentheses (#15473) (sapphi-red)

🐛 Bug Fixes

  • c023ba6 semantic: Do not duplicate statements in temp Vec when binding TSModuleDeclarations (#15724) (overlookmotel)
  • d60ca81 parser: Reject import something 'source' (#15746) (sapphi-red)
  • e0728fa ast: Exclude comment end position from is_inside_comment check (#15753) (camc314)
  • 9f54a36 semantic: Error on \00 in strict mode (#15743) (sapphi-red)
  • 440a977 ast: Include rest properties when using get_binding_identifiers (#15710) (camc314)

⚡ Performance

  • 1f09d3c parser: Faster checking for invalid modifiers (#15717) (overlookmotel)
  • d8d4e31 ast: Use loop instead of recursion in TSModuleDeclarationBody::as_module_block_mut (#15713) (overlookmotel)

📚 Documentation

  • e033d50 ast: Clarify behavior of TSModuleDeclaration::has_use_strict_directive (#15730) (overlookmotel)
  • 9eda70f allocator: Improve docs for Address methods (#15697) (overlookmotel)

oxlint v1.29.0 & oxfmt v0.14.0

17 Nov 13:08
Immutable release. Only release title and notes can be modified.
ef4cc33

Choose a tag to compare

Table of Contents

Oxlint v1.29.0

🚀 Features

  • bce6154 linter/prefer-includes: Add rule (#15774) (camc314)
  • 5a66558 linter: Handle config docs for string/enum values and add config option docs for various rules. (#15759) (connorshea)
  • c199e38 linter: Implement config for all tsgolint rules supporting options (#15659) (camchenry)
  • 7598b3e linter: Allow configuring tsgolint rules (#15286) (camchenry)
  • e77f2ce vscode: Support oxlint --lsp (#15680) (Sysix)
  • e01c551 oxlint: Add --lsp flag to run the language server (#15611) (Sysix)
  • ac5c2ab lsp/fmt: Support ignore files & patterns (#15647) (Sysix)
  • e50a9bf linter: Add unicorn/prefer-response-static-json rule (#15692) (Mikhail Baev)
  • f5d9abb oxlint: Add enabled? column to --rules cli output (#15213) (Wren)
  • 6b5205c linter/plugins: Implement deprecated SourceCode#getJSDocComment method (#15653) (overlookmotel)
  • 5eccff1 linter/plugins: Implement deprecated SourceCode tokens methods (#15645) (overlookmotel)
  • 4c62ffa language_server: Add run_server helper for CLI tools (#15609) (Sysix)
  • 0d52a5e linter/plugins: Implement Context#parserOptions getter (#15632) (overlookmotel)
  • 287a538 linter/plugins: Implement Context#get* deprecated methods (#15606) (overlookmotel)
  • 84de1ca oxlint,oxfmt: Allow comments and also commas for vscode-json-ls (#15612) (leaysgur)
  • e763919 linter: Add test to enforce schema documentation for rules with configuration options (#15234) (Connor Shea)
  • 6cd0b5f linter/no-callback-in-promise: Add support for timeoutsErr option (#15507) (Li Wei)

🐛 Bug Fixes

  • 1decd57 linter/no-empty-named-blocks: Only search within node for comma token (#15751) (camc314)
  • 17c3d6d linter: Improve docs, diagnostic message, and implementation of typescript/consistent-indexed-object-style rule. (#15750) (connorshea)
  • 78a6df2 linter/no-empty-named-blocks: Skip comments when searching for token (#15735) (camc314)
  • 042befd linter/require-await: Skip comments when searching for token (#15734) (camc314)
  • 7a78220 linter/no-async-await: Skip comments when searching for token (#15733) (camc314)
  • 23b9ad1 linter/consistent-type-specifier-style: Skip comments when searching for token (#15732) (camc314)
  • 440a977 ast: Include rest properties when using get_binding_identifiers (#15710) (camc314)
  • 516d14e linter/no-namespace: Skip comments when searching for token (#15716) (camc314)
  • b5aaace linter/prefer-namespace-keyword: Skip comments when searching for token (#15715) (camc314)
  • 4eb9fa6 editor: Execute oxc.path.server in win32 with shell (#14203) (Sysix)
  • 9f991a4 linter: Reverse extends overrides priority (#14939) (Peter Wagenet)
  • 7c4a916 linter: Restores oxlint --rules -f=json functionality. (#15689) (Wren)
  • 24d00f4 linter/plugins: Add types for suggested fixes (#15636) (overlookmotel)
  • 257360f linter/plugins: Fill in TS type def for RuleMeta (#15629) (overlookmotel)
  • 81e179c linter: Allow file extensions without a dot in react/jsx-filename-extension rule (#15574) (Connor Shea)
  • 7a0e931 linter: Update the unicorn/prefer-add-event-listener rule with new JavaScript APIs (#15581) (connorshea)
  • bb5f8ca oxlint: Fix type annotation for big-endian (#15561) (Sysix)

⚡ Performance

  • e2a0997 linter/plugins: Recycle empty visitor object in ESLint compat mode (#15693) (overlookmotel)
  • 7528db4 language_server: Pass file content as a referenced String (#15568) (Sysix)
  • 54061e9 linter/plugins: Avoid implicit boolean coercion in initLines (#15641) (overlookmotel)
  • ccfd935 language_server: Avoid Mutex in ServerLinter (#15516) (Sysix)

📚 Documentation

  • 3ab750a linter: Clarify react-in-jsx-scope rule docs. (#15749) (connorshea)
  • a5feebc linter: oxlint-disable not eslint-disable (#15672) (overlookmotel)
  • 3d15805 linter: Reformat doc comments (#15670) (overlookmotel)
  • 16fcba6 linter: Remove "experimental" from description of stable features (#15669) (overlookmotel)
  • e62fd98 linter: Correct comment on what EnablePlugins does (#15668) (overlookmotel)
  • a25d31e linter: Fix grammar (#15666) (overlookmotel)
  • f5f452f linter: Add missing perf category (#15667) (overlookmotel)
  • 2c58952 linter: Add config docs for no-restricted-globals rule. (#15662) (connorshea)
  • a210b12 linter/plugins: Improve JSDoc comment for RuleOptionsSchema (#15642) (overlookmotel)
  • 3aabfac linter/plugins: Alter comments on FILE_CONTEXT used in ESLint-compat Context shim (#15605) (overlookmotel)
  • fd58aea linter: Fix a typo in the docs for react/no-is-mounted. (#15575) (Connor Shea)

Oxfmt v0.14.0

🚀 Features

  • 84de1ca oxlint,oxfmt: Allow comments and also commas for vscode-json-ls (#15612) (leaysgur)
  • 99823ad oxfmt: Print nothing for default(write) mode (#15583) (leaysgur)
  • 25a0163 formatter/sort_imports: Sort imports by Array<Array<string>> groups (#15578) (leaysgur)

🐛 Bug Fixes

  • bf20cf5 formatter: CRLF issue in the member chain (#15764) (Dunqing)
  • 5d688a0 formatter: Measuring multiline text in fits_text is incorrect (#15762) (Dunqing)
  • e306958 formatter: Regression case for test call (#15760) (Dunqing)
  • c42d983 formatter: Re-fix all cases that fail after AstNode::Argument was removed (#15676) (Dunqing)

⚡ Performance

  • d99a83f oxfmt: Use simdutf8 based read_to_string (#15614) (leaysgur)
  • 128e186 formatter/sort_imports: Precompute import metadata (#15580) (leaysgur)
  • cd31cc1 formatter/sort_imports: Use Vec::with_capacity for next_elements (#15579) (leaysgur)

📚 Documentation

oxlint v1.27.0 && oxfmt v0.12.0

10 Nov 12:04
b7d8d57

Choose a tag to compare

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)

oxlint v1.28.0 & oxfmt v0.13.0

10 Nov 16:55
Immutable release. Only release title and notes can be modified.
39c80c7

Choose a tag to compare

Table of Contents

Oxlint v1.28.0

🚀 Features

  • 9f759a0 linter: Add unicorn/no-useless-collection-argument (#15545) (Mikhail Baev)

🐛 Bug Fixes

  • 1b994d1 linter/no-unused-private-class-members: Correctly detect value context for private members in assignment expressions (#15553) (camc314)

Oxfmt v0.13.0

oxfmt v0.11.0

06 Nov 03:35
Immutable release. Only release title and notes can be modified.
0987d85

Choose a tag to compare

oxfmt v0.11.0 Pre-release
Pre-release

[0.11.0] - 2025-11-06

🐛 Bug Fixes

Release

oxfmt v0.10.0

06 Nov 02:37
Immutable release. Only release title and notes can be modified.
d87fa02

Choose a tag to compare

oxfmt v0.10.0 Pre-release
Pre-release

[0.10.0] - 2025-11-06

🚀 Features

  • 2fd43b4 formatter/sort_imports: Sort imports by type and source path kind (#15291) (leaysgur)
  • 10837e0 formatter/sort_imports: Classify import path kind (#15290) (leaysgur)
  • ff4f735 formatter/sort_imports: Detect default/named/wildcard imports (#15289) (leaysgur)
  • 0665e49 formatter/sort_imports: Detect style imports (#15288) (leaysgur)
  • 9edfe58 formatter/sort_imports: Detect type imports (#15287) (leaysgur)
  • 8d69661 allocator: Add Address::from_ref method (#15318) (overlookmotel)
  • 505252c formatter: Wrap parenthesis for AssignmentExpression that is a key of PropertyDefinition (#15243) (Dunqing)
  • 880b259 formatter: Align import-like formatting the same as Prettier (#15238) (Dunqing)
  • b77f254 oxfmt,formatter: Support embeddedLanguageFormatting option (#15216) (leaysgur)
  • 898d6fe oxfmt: Add embedded language formatting with Prettier integration (#14820) (Boshen)
  • e77a48e formatter: Detect code removal feature (#15059) (leaysgur)

🐛 Bug Fixes

  • d87fa02 oxfmt: Use .node ext for binary (#15351) (Yuji Sugiura)
  • aab059d oxfmt: Add dist directory to npm files (#15350) (Yuji Sugiura)
  • 1846f86 oxfmt: Commit bindings for release (#15349) (Yuji Sugiura)
  • 167f13c oxfmt: Remove main.rs (#15294) (Yuji Sugiura)
  • 2fe662e oxfmt: Ignore symlink ends with .js (#15270) (Liang Mi)
  • daacf85 oxfmt: Release build fails (#15262) (Dunqing)
  • f5d0348 oxfmt: Sync dependencies with npm/oxfmt and apps/oxfmt (#15261) (leaysgur)
  • 46793d7 formatter: Correct printing comments for LabeledStatement (#15260) (Dunqing)
  • 831ae99 formatter: Multiple comments in LogicalExpression and TSIntersectionType (#15253) (Dunqing)
  • 5fa9b1e formatter: Should not indent BinaryLikeExpression when it is an argument of Boolean (#15250) (Dunqing)
  • 99e520f formatter: Handle chain expression for JSXExpressionContainer (#15242) (Dunqing)
  • a600bf5 formatter: Correct printing comments for TaggedTemplateExpression (#15241) (Dunqing)
  • a7289e7 formatter: Handle member chain for the call's parent is a chain expression (#15237) (Dunqing)

🚜 Refactor

  • 6876726 oxfmt: Migrate all tests to JS based (#15285) (leaysgur)
  • 36ae721 formatter: Simplify the use of indent with soft_line_break_or_space (#15254) (Dunqing)
  • cdd8e2f formatter/sort-imports: Split sort_imports modules (#15189) (leaysgur)
  • 27b4f36 diagnostic: Remove path from sender (#15130) (camc314)
  • 85fb8e8 formatter/sort-imports: Pass options to is_ignored() (#15181) (leaysgur)

🧪 Testing

  • 9d5b34b formatter/sort-imports: Refactor sort_imports tests (#15188) (leaysgur)

💼 Other

  • b4ebdf5 oxfmt: V0.10.0 (#15263) (Boshen)

oxlint v1.26.0

05 Nov 18:59
Immutable release. Only release title and notes can be modified.
ec9cfdb

Choose a tag to compare

[1.26.0] - 2025-11-05

🚀 Features

  • 6f4a50c linter: Implement react/state-in-constructor rule (#15329) (Mikhail Baev)
  • 230e34c linter/plugins: Allow js plugins to access settings (#14724) (Arsh)
  • 8d69661 allocator: Add Address::from_ref method (#15318) (overlookmotel)
  • 798216b language_server: Respect disable directives for type-aware rules (#15170) (Sysix)
  • 7a00691 linter/no-deprecated: Add rule (#15272) (camc314)
  • ab065a9 tsgolint: Improve diagnostic messages with file reference (#15274) (camc314)
  • 26f24d5 linter: Permit comments in .oxlintrc.json via json schema file (#15249) (Martin Leduc)
  • 979ec04 linter: Pretty print tsgolint internal diagnostics (#15131) (camc314)
  • 682dca2 parser: Add more helps to parser errors (#15186) (sapphi-red)

🐛 Bug Fixes

  • 40231a6 linter/plugins, napi/parser: Add parent field to FormalParameterRest and TSParameterProperty in TS type defs (#15337) (overlookmotel)
  • 861508a linter/plugins: Make parent fields in TS type defs non-optional (#15336) (overlookmotel)
  • e0edaef language-server: Disable tsgolint test on big endian (#15331) (camc314)
  • 1d09cc9 linter/no-unused-private-class-members: Fix false positive in conditional expressino (#15319) (camc314)
  • 7f079ab ast/estree: Fix raw transfer deserializer for AssignmentTargetPropertyIdentifier (#15304) (overlookmotel)
  • 56c6627 linter/plugins: Resolve JS plugins only with conditions Node.js supports (#15248) (sapphi-red)
  • 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)
  • 6a884d3 linter: Return error diagnostics if tsgolint fails (#15229) (camc314)
  • 86cfae1 language-server: Log error if tsgolint fails to run (#15228) (camc314)
  • f376e61 linter: Bundle @typescript-eslint/scope-manager (#15210) (Arsh)
  • 377e904 linter: Ignore script tag in code comment (#15202) (Liang Mi)
  • b26900c linter: Improve diagnostic for react/button-has-type. (#15200) (Connor Shea)
  • 80a187c linter: Add offset for parsing error in partial loading files (#15075) (Liang Mi)
  • af257da linter/no-unused-vars: False positive with member expressions in sequence expressions (#15190) (magic-akari)
  • 1f365c8 vscode/test: Make formatting test less flaky (#15120) (camc314)

🚜 Refactor

  • 636e7ed linter/plugins: Shorten ScopeManager code (#15335) (overlookmotel)
  • a7cf856 ast/estree: Shorten raw transfer deserializer for AssignmentTargetPropertyIdentifier (#15303) (overlookmotel)
  • 90146ab linter/react: Simplify is_react_hook (#15310) (overlookmotel)
  • 778b0b6 language_server: Remove ServerLinterDiagnostics (#15169) (Sysix)
  • 10732e8 language_server: Backend checks the correct LintOptions::Run (#15166) (Sysix)
  • e70a37f language_server: Use LintRunner (#14472) (Sysix)
  • 5501ed2 language_server: Send in memory source text to tsgolint (#14733) (Sysix)
  • f452007 linter/no-unwanted-polyfillio: Add security warning for compromised domains (#15207) (shulaoda)
  • 27b4f36 diagnostic: Remove path from sender (#15130) (camc314)

📚 Documentation

  • a7d9f1d linter/plugins: Reformat and clarify ScopeManager JSDoc comments (#15333) (overlookmotel)
  • 69e61d4 linter/plugins: Update comment (#15293) (overlookmotel)
  • 84ef5ab linter: Avoid linebreaks for markdown links and update plugins docs in the configuration schema. (#15246) (Connor Shea)
  • ec6721c linter: Improve documentation for no-unused-vars and no-useless-constructor. (#15244) (Connor Shea)
  • 52be364 linter/no-useless-constructor: Clarify caveat regarding visibility changes in constructors (#15239) (camc314)
  • d5c4ce8 linter: Add config option docs for 7 rules. (#15209) (Connor Shea)
  • 096fb2c linter: Add config option docs for 3 rules. (#15211) (Connor Shea)
  • 3f393e3 linter: Add configuration option docs for promise/no-callback-in-promise rule. (#15176) (Connor Shea)
  • 4ba1bca linter: Add configuration option docs for 5 rules. (#15199) (Connor Shea)
  • ab46187 linter: Add configuration docs for 6 react rules. (#15198) (Connor Shea)
  • 51c8724 linter: Add config docs for 4 more rules. (#15196) (Connor Shea)
  • e6677b1 linter: Add configuration option docs for 4 rules. (#15197) (Connor Shea)
  • 1fd14c0 linter: Add configuration option docs for 6 rules (#15194) (Connor Shea)
  • eafcb1a linter: Add autogenerated docs for no-magic-numbers rule. (#14846) (Connor Shea)
  • 1b9f6fc linter: Add configuration option docs for 6 rules (#15168) (Connor Shea)
  • 410b3cb linter: Add configuration option docs for import/extensions rule. (#15171) (Connor Shea)
  • b0cc5de linter: Add configuration option docs for 4 jest rules (#15172) (Connor Shea)
  • 4dd1a4e linter: Remove unnecessary link comments. (#15175) (Connor Shea)
  • 28642a9 linter: Add configuration option docs for various jsx-a11y rules (#15179) (Connor Shea)
  • ace4def linter: Add configuration option docs for unicorn/no-array-reverse rule. (#15143) (Connor Shea)
  • f707fc9 linter: Add configuration option docs for unicorn/no-null rule. (#15144) (Connor Shea)
  • f826b15 linter: Add configuration option docs for unicorn/explicit-length-check rule. (#15145) (Connor Shea)
  • 3d78ad9 linter: Add configuration option docs for react/button-has-type rule. (#15146) (Connor Shea)
  • d68efca linter: Add configuration option docs for unicorn/prefer-structured-clone rule. (#15148) (Connor Shea)
  • 86f6bb9 linter: Add configuration option docs for react/jsx-no-useless-fragment rule. (#15149) (Connor Shea)
  • 4950fb6 linter: Add configuration option docs for eslint/no-duplicate-import rule. (#15150) (Connor Shea)
  • 9b56425 linter: Add configuration option docs for import/max-dependencies rule. (#15151) (Connor Shea)
  • 47d43eb linter: Add configuration option docs for typescript/no-extraneous-class rule. (#15152) (Connor Shea)
  • db30aed linter: Add configuration option docs for react/no-string-refs rule. (#15153) (Connor Shea)
  • 0e753c1 linter: Add configuration option docs for react/check-requires-onchange-or-readonly rule. (#15154) (Connor Shea)
  • 551f236 linter: Add configuration option docs for jest/valid-expect rule. (#15155) (Connor Shea)
  • e860e65 linter: Add configuration option docs for import/first rule. (#15162) (Connor Shea)
  • d9162f6 linter: Add configuration option docs for import/no-dynamic-require rule. (#15157) (Connor Shea)
  • ee85540 linter: Add configuration option docs for eslint/no-redeclare rule. (#15158) (Connor Shea)
  • 24878cb linter: Add configuration option docs for typescript/explicit-function-return-type rule. (#15160) (Connor Shea)
  • 8349771 linter: Add configuration option docs for typescript/no-this-alias rule. (#15161) (Connor Shea)
  • 75f0de0 linter: Add configuration option docs for import/prefer-default-export rule. (#15164) (Connor Shea)
  • 7367353 linter: Add configuration option docs for import/no-namespace rule. (#15165) (Connor Shea)
  • 69babde linter: Add configuration option docs for unicorn/no-array-reduce rule. (#15142) (Connor Shea)
  • 2c40ad8 linter: Add configuration option docs for typescript/consistent-indexed-object-style rule. (#15140) (Connor Shea)
  • a9f5778 linter: Add configuration option docs for unicorn/prefer-number-properties rule. (#15141) (Connor Shea)
  • 41427c2 linter: Add configuration option docs for import/consistent-type-specifier-style rule. (#15139) (Connor Shea)
  • 18274aa linter: Add configuration option docs for import/no-duplicates rule. (#15137) (Connor Shea)
  • d78419f linter: Add configuration option docs for import/no-cycle rule. (#15136) (Connor Shea)
  • 297176c linter: Add configuration option docs for typescript/no-inferrable-types rule. (#15134) (Connor Shea)
  • 1b2aaa0 linter: Add configuration option docs for unicorn/no-useless-promise-resolve-reject rule. (#15135) (Connor Shea)
  • 5c25141 linter: Add configuration option docs for import/no-absolute-path rule. (#15132) (Connor Shea)
  • 053c1de linter: Add configuration option docs for typescript/prefer-literal-enum-member rule. (#15133) (Connor Shea)
  • 7ba65f4 linter/no-loss-off-precision: Fix typo (#15129) (camc314)
  • 59bb65c linter: Add configuration option docs for typescript/triple-slash-reference rule. (#15097) (Connor Shea)
  • 3113dfe linter: Add configuration option docs for typescript/no-empty-interface rule. (#15098) (Connor Shea)
  • 731f80b linter: Add configuration option docs for promise/no-return-wrap rule (#15099) (Connor Shea)
  • c762216 linter: Add configuration option docs for react/self-closing-comp rule. (#15100) (Connor Shea)
  • 88f78b7 linter: Add configuration option docs for promise/prefer-await-to-then rule. (#15102) (Connor Shea)
  • 62dbdc4 linter: Add configuration option docs for promise/catch-or-return rule. (#15103) (Connor Shea)
  • 219537c linter: Add configuration option docs for eslint/no-unsafe-optional-chaining rule. (#15104) (Connor Shea)
  • 4c4a2de linter: Add configuration option docs for unicorn/no-useless-undefined rule. (#15106) (Connor Shea)
  • fc603e9 linter: Add configuration option docs for eslint/no-undef rule. (#15108) (Connor Shea)
  • b8d03ee linter: Add configuration option docs for eslint/prefer-promise-reject-errors rule. (#15110) (Connor Shea)
  • 1e8e3c0 linter: Add configuration option docs for eslint/no-useless-rename rule. (#15111) (Connor Shea)
  • 5e6b62e linter: Add configuration option docs for eslint/no-labels rule. (#15112) (Connor Shea)
  • dde7fde linter: Add configuration option docs for eslint/max-nested-callbacks rule. (#15107) (Connor Shea)

⚡ Performance

  • 8b31daa linter/plugins: Small optimizations to ScopeManager (#15334) (overlookmotel)
  • 4c0ba92 linter/plugins: Use singleton object for ScopeManager (#15332) (overlookmotel)
  • c82fab0 ast/estree: Remove pointless assignments from raw transfer deserializers (#15305) (overlookmotel)
  • ee9f2f4 linter/plugins: Faster check for cwd (#15301) (overlookmotel)
  • 313e82e linter/no-unwanted-polyfillio: Should run when source type is jsx (#15204) (shulaoda)

...

Read more