Skip to content

Releases: oxc-project/oxc

oxlint v1.64.0 & oxfmt v0.49.0

Choose a tag to compare

@github-actions github-actions released this 11 May 18:51
Immutable release. Only release title and notes can be modified.

Table of Contents

Oxlint v1.64.0

💥 BREAKING CHANGES

  • 00ce512 oxlint/lsp: [BREAKING] Don't fix suggestions on fixAll code actions & command (#22195) (Sysix)

🚀 Features

  • 0eeceaf linter/no-unused-vars: Rename parameter with initializer (#22308) (camc314)
  • fa0232b linter/no-unused-vars: Add param rename suggestion (#22285) (Ryota Misumi)
  • ae59305 linter/promise/no-promise-in-callback: Add exemptDeclarations option (#22275) (Mikhail Baev)
  • 60bed4a linter: Extends no-redundant-roles and prefer-tag-over-role support roles (#22069) (mehm8128)
  • 545c80f linter/eslint: Implement prefer-regex-literals rule (#22192) (Mikhail Baev)
  • 23abd22 linter/jsx-a11y: Implement no-noninteractive-element-to-interactive-role (#21264) (Pedro Tainha)
  • fbb8f22 linter: Support ignores in overrides (#22148) (camc314)
  • 5a4414d oxlint/lsp: Support rulesCustomization lsp option (#21858) (Sysix)

🐛 Bug Fixes

  • 0e207b5 linter: Remove bulk supressions commands from CLI help (#22328) (camc314)
  • 7e93bf2 linter/import/no-named-as-default: Avoid same-binding false positive (#22321) (camc314)
  • 610f4c7 linter/no-unused-vars: Avoid renaming captured vars (#22310) (camc314)
  • 6b50f23 oxlint/cli: Load root config by searching up parent directories (#22272) (Sysix)
  • 31a5de7 linter: Rename override ignores to excludeFiles (#22283) (camc314)
  • 26d5d7b linter: Add missing vitest/valid-describe-callback functionality (#22279) (camchenry)
  • 784530f linter: valid-title: detect String.raw strings (#22271) (Sysix)
  • 080d90e linter: Move no-debugger fix to suggestion (#22256) (Sysix)
  • 25b7017 linter: Undocument override ignores option (#22213) (camc314)
  • 7bb00dd linter: Fix role-has-required-aria-props (#22097) (mehm8128)
  • d25279e linter/disable-directives: Improve parsing of names, descriptions (#22184) (camc314)
  • a59e447 linter/disable-directives: Ignore invalid enable suffixes (#22179) (camc314)
  • aafef0f ci: Disable bulk supression test on big endian (#22175) (camc314)
  • 281daec linter/vue/define-props-destructuring: Add only-when-assigned config opt (#22142) (camc314)
  • 46ab679 linter/plugins: Trim leading newline for partial sources (#20928) (bab)
  • 29ff6d9 linter: Update docs for no_alias_methods rule to be Vitest-specific and add toThrowError alias (#22129) (camchenry)

⚡ Performance

  • 9414bee linter/role-has-required-aria-props: Avoid intermediate vec (#22212) (camc314)
  • 3883ea3 linter/no-useless-escape: Drop unnecessary Vec collect (#22171) (connorshea)
  • 42c3029 linter/check-property-names: Replace split-collect-pop-join with rfind (#22172) (connorshea)
  • 9551d53 linter: Remove unnecessary Vec collect in CFG edge traversal (#22167) (connorshea)
  • 26fa2fc linter/aria-role: Remove unnecessary string allocations in run method (#22168) (connorshea)
  • c9ce045 linter/getter-return: Remove unnecessary Vec collect in CFG edge traversal (#22166) (connorshea)
  • 72bd846 linter/no-this-in-sfc: Reorder cheap name check, avoid String allocation (#22164) (connorshea)

📚 Documentation

  • 4da212a linter/no-unused-vars: Add docs to rename_unused_function_parameter (#22311) (camc314)
  • 27c4628 linter/forbid-dom-props: Escape jsx examples in lint rule docs (#22254) (4MBL)
  • 3f81147 linter: Improve the react/jsx-key rule docs. (#22162) (connorshea)
  • 07f03cc linter/consistent-return: Add note about noImplicitReturns coverage (#22156) (camc314)
  • 7c1e049 oxlint/lsp: Improve autogenerated lsp docs (#22154) (Sysix)
  • 87b3e38 linter: Update docs to be vitest-specific for consistent-test-it (#22128) (camchenry)

Oxfmt v0.49.0

💥 BREAKING CHANGES

  • 5c6c390 oxfmt: [BREAKING] Respect more git ignore options, align with Oxlint (#22210) (leaysgur)

🚀 Features

  • 6e8e818 oxfmt: Experimental .svelte support (#21700) (leaysgur)

🐛 Bug Fixes

  • e2a20b6 formatter: Add space after commas in import attributes (#22274) (Leonabcd123)

⚡ Performance

  • b756682 oxfmt: Optimize nested config prescan (#22232) (Jovi De Croock)
  • f14e81e formatter/sort_imports: Skip sort for single import runs (#22204) (leaysgur)
  • 32255b1 formatter: Process ImportDeclarations in a run (#22079) (overlookmotel)

📚 Documentation

oxc crates_v0.129.0

Choose a tag to compare

@github-actions github-actions released this 05 May 09:06
Immutable release. Only release title and notes can be modified.
ec00055

💥 BREAKING CHANGES

  • 0ffbe0d allocator: [BREAKING] Remove Allocator::end_ptr method (#21871) (overlookmotel)

🚀 Features

  • 9593ec8 transformer/jsx: Add jsxDEV source metadata for fragments (#21932) (Ido Rosenthal)

🐛 Bug Fixes

  • 81e834c parser: Prevent multiple Parser instances in binary (#22120) (overlookmotel)
  • 429deac napi/parser: Export visitorKeys from wasm entrypoint (#21996) (NullVoxPopuli)
  • e852911 codegen: Preserve legal comments orphaned by upstream passes (#21575) (Dunqing)
  • e3399ec transformer/class-properties: Preserve RHS in logical-assignment to static private field (#21950) (Dunqing)
  • c59c199 transformer/typescript: Emit class fields for parameter properties (#21831) (Dunqing)
  • aaabde4 parser: Attach legal comments to following token (#21670) (Dunqing)

⚡ Performance

  • 0bf0cb9 allocator: Per-platform Arena::new_fixed_size implementations (#22088) (overlookmotel)

📚 Documentation

  • 62ec410 allocator: Correct doc comment for Allocator::from_raw_parts (#22093) (overlookmotel)
  • 3e152c6 allocator: Correct typos in comments (#22092) (overlookmotel)
  • e220855 allocator: Correct doc comment for Allocator::set_cursor_ptr (#21866) (overlookmotel)

oxlint v1.63.0 & oxfmt v0.48.0

Choose a tag to compare

@github-actions github-actions released this 05 May 13:16
Immutable release. Only release title and notes can be modified.
5921a25

Table of Contents

Oxlint v1.63.0

🚀 Features

  • 1884833 linter/plugins: Implement SourceCode.getDisableDirectives method (#21029) (Nicolas Le Cam)
  • 00f9a9d linter/sort-keys: Support autofix with comments (#22061) (Amund Eggen Svandal)
  • 5b9ea93 linter/eslint: Implement require-unicode-regexp rule (#22096) (Mikhail Baev)
  • 1d40d60 linter: Implement SARIF formatter (#22067) (camchenry)
  • c0982fe linter/eslint: Implement no-restricted-properties rule (#22080) (AJ Bienz)
  • 5699d53 linter: Add help text to agent formatter (#22064) (camchenry)
  • fe7194d oxlint: Add agent output mode (#21955) (Jovi De Croock)
  • fb2f052 linter: Suggest moving shared branch code (#22022) (camc314)
  • 5868335 linter/no-else-return: Improve nested if diagnostic spans (#22009) (camc314)
  • 8b4829b linter: Split no-negated-condition rule to unicorn & eslint (#21998) (Sysix)
  • fea301a linter: Split jest/prefer-to-be into separate vitest rule (#21977) (camchenry)
  • 44aa0d6 linter: Split jest/prefer-strict-equal into separate vitest rule (#21976) (camchenry)
  • 2262b27 linter: Split jest/prefer-spy-on into separate vitest rule (#21975) (camchenry)
  • fef9143 linter: Split jest/prefer-mock-return-shorthand into separate vitest rule (#21974) (camchenry)
  • 2bda504 linter: Split jest/prefer-mock-promise-shorthand into separate vitest rule (#21973) (camchenry)
  • 6ef6c7d linter: Split jest/prefer-lowercase into separate vitest rule (#21972) (camchenry)
  • f4d2498 linter: Split jest/prefer-hooks-on-top into separate vitest rule (#21971) (camchenry)
  • fb8e366 linter: Split jest/prefer-hooks-in-order into separate vitest rule (#21970) (camchenry)
  • adcd85c linter: Split jest/prefer-expect-resolves into separate vitest rule (#21969) (camchenry)
  • 8ddc7ec linter: Split jest/prefer-equality-matcher into separate vitest rule (#21968) (camchenry)
  • 46bb1f3 linter: Split jest/prefer-each into separate vitest rule (#21967) (camchenry)
  • bdbff66 linter: Implement interactive-supports-focus (#21767) (mehm8128)
  • 733b094 linter: Split prefer-to-have-been-called-times rule (#21898) (Said Atrahouch)
  • 8804425 linter/eslint: Implement logical-assignment-operators rule (#21900) (Mikhail Baev)
  • 296d147 linter: Split jest/prefer-comparison-matcher into separate vitest rule (#21929) (camchenry)
  • 38146b6 linter: Split jest/prefer-called-with into separate vitest rule (#21927) (camchenry)
  • 6f86175 linter/vue: Implement return-in-computed-property rule (#21909) (bab)
  • dc2d0e4 linter: Split jest/no-unneeded-async-expect-function into separate vitest rule (#21878) (camchenry)
  • a03fc37 linter: Split jest/no-test-return-statement into separate vitest rule (#21877) (camchenry)
  • f11313e linter: Split jest/no-test-prefixes into separate vitest rule (#21876) (camchenry)
  • 4380812 linter: Split prefer-to-have-length rule (#21893) (Said Atrahouch)
  • 511bcc1 linter: Split jest require-hook rule (#21889) (Said Atrahouch)
  • 64a8180 linter: Split jest/prefer-snapshot-hint into a Jest rule and a Vitest rule. (#21881) (connorshea)
  • ae7924a linter/vue: Implement no-deprecated-model-definition rule (#21886) (bab)
  • 0dfe8b3 linter: Split jest/require-to-throw-message into Jest and Vitest rules. (#21879) (connorshea)
  • 51229ff linter: Split jest valid-describe-callback rule (#21882) (Said Atrahouch)
  • 2d102fd linter: Split no-standalone-expect rule into jest and vitest (#21862) (Sysix)
  • ee46a29 linter: Split no-restricted-matchers rule into jest and vitest (#21860) (Sysix)
  • 1f29459 linter: Split no-restricted-jest-methods rule into jest and vitest (#21859) (Sysix)
  • e7f8d55 linter: Remove eslint prefixes from plugin names in diagnostics (#21806) (Connor Shea)
  • 89fff8b linter: Split valid-expect-in-promise/jest rule into jest and vitest rules (#21854) (Said Atrahouch)

🐛 Bug Fixes

  • 7c9bf88 linter/no-single-promise-in-promise-methods: Avoid unused array fix (#22116) (camc314)
  • 0b48848 linter/prefer-array-some: Make find rewrite a suggestion (#22103) (camc314)
  • d24027e linter/prefer-array-some: Preserve find comparison fixes (#22094) (camc314)
  • af2d26c linter/astro: Handle js --- after frontmatter in .astro files (#22091) (Andrew Powell)
  • 78d4ff0 linter/jsdoc/require-returns: Only look at the nearest jsdoc block (#22077) (camc314)
  • fa88857 linter/no-map-spread: Use default codegen options for fix (#22074) (camc314)
  • 2047a35 linter: Treat adjacent fixes as overlapping (#22071) (camc314)
  • 75fc551 linter: Handle no-extra-boolean-cast edge cases (#22031) (camc314)
  • e9d5284 linter/sort-keys: Don't autofix if comment could be misplaced (#22052) (Amund Eggen Svandal)
  • d7230b0 linter/no-constant-condition: Handle generator yields (#22046) (camc314)
  • e8dbc56 linter/array-type: Enable edge case tests (#22047) (camc314)
  • d57b51f linter/no-constant-condition: Propagate config errors (#22045) (camc314)
  • bdb6d95 linter/typescript: Remove duplicate rule tests (#22044) (camc314)
  • 0beaffc linter: Print resolved extended config (#22040) (camc314)
  • 192ad0e linter/react/only-export-components: Align rule with upstream cases (#22039) (camc314)
  • cdf4c53 linter/only-export-components: Support tanstack router (#21937) (camc314)
  • 893e18f linter: Stop gitignore lookup at repo boundary (#22033) (camc314)
  • 7100712 linter/constructor-super: Clarify duplicate super diagnostics (#22035) (camc314)
  • fce5b7c linter/constructor-super: Improve invalid super calls diagnostic (#22032) (camc314)
  • b3de93c linter/rules-of-hooks: Clarify conditional diagnostics (#22030) (camc314)
  • 4f9f629 linter/rules-of-hooks: Clarify loop diagnostics (#22029) (camc314)
  • e6f0978 linter/rules-of-hooks: Clarify async component diagnostics (#22024) (camc314)
  • e262f51 linter/rules-of-hooks: Improve diagnostic for hook inside class component (#22023) (camc314)
  • 7b71b0d linter/no-restricted-imports: Report once per import declaration (#22021) (camc314)
  • 3d5ae3d linter/vitest/require-mock-type-parameters: Handle chained typed mocks (#22019) (camc314)
  • 959a2db linter/reporter/github: Omit empty file annotations (#22017) (camc314)
  • 16003a1 linter/unicorn: Remove duplicate rule tests (#22018) (camc314)
  • 86b7547 linter/no-unreachable: Suppress nested unreachable diagnostics (#22011) (camc314)
  • 1d92ae8 linter/oxc: Remove duplicate rule tests (#22013) (camc314)
  • f270246 linter/branches-sharing-code: Ignore empty statements (#22012) (camc314)
  • f1c25dd linter: Stabilize debug diagnostic comparison (#22010) (camc314)
  • b6bc421 linter: Skip linting astro scripts with non JS script types (#21954) (camc314)
  • a77547d linter: Support plugin-qualified disable directives (#21999) (camc314)
  • 079cfdd linter: Match disable directive rule names exactly, not by substring (#21906) (Christian Vuerings)
  • 11a4e67 linter: Comptibles rules need to be disabled in jest and vitest at same time (#21982) (Said Atrahouch)
  • ce62f16 linter: jsx-a11y/prefer-tag-over-role detect more roles (#21933) (bab)
  • 024c390 linter/jest/vitest: Padding around after all blocks not working as expected (#21952) (kapobajza)
  • 05a8f75 linter/jest/no-standalone-expect: False positive with expect in an ObjectProperty (#21948) (Said Atrahouch)
  • 6a37c98 linter/no-unused-vars: Report unused re-exported imports (#21938) (camc314)
  • 2d5fc16 linter: jsx-a11y/media-has-caption report only once for self-closing tags (#21934) (bab)
  • 5adca29 linter: jsx-a11y/no-autofocus ignore false attribute values (#21918) (Sysix)
  • 2e5c18e linter/max-nested-describe: Reset nested describe depth (#21891) (camc314)

⚡ Performance

  • a77f0f7 linter/require-returns: Avoid jsdoc tag vec allocation (#22081) (camc314)
  • d9a1b32 linter/plugins: Avoid array lookups where possible in CFG visitor (#21940) (overlookmotel)
  • fefefd8 linter/plugins: Replace addition with bitwise OR in CFG visitor (#21939) (overlookmotel)

📚 Documentation

  • cacbc4a linter: Fix jest settings docs. (#22127) (connorshea)
  • a15c5bb linter: Note that the --format flag accepts an agent option. (#22126) (connorshea)
  • d58f594 oxlint/lsp: Auto generate docs for LSP options (#22082) (Sysix)
  • 9adc3b3 linter/no-misused-new: Clarify construct signatures behaviour (#22016) (camc314)
  • 1caf5ad linter/plugins: Reformat comments (#21873) (overlookmotel)

🛡️ Security

  • 82dbbec deps: Update npm packages (major) (#21558) (renovate[bot])

Oxfmt v0.48.0

🐛 Bug Fixes

  • ef0db6b formatter: Sequence expression in arrow function body collapses onto one line (#21183) (Justin Mecham)
  • 5d5d808 formatter: Preserve blank line after directive with trailing comment (#21153) (Justin Mecham)

⚡ Performance

  • 2fd907d formatter: Sort imports during IR construction (#22065) (overlookmotel)

🛡️ Security

  • 82dbbec deps: Update npm packages (major) (#21558) (renovate[bot])

oxc crates_v0.128.0

Choose a tag to compare

@github-actions github-actions released this 27 Apr 11:39
Immutable release. Only release title and notes can be modified.
9951013

💥 BREAKING CHANGES

  • 502e804 ast: [BREAKING] Reduce size of TSTypePredicateName (#21711) (overlookmotel)
  • 5651539 ast: [BREAKING] Reduce size of JSXExpression (#21710) (overlookmotel)
  • c44e280 ast: [BREAKING] Reduce size of ArrayExpressionElement (#21709) (overlookmotel)
  • c5b3deb syntax: [BREAKING] Remove CommentNodeId (#21679) (overlookmotel)

🚀 Features

  • b738a39 allocator: Add Allocator::cursor_ptr method (#21773) (overlookmotel)
  • 678767e ast: Generate node_id accessors for AST enum wrappers (#21653) (camc314)
  • f091d77 minifier: Inline constant spread elements into arrays (#21095) (Armano)

🐛 Bug Fixes

  • 0d608c2 minifier: Preserve raw CR in template literals (#21645) (Dunqing)
  • a889ea9 minifier: Track pure functions in DCE mode (#21722) (Dunqing)
  • 674dfac allocator: Arena retry allocation when chunk size approaches maximum (#21777) (overlookmotel)
  • f130cc0 allocator: Fix arithmetic overflow in Arena::new_chunk_memory_details (#21745) (overlookmotel)
  • b9bf239 allocator: Fix UB in Arena::grow_zeroed (#21739) (overlookmotel)
  • d2b9389 allocator: Clippy warning when building without testing feature (#21681) (camc314)
  • 503dc86 codegen: Map sourcemaps from visible output starts (#21662) (Dunqing)
  • c92bd3b transformer: Use SPAN for synthesized helper calls to prevent comment misattribution (#21578) (Dunqing)
  • 0d80441 codegen: Add mapping before printing # for private ident (#21619) (camc314)

⚡ Performance

  • 9fa362e napi/parser: Do not generate tokens except in tests (#21811) (overlookmotel)
  • 0044392 allocator: Reduce branches when allocating new chunk (#21776) (overlookmotel)
  • 7896bd0 allocator: Allocator::used_bytes do not use chunk iterator (#21771) (overlookmotel)
  • a5c562f allocator: Remove check in Arena::new_chunk_memory_details (#21750) (overlookmotel)
  • 35bbe1f allocator: Arena use unchecked size round up where guaranteed no overflow (#21743) (overlookmotel)
  • ffe229b allocator: Remove unnecessary check from Arena::try_alloc_layout_slow_impl (#21732) (overlookmotel)
  • 72fece5 allocator: Use NonNull::offset_from_unsigned in Arena::chunk_capacity (#21731) (overlookmotel)
  • cab32ae ast: Add #[inline(always)] to node_id methods on enums with all variants unboxed (#21707) (overlookmotel)
  • b179688 parser: Allocate TriviaBuilder comments in the arena (#21512) (Boshen)
  • 2290f31 lexer: Fix perf of Token::set_* methods on Rust 1.95.0 (#21659) (overlookmotel)
  • 1b58029 allocator: Move code into cold path in Arena::alloc_layout (#21622) (overlookmotel)
  • 3cf7cef allocator: Reduce instructions on allocation hot path (#21510) (overlookmotel)

📚 Documentation

  • ce65070 data_structures: Document why as_ref and as_mut on NonNullConst and NonNullMut take self (#21800) (overlookmotel)
  • 93b7dbd allocator: Improve doc comments for ChunkFooter (#21733) (overlookmotel)
  • 295db8d transformer: Fix comment (#21717) (overlookmotel)
  • 5c93af8 ast: Add comments explaining #[inline(always)] to node_id methods on enums (#21706) (overlookmotel)
  • e4cea25 transform: Use the node: namespace in the example (#19998) (루밀LuMir)

🛡️ Security

oxlint v1.62.0 & oxfmt v0.47.0

Choose a tag to compare

@github-actions github-actions released this 27 Apr 12:24
Immutable release. Only release title and notes can be modified.
d82f698

Table of Contents

Oxlint v1.62.0

🚀 Features

  • 0c0e741 linter: Implemented prefer-expect-assertions in Vitest and Jest (#21488) (Said Atrahouch)
  • e37cfc4 oxfmt/lsp: Format files outside workspace folders (#21481) (Sysix)
  • b4acdbd linter/vue: Implement no-deprecated-delete-set rule (#21766) (bab)
  • 613bfef linter: Split jest/prefer-to-contain into a jest and a vitest rule. (#21821) (connorshea)
  • c629719 linter/vue: Implement no-deprecated-events-api rule (#21793) (Alex Peshkov)
  • f2a8528 linter: Split jest/require-top-level-describe rule into a Jest and a Vitest rule. (#21822) (connorshea)
  • ea4b358 linter: Split jest/prefer-todo into a shared rule and a vitest-specific rule. (#21820) (connorshea)
  • 3a66819 linter: Split jest/no-mocks-import into vitest/no-mocks-import (#21818) (camchenry)
  • 0b3ffce linter: Split jest/no-large-snapshots into vitest/no-large-snapshots (#21814) (camchenry)
  • d1cf22e linter: Split jest/no-interpolation-in-snapshots into vitest/no-interpolation-in-snapshots (#21812) (camchenry)
  • bb0c359 linter: Split jest/no-identical-title into vitest/no-identical-title (#21810) (camchenry)
  • c26ea41 linter: Split jest/no-hooks into vitest/no-hooks (#21809) (camchenry)
  • 46b32f2 linter: Split jest/no-focused-tests into vitest/no-focused-tests (#21804) (camchenry)
  • acf41a8 linter: Split jest/no-duplicate-hooks into vitest/no-duplicate-hooks (#21803) (camchenry)
  • 54d787f linter: Split jest/no-disabled-tests into vitest/no-disabled-tests (#21802) (camchenry)
  • 9c9a676 linter/vue: Implement no-deprecated-data-object-declaration rule (#21764) (bab)
  • 4445855 linter: Split jest/no-conditional-in-test into vitest/no-conditional-in-test (#21763) (camchenry)
  • b8604de linter: Split jest/no-conditional-expect into vitest/no-conditional-expect (#21762) (camchenry)
  • 0dbd650 linter: Split jest/no-commented-out-tests into vitest/no-commented-out-tests (#21761) (camchenry)
  • 7f1a97c linter: Split jest/no-alias-methods into vitest/no-alias-methods (#21760) (camchenry)
  • eb97c49 linter: Split jest/max-nested-describe into vitest/max-nested-describe (#21759) (camchenry)
  • d870cad linter: Split jest/max-expects into vitest/max-expects (#21758) (camchenry)
  • 1b97124 linter/vue: Implement no-deprecated-vue-config-keycodes rule (#21699) (bab)
  • 5f81883 linter/eslint: Implement func-name-matching rule (#21708) (Mikhail Baev)
  • 348f46c linter: Add respectEslintDisableDirectives option (#21384) (Christian Vuerings)
  • 63ec351 linter: Support nested vite+ config discovery (#21638) (camc314)
  • 560feb4 linter: Introduce Vite variant to DiscoveredConfigFile (#21637) (camc314)
  • 07dc41e linter/eslint: Implement no-underscore-dangle rule (#21630) (Paul-Arthur THIERY)
  • e270d54 linter/react: Impl react/no-did-update-set-state (#17322) (Kenzo Wada)
  • ca81199 linter/react: Implement forbid-component-props rule (#20005) (Mikhail Baev)
  • 6776403 linter/branches-sharing-code: Move rule from nursery to pedantic (#21621) (camc314)
  • ce7a4dc linter/no-unreachable: Move rule from nursery to correctness (#21618) (camc314)
  • e3b5e78 linter/getter-return: Move rule from nursery to correctness (#21617) (camc314)
  • d3a7e9a linter/unicorn: Implement suggestion for no-useless-iterator-to-array rule (#21610) (Mikhail Baev)
  • a0c883c oxlint/lsp: Add vite plus version to server info (#21587) (Sysix)
  • 67ff860 linter/no-unknown-property: Support React 19 precedence prop (#21590) (João Pedro Schmitz)

🐛 Bug Fixes

  • b6dcc22 linter/valid-expect: Allow string message in Vitest valid-expect (#18975) (Cédric Exbrayat)
  • cff9277 linter/valid-expect: Clarify fixer suggestion messages (#21839) (camc314)
  • aace797 linter: Detect Svelte TS and module scripts correctly (#20819) (mustafa0x)
  • 3612db1 linter/prefer-default-parameters: Skip reporting on object/class setters (#21836) (camc314)
  • 28c3521 oxlint/lsp: Remove overlapping edits for source.fixAllDangerous.oxc code action (#21785) (Sysix)
  • 705a82c linter/no-non-null-asserted-nullish-coalescing: Add fixer (#21827) (yyh)
  • 33f5535 linter: Add checks that Program is in current allocator chunk before JS plugins linting (#21774) (overlookmotel)
  • d122877 linter/no-extra-non-null-assertions: Add fixer (#21744) (yyh)
  • 37f0731 linter: with_plugin_vitest(true) working realiable in test mode (#21769) (Said Atrahouch)
  • e42e6a6 linter/role-supports-aria-props: False positive with combobox and haspopup (#21725) (Leonabcd123)
  • e24324f linter: Iframe-has-title false positive for template literals (#21714) (Leonabcd123)
  • 41a6510 linter/vitest/hoisted-apis-on-top: Only check first member (#20068) (Sidharth Vinod)
  • 98ed888 linter: Check initializer for allowConstantExport in only-export-components (#20608) (Eyüp Can Akman)
  • 1946e8b linter: Avoid applying override plugin categories to eslint rules (#21521) (bab)
  • 3d1e83a linter: Parse <script> tag attributes with curly braces in Svelte files (#21089) (bab)
  • bc6ade5 linter: Report actual disable directive prefix (#21682) (camc314)
  • bf84466 linter: Respect category settings in overrides (#19411) (Connor Shea)
  • 52ecb45 linter/vitest: Don't treat test.extend or it.extend as test functions (#21668) (Said Atrahouch)
  • aa1a00c linter: Support jsx-a11y attributes setting in anchor-is-valid rule (#21665) (camchenry)
  • 30e0ad3 linter/prefer-default-parameters: Preserve TS annotations in fixer (#21655) (camc314)
  • 8c425db linter: Allow string for jest version in config schema (#21649) (camc314)
  • 3617864 linter/react/display-name: Fix false positive for named default class (#21643) (Mikhail Baev)
  • f3a02cc linter/no-non-null-assertion: Improve diagnostic message (#21616) (Cameron)
  • c2ada2c linter: Make --fix-dangerously fix dangerous fixes and suggestions as documented (#13366) (Ulrich Stark)
  • 8265ed9 linter/sort-keys: Handle CRLF separated groups (#21608) (camc314)
  • 96c559e linter/no-shadow: Add note explaining enum member shadowing (#21607) (camc314)
  • 3b49389 linter: No-irregular-whitespace: add config options (#21559) (camchenry)

⚡ Performance

  • cdc9eae oxlint/lsp: Avoid clones on lsp options deserializion (#21748) (Sysix)
  • be2db80 linter/sort-keys: Reduce allocations (#21560) (camchenry)

📚 Documentation

  • 453d647 linter: Remove now-unnecessary compatibility notes from shared Jest/Vitest rules. (#21826) (connorshea)
  • b1574a2 linter: Fix the configuration docs for no-underscore-dangle rule. (#21801) (connorshea)
  • 6946aee linter: Remove no-longer-relevant documentation about vitest compatibility from shared Jest/Vitest rules. (#21799) (connorshea)
  • 0652ea2 linter: Misc grammar cleanup for Vitest rules. (#21755) (connorshea)
  • 99f0b68 linter: Improve docs for vitest/require-mock-type-parameters rule. (#21754) (connorshea)
  • 9e2796b linter: Improve the docs for the vitest/hoisted-apis-on-top rule. (#21753) (connorshea)
  • 2ccede2 linter: Improve function usage examples in doc comments (#21718) (overlookmotel)
  • 43adae9 linter: Add version section to rules page (#21601) (camchenry)
  • d15dad2 linter: Export rule version metadata (#21588) (Old Autumn)

Oxfmt v0.47.0

🚀 Features

  • e37cfc4 oxfmt/lsp: Format files outside workspace folders (#21481) (Sysix)
  • 3bc54a9 oxfmt: Respect nested config for --stdin-filepath (#21627) (leaysgur)
  • 144f27a oxfmt: Respect ignore settings for --stdin-filepath (#21625) (leaysgur)
  • 81c7ae4 oxfmt/lsp: Add vite plus version to server info (#21586) (Sysix)

🐛 Bug Fixes

  • 477435b formatter/sort_imports: Keep leading blank line when decreasing group transitions (#21835) (leaysgur)
  • 38d1e82 oxfmt/lsp: Format non file:// URIs without a authority (#21647) (Sysix)
  • 5eb8e2b formatter/sort_imports: Preserve blank lines around ignored side-effect imports (#21692) (leaysgur)
  • 0dce3c6 oxfmt: Handle invalid overrides config without panic (#21661) (Yuji Sugiura)
  • 9f82ed4 formatter: Escape backticks in JSDoc inline code spans (#21577) (bab)

⚡ Performance

  • db6c603 oxfmt/lsp: Avoid clones on lsp options deserializion (#21749) (Sysix)
  • 6a96c76 formatter: Avoid heap alloc for jsdoc delimiter (#21597) (leaysgur)

oxc crates_v0.127.0

Choose a tag to compare

@github-actions github-actions released this 20 Apr 19:36
Immutable release. Only release title and notes can be modified.
161d6b5

🐛 Bug Fixes

  • 510e344 minifier: Drop this after unconditional super() in derived constructors (#21571) (Dunqing)
  • 67d40f8 parser: Set pure comment index after dedup check to handle lookahead/rewind (#21570) (Dunqing)
  • 9eea064 minifier: Treat this outside constructor as side-effect free (#21568) (Dunqing)
  • 385eb94 minifier: Preserve annotation comments when inlining single-use variables during DCE (#21567) (Dunqing)
  • 48967e8 isolated_declarations: Drop required type check for private parameter properties on private constructors (#21515) (Dunqing)
  • 91e5bde transformer/typescript: Preserve computed-key static block when class has an empty constructor (#21562) (Dunqing)
  • 50e9d26 mangler: Assign correct slot to shadowed function-expression names (#21535) (Dunqing)
  • 065ce47 isolated_declarations: Collect types from private accessors for paired inference (#21516) (Dunqing)
  • 00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)
  • d676e0c minifier: Mark LHS of ??= as read when converting from == null && (#21546) (Gunnlaugur Thor Briem)

⚡ Performance

  • e45efc5 parser: Reduce try_parse usage in favour of lookahead (#21532) (Boshen)
  • ddb1bf8 parser: Avoid redundant IdentifierReference clone in shorthand property (#21511) (Boshen)
  • be2b392 allocator: Store pointers directly in Arena (#21483) (overlookmotel)

oxlint v1.61.0 & oxfmt v0.46.0

Choose a tag to compare

@github-actions github-actions released this 20 Apr 20:02
Immutable release. Only release title and notes can be modified.
f5bd1dd

Table of Contents

Oxlint v1.61.0

💥 BREAKING CHANGES

  • 24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)

🚀 Features

  • 38d8090 linter/jest: Implemented jest version settings in config file. (#21522) (Said Atrahouch)
  • 7dbbb99 linter/eslint: Implement suggestion for no-case-declarations rule (#21508) (Mikhail Baev)
  • 9b4d9f6 linter/prefer-template: Implement autofix (#21502) (François)
  • daa64ed linter/no-empty-pattern: Add allowObjectPatternsAsParameters option (#21474) (camc314)
  • cf2d281 linter/typescript: Implement explicit-member-accessibility (#21447) (Hunter Tunnicliff)
  • d48de6f linter/unicorn: Add help messages to 3 rule diagnostics (#21459) (Mukunda Rao Katta)
  • cffdc2e linter: Backfill rule version metadata (#21391) (Old Autumn)

🐛 Bug Fixes

  • 96ede2c linter/no-useless-assignment: Preserve conditional self-reads (#21582) (camc314)
  • 1e69b91 linter/no-useless-assignment: Improve diagnostic spans (#21581) (camc314)
  • f272594 linter/plugins: Align RuleMeta.replacedBy type with ESLint (#21544) (bab)
  • 4d57851 linter/eslint: Enhance no-empty-function rule to support async and generator functions in VariableDeclarator (#21542) (Mikhail Baev)
  • 00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)
  • a56b7b9 oxlint: Dont enable gitlab formatter by default (#21501) (camc314)
  • 9c9b6a2 linter/array-callback-return: Ignore non-exit CFG dead ends (#21497) (camc314)
  • 61088e0 linter/unicorn: Handle computed property access in prefer-dom-node-remove rule (#21470) (Mikhail Baev)
  • eab5934 linter: Report an error on unsupported extends values (#21406) (John Costa)
  • 3289ba0 linter/valid-expect-in-promise: Check a jest fn to be test instead of describe (#21422) (Said Atrahouch)
  • 4417fe3 linter/prefer-ending-with-an-expect: Ignore vi.mock factory callbacks (#21414) (Cédric Exbrayat)
  • a904883 linter/consistent-type-imports: Ignore vue/svelte/astro files (#21415) (bab)
  • 2498fe6 linter/no-unused-vars: Allow segments of dotted namespace declarations (#21416) (bab)
  • 44b5b35 linter: Preserve vitest-compatible jest rules when applying overrides (#21389) (Cameron)
  • 7bd8331 linter/prefer-ending-with-an-expect: Add missing version docs (#21390) (Said Atrahouch)
  • 43d8f0d linter/no-useless-assignment: Ignore writes read by closures (#21380) (camc314)

📚 Documentation

  • c1eeae3 linter: Add version to rule.json (#21547) (camchenry)
  • 0ec6ab2 linter: Improve the vitest/no-importing-vitest-globals rule documentation. (#21557) (connorshea)

Oxfmt v0.46.0

💥 BREAKING CHANGES

  • 24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)

🚀 Features

  • 5aa7fe1 oxfmt: Add --disable-nested-config CLI flag (#21514) (leaysgur)
  • b5cb8d1 oxfmt: Update prettier to 3.8.3 (#21451) (leaysgur)
  • 16713d5 oxfmt/cli: Support per-directory config (#21103) (leaysgur)
  • 952de06 oxfmt/lsp: Support per-directory config (#21081) (leaysgur)

🐛 Bug Fixes

  • a501a53 formatter: Handle comments after pipe in single-member union types (#21487) (John Costa)
  • 6f49fad oxfmt: Respect nested config.ignorePatterns (#21489) (leaysgur)
  • 7c98d52 oxfmt: Do not panic on finding invalid nested config (#21461) (leaysgur)
  • 41bb2d5 formatter: Preserve more intrinsic parens (#21449) (leaysgur)
  • f894750 formatter: Preserve parens around intrinsic in type alias annotation (#21410) (Dunqing)

⚡ Performance

  • df27b48 oxfmt: Skip ancestors check when no nested config found (#21517) (leaysgur)
  • 5e1522a oxfmt: Do not occupy the rayon thread solely for handover (#21408) (leaysgur)

oxc crates_v0.126.0

Choose a tag to compare

@github-actions github-actions released this 16 Apr 01:49
836fe9d

💥 BREAKING CHANGES

  • 24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)

🚀 Features

  • ce5072d parser: Support turbopack magic comments (#20803) (Kane Wang)
  • f5deb55 napi/transform: Expose optimizeConstEnums and optimizeEnums options (#21388) (Dunqing)
  • 24b03de data_structures: Introduce NonNullConst and NonNullMut pointer types (#21425) (overlookmotel)

🐛 Bug Fixes

  • d7a359a ecmascript: Treat update expressions as unconditionally side-effectful (#21456) (Dunqing)
  • 56af2f4 transformer/async-to-generator: Correct scope of inferred named FE in async-to-generator (#21458) (Dunqing)
  • b3ed467 minifier: Avoid illegal var; when folding unused arguments copy loop (#21421) (fazba)
  • b0e8f13 minifier: Preserve var inside catch with same-named parameter (#21366) (Dunqing)
  • 4fb73a7 transformer/typescript: Preserve execution order for accessor with useDefineForClassFields: false (#21369) (Dunqing)

⚡ Performance

  • c22cba6 allocator: Simplify pointer calculation when creating Arena chunks (#21475) (overlookmotel)
  • da3cc16 parser: Refactor out LexerContext (#21275) (Ulrich Stark)

📚 Documentation

  • c5b19bb allocator: Reformat comments in Arena (#21448) (overlookmotel)
  • 091e88e lexer: Update doc comment about perf benefit of reading through references (#21423) (overlookmotel)
  • 922cbee allocator: Remove references to "bump" from comments (#21397) (overlookmotel)

oxc crates_v0.125.0

Choose a tag to compare

@github-actions github-actions released this 13 Apr 10:34
fb6b1b0

💥 BREAKING CHANGES

  • 36cdc31 str: [BREAKING] Remove identity FromIn impl for Ident (#21251) (overlookmotel)
  • 382958a span: [BREAKING] Remove re-exports of string types from oxc_span crate (#21246) (overlookmotel)
  • c4aedfa str: [BREAKING] Add static_ident! macro (#21245) (overlookmotel)

🚀 Features

  • e7e1aea transformer/typescript: Add optimize_enums option for regular enum inlining (#20539) (Dunqing)
  • 679f57f transformer/typescript: Implement const enum inlining and declaration removal (#20508) (Dunqing)
  • 6dd061c semantic: Extend MemberWriteTarget to cover all property modification patterns (#21205) (Dunqing)
  • f134e24 minifier: Support property_write_side_effects option to drop unused property assignments (#20773) (Dunqing)
  • 75663c0 semantic: Add enum member value evaluation for const enum support (#20602) (Dunqing)
  • 3cfe8ed semantic: Add MemberWriteTarget flag to ReferenceFlags (#20772) (Dunqing)

🐛 Bug Fixes

  • af1a586 transformer/class-properties: Use correct property name when converting parameter properties (#21268) (Amal Jossy)
  • b43250a allocator: Move allocation tracking into Bump (#21342) (overlookmotel)
  • 36f505f allocator: StringBuilder use Allocator::alloc_layout (#21340) (overlookmotel)
  • 7a08a6f allocator: Fix allocation counting in Allocator::alloc_concat_strs_array (#21336) (overlookmotel)
  • 2338e28 ecmascript: Treat this as potentially having side effects (#21297) (sapphi-red)
  • bd8bd39 allocator: Remove unsafe hacks from from_raw_parts methods (#21283) (overlookmotel)
  • 8f4c340 allocator: Remove dangerous pointer const to mut cast (#21279) (overlookmotel)
  • aa9259f parser: Add missing error code for optional param diagnostic (#21258) (camc314)
  • 04b3c2f str: Fix unsound casting const pointers to mut pointers (#21242) (overlookmotel)
  • ceadf6c str: Make Ident::from_raw an unsafe function (#21241) (overlookmotel)
  • eab13b3 transformer/decorators: Avoid accessor storage name collisions (#21106) (Dunqing)
  • 07e8a30 transformer/react-refresh: Handle parenthesized variable initializers (#21047) (camc314)

⚡ Performance

  • c3ca6f6 allocator: StringBuilder::from_strs_array_in check for 0 length earlier (#21338) (overlookmotel)
  • c2422bb allocator: Allocator::alloc_concat_strs_array check for 0 length earlier (#21337) (overlookmotel)
  • 04b0fdc allocator: Mark Allocator::alloc_layout as #[inline(always)] (#21335) (overlookmotel)
  • 17aee9e allocator: Use offset_from_unsigned in ChunkFooter::as_raw_parts (#21280) (overlookmotel)
  • 61adedd minifier: Fix O(n²) perf on very many var decls (#21062) (Gunnlaugur Thor Briem)
  • addcd02 napi/parser, linter/plugins: Raw transfer deserializer for Vecs use shift instead of multiply where possible (#21142) (overlookmotel)
  • 3068ded napi/parser, linter/plugins: Shift before add when calculating positions in raw transfer deserializer (#21141) (overlookmotel)
  • eb400b8 napi/parser, linter/plugins: Remove uint32 buffer view (#21140) (overlookmotel)
  • 2675085 napi/parser: Lazy deserialization use only Int32Array (#21139) (overlookmotel)
  • 5b35a53 napi/parser: Deserializing tokens use only int32 array (#21138) (overlookmotel)
  • f163d10 parser: Tokens raw deserialization use Int32Array (#21137) (overlookmotel)
  • 7a86613 linter/plugins: Use Int32Arrays for tokens and comments buffers (#21136) (overlookmotel)
  • 8c51121 napi/parser, linter/plugins: Raw transfer deserialize Span fields as i32s (#21135) (overlookmotel)
  • bc1bcdd napi/parser, linter/plugins: Inline trivial raw transfer field deserializers into node object definitions (#21134) (overlookmotel)
  • c0278ab napi/parser, linter/plugins: Use Int32Array in raw transfer deserializer (#21132) (overlookmotel)
  • 43482c7 linter/plugins: Use >> not >>> in binary search loops (#21129) (overlookmotel)

📚 Documentation

  • f5e1845 allocator: Upgrade headers in doc comments for Bump (#21263) (overlookmotel)
  • 2870174 allocator: Upper case SAFETY in comments (#21253) (overlookmotel)
  • 01bc269 str: Reformat Ident doc comments (#21240) (overlookmotel)
  • dd47359 allocator: Add doc comments for panics and errors (#21230) (overlookmotel)

oxlint v1.60.0 & oxfmt v0.45.0

Choose a tag to compare

@github-actions github-actions released this 13 Apr 11:16
e16848e

Table of Contents

Oxlint v1.60.0

💥 BREAKING CHANGES

  • 382958a span: [BREAKING] Remove re-exports of string types from oxc_span crate (#21246) (overlookmotel)
  • c4aedfa str: [BREAKING] Add static_ident! macro (#21245) (overlookmotel)
  • 7354f3c linter: [BREAKING] Error on no matched files (#21144) (camc314)

🚀 Features

  • 94a32b9 linter/jest: Share common pattern expect functions (#21376) (Said Atrahouch)
  • bab5c31 linter/jest: Implement prefer-ending-with-an-expect rule (#21372) (Said Atrahouch)
  • 91f2c79 linter/eslint-jest-plugin: Implemented prefer-importing-jest-globals rule (#21303) (Said Atrahouch)
  • a02f32c linter: Add release version for existing rules (#21363) (camchenry)
  • b9e93da linter: Allow tagging rules with release version (#21362) (camchenry)
  • f99ecda oxlint: Gate vite.config.ts recognition behind VP_VERSION env var (#21298) (leaysgur)
  • cf459d3 linter: Implement suggestion for no-empty-function rule (#21347) (Mikhail Baev)
  • 7213d61 linter: Adding pending suggestions fix to valid_expect rules. (#21249) (Said Atrahouch)
  • ae45312 linter: Introduce --type-check-only flag (#21184) (camc314)
  • 1ce8b90 linter: Implemented valid-expect-in-promise vitest and jest rule (#21170) (Said Atrahouch)
  • 39f7fda linter: Add auto-fix to unicorn/prefer-default-parameters (#21166) (yefan)
  • 15574bc linter/unicorn: Implement consistent-template-literal-escape (#21126) (AliceLanniste)
  • c5c8c03 linter/prefer-readonly-parameter-types: Move rule from nursery to pedantic (#21114) (camc314)
  • 1893be1 linter/no-useless-default-assignment: Move rule from nursery to correctness (#21113) (camc314)
  • 5462ff9 linter/strict-void-return: Move rule from nursery to pedantic (#21115) (camc314)
  • c2989bd linter/no-unnecessary-type-parameters: Move rule from nursery to suspicious (#21112) (camc314)
  • 79d339a linter/no-unnecessary-qualifier: Move rule from nursery to style (#21111) (camc314)

🐛 Bug Fixes

  • b577efc linter/unicorn: Handle optional chaining in prefer-array-flat and no-invalid-remove-event-listener (#21299) (Mikhail Baev)
  • 5e55735 oxlint/lsp: Skip .git directories in LSP walkers (#21316) (camc314)
  • ec7f6ed oxlint, oxfmt: Apply check_for_writer_error to .flush() (#21343) (Craig Morrison)
  • a17a08a linter/no-useless-assignment: Handle continue edges in loop analysis (#21358) (camc314)
  • a0eac12 linter/array-type: Move match to first stmt (#21357) (camc314)
  • 1b3abc3 linter: Exclude boundary tokens from JSXText whitespace check in isSpaceBetweenTokens (#21313) (bab)
  • ecbcf5e linter: More info to summary output for GitHub formatter (#21330) (Théo LUDWIG)
  • a0a8c62 linter/no-fallthrough: Check from start of switch case for empty lines (#21324) (Josh Cartmell)
  • 36f0bc4 linter/no-cycle: Report all cyclic dependencies inside a file (#21259) (camc314)
  • 3f80536 linter: Ignore regex flags other than g/u/v in prefer-string-replace-all (#21203) (bab)
  • f21d3aa linter/unicorn: Report on optional in require-number-to-fixed-digits-argument rule (#21207) (Mikhail Baev)
  • af8e122 linter: Render each config error as a separate diagnostic (#21120) (bab)
  • a950f55 linter/unicorn: Do not report on optionals in no-single-promise-in-promise-methods (#21157) (Mikhail Baev)
  • 472f8ee linter: Mark complete comment for unused disable directives + lsp fix (#21092) (copilot-swe-agent)
  • edd0865 linter/no-array-index-key: False positive when index is inside an expression within a template literal (#21123) (bab)
  • 7e8d520 linter/unicorn: Report on optional foo?.postMessage in require-post-message-target-origin rule (#21104) (Mikhail Baev)

⚡ Performance

  • addcd02 napi/parser, linter/plugins: Raw transfer deserializer for Vecs use shift instead of multiply where possible (#21142) (overlookmotel)
  • 3068ded napi/parser, linter/plugins: Shift before add when calculating positions in raw transfer deserializer (#21141) (overlookmotel)
  • eb400b8 napi/parser, linter/plugins: Remove uint32 buffer view (#21140) (overlookmotel)
  • 7a86613 linter/plugins: Use Int32Arrays for tokens and comments buffers (#21136) (overlookmotel)
  • 8c51121 napi/parser, linter/plugins: Raw transfer deserialize Span fields as i32s (#21135) (overlookmotel)
  • bc1bcdd napi/parser, linter/plugins: Inline trivial raw transfer field deserializers into node object definitions (#21134) (overlookmotel)
  • c0278ab napi/parser, linter/plugins: Use Int32Array in raw transfer deserializer (#21132) (overlookmotel)
  • 43482c7 linter/plugins: Use >> not >>> in binary search loops (#21129) (overlookmotel)

📚 Documentation

  • 7888280 linter: Move config docs for no-restricted-exports (#21360) (camchenry)
  • 162d26c linter: Improve docs for typescript/array-type (#21356) (camchenry)
  • a2dbaec linter: Add missing docs for options for typescript/class-literal-property-style (#21355) (camchenry)
  • 79593eb linter: Improve docs for typescript/consistent-type-assertions (#21353) (camchenry)
  • f9d20d2 linter: Move config option docs for typescript/no-empty-object-type (#21352) (camchenry)
  • a8f650d linter: Add missing config option docs for prefer-string-start-ends-with (#21332) (camchenry)
  • cfd8a4f linter: Don't rely on old eslint doc for available globals (#21334) (Nicolas Le Cam)
  • 03865fa linter: Jest/prefer-snapshot-hint: add doc comment for snapshot hint mode (#21290) (camchenry)
  • a6fe09b linter: Add missing docs for config options in react plugin (#21289) (camchenry)
  • 60eaf47 linter: Add missing docs for config options in unicorn plugin (#21288) (camchenry)
  • c3c2055 linter: jsx-a11y/label-has-associated-control: document the assert options (#21287) (camchenry)
  • a928ed9 linter: Add missing config docs for vitest plugin rules (#21285) (camchenry)
  • 7e07c7c linter: id-length: move enum docs to doc comments (#21281) (camchenry)
  • 9746bdf linter: Add missing docs for class-methods-use-this config (#21278) (camchenry)
  • 6ffe7a5 linter: Move docs for Target variant onto enum (#21277) (camchenry)
  • 305350d linter/plugins: Correct comments (#21130) (overlookmotel)

Oxfmt v0.45.0

💥 BREAKING CHANGES

  • 382958a span: [BREAKING] Remove re-exports of string types from oxc_span crate (#21246) (overlookmotel)

🚀 Features

  • e3081e1 oxfmt: Gate vite.config.ts recognition behind VP_VERSION env var (#21295) (leaysgur)
  • 5b0b573 oxfmt: Update prettier to 3.8.2 (#21294) (leaysgur)
  • 0d67834 oxfmt: Show hint for all files are ignored case (#21154) (leaysgur)

🐛 Bug Fixes

  • 2871fc2 oxfmt: Non idempotent formatting on comments in TS (#20449) (Cat Chen)
  • ec7f6ed oxlint, oxfmt: Apply check_for_writer_error to .flush() (#21343) (Craig Morrison)
  • 1a8c225 formatter: Preserve newline between self-closing JSX element and single-char text (#21149) (Justin Mecham)
  • 407b725 oxfmt: Indent dangling comments in empty enum with block indent (#21163) (Leonabcd123)
  • d13fd37 formatter: Remove extra outer parentheses on return with JSDoc type cast (#21109) (bab)
  • 22babde oxfmt: Fix unicode char escaping (#21162) (leaysgur)
  • 4da53e5 formatter: Preserve trailing comma in TSX arrow functions with default type params (#21151) (Justin Mecham)
  • 94fe774 oxfmt: Handle paths with consecutive leading slashes (#21155) (leaysgur)
  • 50c389b oxfmt: Support .editorconfig quote_type (#20989) (leaysgur)

⚡ Performance

  • 0ce619f formatter: Use Allocator::alloc_concat_strs_array instead of StringBuilder::from_strs_array_in (#21339) (overlookmotel)