Releases: oxc-project/oxc
Releases · oxc-project/oxc
oxc crates_v0.110.0
🐛 Bug Fixes
- f1e2dc0 semantic: No error in
check_function_redeclarationfor CommonJS files (#18231) (overlookmotel) - 645c3f0 transformer: Use
requirenotimportin CommonJS files (#18226) (overlookmotel) - ee9f6a4 mangler: Use
retaininstead oftruncateto remove empty frequency slots (#18225) (Dunqing)
⚡ Performance
oxc crates_v0.109.0
💥 BREAKING CHANGES
- ba9c750 span: [BREAKING] Use
ModuleKind::CommonJSfor.cjsand.ctsfile extensions (#18117) (Boshen) - 9135b0b ast: [BREAKING] Move scope from
TSEnumDeclarationtoTSEnumBody(#18058) (Boshen)
🚀 Features
- 8a1cbbd parser: Add syntax errors for constructor declarations (#18220) (Boshen)
- e2221e6 semantic: Store
scope_idinReference(#18053) (Dunqing) - 6e8fa80 napi/parser, napi/transform: Accept
sourceType: "commonjs"(#18197) (overlookmotel) - 175b73a parser: Add ts error 1257 for
TSTupleElement(#18146) (Sysix) - fa2ffe2 parser: Add ts error 1266 for
TSTupleElement(#18145) (Sysix) - acf1aba parser: Add ts error 1265 for
TSTupleElement(#18144) (Sysix) - 830b757 regular_expression: Add Unicode 17.0 script properties (#18140) (Boshen)
- 92e27b4 parser: Reparse await expressions in unambiguous mode when ESM detected (#18139) (Boshen)
- 66b8c02 parser: Implement unambiguous module parsing for JS/TS files (#18124) (Boshen)
- 08dad63 span: Add
sourceType: 'commonjs'support (#18089) (Boshen) - 3f83ded traverse: Add into_state and into_state_and_scoping methods to ReusableTraverseCtx (#18010) (Cole Leavitt)
- d1016b9 minifier: Do not flip if/else when it would produce longer result (#17556) (Armano)
- 9c6e344 minifier: Prune empty
casebefore trailingdefault(#17994) (Boshen) - 6b29bd1 semantic/example: Add detailed references info (#17938) (camc314)
🐛 Bug Fixes
- 808b7c3 semantic: Resolve qualified names to namespaces, not shadowing type parameters (#17929) (camc314)
- 1b199af semantic: Report TS18019 for abstract modifier with private identifier (#18173) (Boshen)
- 37482eb parser: Respect optional
TSNamedTupleMemberfor ts error 1266 &1257 (#18178) (Sysix) - 2c6966d parser: Correct precedence handling for private-in expression (#18169) (Boshen)
- 38e4b53 minifier: Validate RegExp patterns before marking as pure (#18125) (Boshen)
- 91126a0 parser: Reparse all statements with await identifier in unambiguous mode (#18163) (Boshen)
- c98e5b7 parser: Parse
for (using of = ...)as using declaration (#18142) (Boshen) - 01d7b13 oxc_minifier: Enable sourcemap feature in dev mode (#18131) (Armano)
- fb181cc semantic: Error on
usingat top level in scripts (#18090) (Boshen) - 2aae4fc linter: Fix stack overflow in
no-unreachablerule on large files (#18077) (Boshen) - f69b6da mangler: Reserve names from eval-containing scopes (#18037) (camc314)
- c8f847e minifier: Preserve return value of
@__PURE__IIFE in return statements (#18036) (camc314) - ee353e6 minifier: Skip inlining constant in scopes with eval (#17926) (camc314)
- 7a0ca99 linter/plugins: Use correct ScriptKind for tokens (#17185) (Peter Wagenet)
- 4c16ae7 codegen: Remove spaces around
=in minified type parameter defaults (#17989) (Boshen) - a412103 parser: Improve diagnostics for double
export(#17992) (Boshen) - 06bd17b codegen: Remove unnecessary double parentheses from satisfies expressions (#17986) (Boshen)
- 1874765 codegen: Fix inconsistent multiline EOF comment formatting (#17983) (Boshen)
- 2619c66 codegen: Remove leading whitespace from export statements after comments (#17982) (Boshen)
- 4d9582d semantic: Allow
arguments/evalas binding identifier names and identifier reference names in.d.ts(#17910) (Dunqing)
⚡ Performance
- 91c143f mangler: Remove
frequenciesitems if they are unused (#18183) (Dunqing) - 9af52c6 mangler: Turn off
scope_tree_child_idsforSemanticBuilder(#18122) (Dunqing) - 46cd73d allocator: Add #[cold] annotations to error handling functions (#18181) (Boshen)
- 8da684e allocator: Type-erase RawVec::finish_grow inner function (#18175) (Boshen)
- 837edf6 transformer/typescript: Reduce
scope_id()calls (#18097) (overlookmotel) - 8ee6f80 transformer/tagged-template: Add
#[cold]hint to unlikely path (#18034) (overlookmotel) - 23449e0 transformer/tagged-template-transform: Improve performance (#15834) (Dunqing)
📚 Documentation
oxlint v1.41.0 & oxfmt v0.26.0
Table of Contents
Oxlint v1.41.0
⚡ Performance
- 1a247f1 linter/no-redeclare: Avoid repeated PHF hashmap lookups (#18248) (overlookmotel)
📚 Documentation
- 64459e5 linter: Update a handful of rules that were missing the "Why is this bad?" docs header. (#18263) (connorshea)
- 8a294d5 oxfmt, oxlint: Update logo (#18242) (Dunqing)
Oxfmt v0.26.0
🐛 Bug Fixes
- 864b4ab oxfmt: Use
format_configforexternal_optionsoverride (#18252) (leaysgur) - 90ce4b7 oxfmt: Restore
customGroupshandling lost (#18243) (leaysgur)
📚 Documentation
- 8a294d5 oxfmt, oxlint: Update logo (#18242) (Dunqing)
oxlint v1.40.0 & oxfmt v0.25.0
Table of Contents
Oxlint v1.40.0
💥 BREAKING CHANGES
- ba9c750 span: [BREAKING] Use
ModuleKind::CommonJSfor.cjsand.ctsfile extensions (#18117) (Boshen) - 3a0a190 linter/plugins: [BREAKING] Prevent access to
cwdincreateOnce(#18081) (overlookmotel) - 9135b0b ast: [BREAKING] Move scope from
TSEnumDeclarationtoTSEnumBody(#18058) (Boshen)
🚀 Features
- 7c86fc3 linter/plugins: Support
commonjssource type inRuleTester(#18198) (overlookmotel) - 6e8fa80 napi/parser, napi/transform: Accept
sourceType: "commonjs"(#18197) (overlookmotel) - 66b8c02 parser: Implement unambiguous module parsing for JS/TS files (#18124) (Boshen)
- 08dad63 span: Add
sourceType: 'commonjs'support (#18089) (Boshen) - b516088 linter: Implement rule option validation/error handling for jest/no-hooks and eslint/no-return-assign rules. (#17600) (connorshea)
- 883f472 vscode: Change icon source (#17998) (Alexander Lichter)
- e7631dd website: Update website generation flow for JSON rules output (#17973) (connorshea)
- 1757251 linter: Update linter JSON rule output to include extra information. (#15763) (connorshea)
- 1f3cdcd linter/no-useless-rename: Add automatic fix (#17951) (camchenry)
- fe1444c linter/no-unused-vars: Improve fixer for unused imports (#17941) (camc314)
- 251f301 linter/fixer: Expose
find_next_token_withinin fixer (#17942) (camc314) - f04aa60 linter/fixer: Expose
find_next_token_fromin fixer (#17940) (camc314)
🐛 Bug Fixes
- 4d68448 linter/plugins:
reportaccept out of rangecolumnindexes inloc(#18199) (overlookmotel) - a0b3721 linter: Move typescript/prefer-optional-chain to nursery for now. (#18147) (connorshea)
- 8a2dabc linter/plugins: Rule tester default to module source type in ESLint compat mode (#18195) (overlookmotel)
- a7e2eb2 vscode: Resolve binary paths with node resolver (#17970) (Sysix)
- 5f98e1a linter: Update react/jsx-max-depth to raise an error if provided invalid config options. (#18105) (connorshea)
- c7e7008 linter: Raise errors for invalid config on eslint/prefer-promise-reject-errors rule (#18103) (connorshea)
- 618c629 linter/rules-of-hooks: Detect hook calls inside JSX render props (#17980) (LeeKangbok)
- 121a239 linter: Sort paths by length instead of alphabetically for depth heuristic (#18084) (Boshen)
- 6956543 linter: Fix LSP panic from stale directive spans (#18082) (Boshen)
- 2aae4fc linter: Fix stack overflow in
no-unreachablerule on large files (#18077) (Boshen) - 7a0ca99 linter/plugins: Use correct ScriptKind for tokens (#17185) (Peter Wagenet)
- 2a397f8 oxlint/lsp: Don't send
workspace/diagnostic/refreshnotification on watched file changes (#17885) (Sysix) - 8deef41 linter/prefer-destructuring: Fix rule to exclude
usingandawait using(#17952) (camchenry) - dbe06d8 linter/no-promise-executor-return: Check if
Promiseis the global one (#17949) (camchenry) - ad02e03 linter/no-await-in-loop: Add support for
await using(#17947) (camchenry) - 63e2737 linter/no-import-node-test: Mark fixer as suggestion (#17925) (camc314)
📚 Documentation
- 4afa5c8 linter: Cleanup docs for various rules for consistency. (#18214) (connorshea)
- c1c152b linter: Fix formatting for empty-brace-spaces rule example. (#18203) (connorshea)
- 7028745 linter: Fix formatting of JSON examples in filename-case rule docs. (#18202) (connorshea)
- 926b7be linter: Fix a mistake in the documentation for prefer-ts-expect-error (#18201) (connorshea)
- d51cb6c linter/plugins: Remove outdated comments (#18194) (overlookmotel)
- 85a846c linter: Prefer enum docs over struct field docs for no-unused-vars (#18123) (Boshen)
- d8f5c66 vcode: Add example for
editor.formatOnSavewitheditor.formatOnSaveMode(#18126) (Sysix) - 5346fc9 editor: Update the README for the vscode extension to clarify experimental setting (#18048) (Connor Shea)
- c2173a7 linter: Minor typo fix for nextjs rules. (#18018) (connorshea)
- 132cc48 linter: Improve prefer-spread docs. (#17976) (connorshea)
Oxfmt v0.25.0
🚀 Features
- a95b9bb oxfmt: Support oxfmtrc
overridesconfig (#18068) (leaysgur) - 984d5c1 oxfmt/sort-imports: Support
options.customGroups(#17576) (nilptr) - 66b8c02 parser: Implement unambiguous module parsing for JS/TS files (#18124) (Boshen)
- fd2c792 formatter: Support css prop, styled jsx, and member/computed
styled.tags(#17990) (magic-akari) - 361a8f1 oxfmt: Upgrade
prettierto 3.8.0 (#18024) (Dunqing) - 873c683 oxfmt: Add more tracing logs (#18015) (Yuji Sugiura)
- cc3e74b oxfmt: Add Prettier specific fields in
Oxfmtrc(#17981) (leaysgur) - 6ffe315 oxfmt: Add more
Oxfmtrcfields description (#17979) (leaysgur) - c4c55cc formatter: Add
oxfmt-ignoreignore comment support (#17916) (Dunqing)
🐛 Bug Fixes
- 73fedb9 oxfmt: Apply
.editorconfigroot section withoxfmtrc.overrides(#18210) (leaysgur) - 3e141f0 formatter: Normalize
ChainExpressionwithTSNonNullExpressionto match Prettier (#18061) (Boshen) - 9b902b6 formatter: Use soft indent for empty objects in JSX spread attributes (#18063) (Boshen)
- 8da749b formatter: Allow parameters to break in angular test wrappers (#18060) (Boshen)
- 125962d formatter: Fix 4 prettier conformance tests (#18057) (Boshen)
- 2a397f8 oxlint/lsp: Don't send
workspace/diagnostic/refreshnotification on watched file changes (#17885) (Sysix) - efacb13 oxfmt: Do not wrap with
block_indent()ifformat_embeddedfails (#17975) (leaysgur) - bbadb8e oxfmt/sort-imports: Hard line inside multiline import leads to i… (#17880) (nilptr)
- 9d0f551 oxfmt: Do not panic with subdirectry and config (#17955) (leaysgur)
- 9d96cc6 oxfmt: Use
std(out/err)._handle.setBlocking(true)to handleWouldBlockerror in Rust (#17950) (leaysgur)
⚡ Performance
oxc crates_v0.108.0
🚀 Features
- 10426af codegen: Print soft space between inline block comments on the same line (#17799) (camc314)
- 2261e6e semantic: Improve error message to add
#for private identifiers (#17779) (Dunqing)
🐛 Bug Fixes
- 7422b7e parser/trivia: Correctly mark whether a block comment is on a newline (#17754) (camc314)
- c32e8d5 codegen: Wrap
TSAsExpressionin parens when used with in/instanceof operators (#17752) (camc314) - 5755b2d semantic: Report duplicate private identifier for static and instance elements (#17591) (camc314)
- 0600df3 isolated_declarations: Only print jsdoc comments (#17748) (camc314)
- ef7e014 parser: Preserve
@__NO_SIDE_EFFECTS__annotation with parenthesized expressions (#17711) (camc314) - 59a6228 parser: Detect TS1363 error for type-only imports with mixed default and named/namespace bindings (#17712) (Copilot)
⚡ Performance
- 864f1fa semantic: Mark duplicate class element error reporting as cold (#17746) (camc314)
- 3a452b8 semantic: Use smallvec for storing reference IDs (#17731) (camchenry)
- d5979dc minifier: Do not allocate when checking to convert
consttolet(#17730) (camchenry) - 3f4429c parser: Do not re-allocate TS interface heritage (#17692) (camchenry)
📚 Documentation
- 120a27c minifier: Add prettier-ignore for js-in-md part (#17687) (leaysgur)
oxlint v1.39.0 & oxfmt v0.24.0
Table of Contents
Oxlint v1.39.0
🚀 Features
- 9699a1b linter/prefer-global-this: Add suggestion (#17873) (Mikhail Baev)
- 51c2815 linter/no-invalid-regexp: Add labels and help text to flag diagnostics (#17865) (camchenry)
- 344d77d linter/no-ex-assign: Improve diagnostic with more detail (#17864) (camchenry)
- 7d280e0 linter: Add fixer for
unicorn/no-useless-error-capture-stack-tracerule (#17839) (Mikhail Baev) - af1d0e3 linter/prefer-optional-chain: Add rule (#17831) (camc314)
- e3c4108 vscode: Add more supported languages to extension (#17812) (Alexander Lichter)
- 4a46678 vscode: Activate extension on more languages (#17717) (Sysix)
- b1298fc vscode: Sync formatter with supported files (#17615) (Alexander Lichter)
- c7f0848 linte/rno-required-prop-with-default: Implement suggestion (#17747) (Minsu Lee)
- 0e8127e linter/vue: Implement no-lifecycle-after-await (#17701) (yefan)
- 3567304 linter/vitest: Implement
consistent-each-for(#17601) (Said Atrahouch) - 883e156 linter: Add fixer for
unicorn/no-useless-collection-argumentrule (#17594) (Mikhail Baev) - 4eb335c linter/vitest: Implemented prefer-called-once (#17674) (Said Atrahouch)
- 2bd2d5a linter/vitest: Implement hoisted-apis-on-top (#17658) (Said Atrahouch)
- cfb2bcc linter/vue: Implement no-arrow-functions-in-watch (#17672) (yefan)
- a68208a linter/eslint-plugin-vitest: Implements
prefer-describe-function-title(#17677) (Said Atrahouch) - efa029f linter/vitest: Implement no-unneeded-async-expect-function (#17494) (Minsu Lee)
🐛 Bug Fixes
- 49cf66e lsp: Fix workspace worker selection for nested and similar-named workspaces (#17853) (Copilot)
- 84f4f3c linter: Add doc url for tsgolint diagnostics (#17879) (Sysix)
- 76c903f linter/consistent-indexed-object-style: Skip fixing default exported interface (#17874) (Copilot)
- 7e87d16 linter/tabindex-no-positive: Improve diagnostic phrasing (#17849) (connorshea)
- 28f9fba vscode: Fix nested search for binaries (#17832) (Sysix)
- 8ca2cd2 linter: Move jsx-a11y/no-static-element-interactions rule to nursery. (#17818) (connorshea)
- dc9fdd6 linter/consistent-indexed-object-style: Re-port test cases and fix some bugs (#17802) (camc314)
- 7bbd880 linter: Update prefer-destructuring rule metadata (#17642) (Hamir Mahal)
- 3c45185 linter/consistent-indexed-object-style: False positive with circular reference (#17789) (heygsc)
- bd186b4 vscode: Search for
oxlintandoxfmtin every workspace directory (#17760) (Sysix) - 3e0dff7 linter/no-hooks: Add punctuation to diagnostic message (#17751) (camc314)
- 6ae21f9 linter/prefer-called-once: Avoid panic on trailing comma (#17735) (Said Atrahouch)
- 32c3901 oxlint: Do not panic on invalid
no-unused-varsconfiguration (#17719) (Sysix) - 59a6228 parser: Detect TS1363 error for type-only imports with mixed default and named/namespace bindings (#17712) (Copilot)
⚡ Performance
- f87a1e2 linter: Check for giving reserved plugin name before calling
load_pluginon napi side (#17841) (Sysix)
📚 Documentation
- a2b3a24 linter/no-caller: Improve docs and diagnostic for rule. (#17890) (connorshea)
- aa48247 linter/no-unsafe-finally: Improve rule docs. (#17891) (connorshea)
- 1b0bdee linter: Tweak docs for no-useless-constructor and hoisted-apis-on-top (#17888) (connorshea)
- 8f24fa9 vscode: Remove mention of a built-in server (#17836) (Sysix)
- e81a306 linter: Update the tsconfig flag mention for the import plugin. (#17778) (connorshea)
Oxfmt v0.24.0
🚀 Features
- 539b350 formatter/sort_imports: Update
NODE_BUILTINSmodules (#17771) (nilptr) - 2e03ebf oxfmt/lsp: Use
SourceFormatterto support non-JS files and napi features (#17655) (leaysgur) - 623f7eb oxfmt/sort_package_json: Use
options.sort_scripts(#17740) (leaysgur) - 86c0168 oxfmt/sort_package_json: Handle
oxfmtrc.sort_scriptsoption (#17738) (leaysgur) - 256636a oxfmt/lsp: Add
.editorconfigtoget_watcher_patterns(#17694) (leaysgur) - 3f3db39 oxfmt/lsp: Use
ConfigResolverto align with CLI (#17654) (leaysgur)
🐛 Bug Fixes
- fdd1e1e formatter: Don't wrap parenthesis for type assertion when it's an declaration of export default (#17878) (Dunqing)
- f0813ad formatter: Incorrect type annotation check for short argument (#17877) (Dunqing)
- 9e89389 formatter/tailwindcss: Nested class string doesn't respect
singleQuote: true(#17838) (Dunqing) - e2f534c formatter/sort_imports: Handle alignable comment with JsLabels (#17791) (leaysgur)
- f0cedd4 formatter/tailwindcss: Class name is broken after sorting when its contains single quotes with
singleQuote: true(#17790) (Dunqing) - 1864142 oxfmt/tailwindcss: Bundle
prettier/plugins/*(#17782) (leaysgur) - 3a9d43b oxfmt: Ignore explicit positional path which is ignored by directory (#17732) (leaysgur)
- 0563217 formatter: Classes will be stripped out when both
experimentalTailwindcssandexperimentalSortImportsare enabled (#17726) (Dunqing)
⚡ Performance
📚 Documentation
oxlint v1.38.0 & oxfmt v0.23.0
Table of Contents
Oxlint v1.38.0
Oxfmt v0.23.0
🚀 Features
- a19cc93 oxfmt: Add debug logging to oxfmt LSP to troubleshoot resolved options at runtime (#17695) (Nicholas Rayburn)
🐛 Bug Fixes
- 3b4aced formatter: Should not treat multi-type arguments of TSTypeReference as a complex type (#17708) (Dunqing)
- dcfdd41 formatter: Should not set up tailwindcss callback when no tailwindcss configuration is set (#17696) (Dunqing)
- 6f65901 formatter: Return original classes when there are no tailwindcss classes sort callback (#17689) (Dunqing)
⚡ Performance
oxc crates_v0.107.0
🚀 Features
- 659c23e linter: Init note field boilerplate (#17589) (Shrey Sudhir)
- 6870b64 parser: Add TS1363 error code (#17609) (Sysix)
- 23680a3 mangler: Skip mangling only in scopes affected by direct eval (#17612) (camc314)
- a7e1643 parser: Add TS2528 error code to duplicate_default_export diagnostic (#17558) (camc314)
🐛 Bug Fixes
- 1044116 ecmascript: Mark
new Symbolas non side-effect free (#17568) (camc314) - ab5e4ca isolated-declarations: Strip default values from rest parameter binding patterns (#17602) (camc314)
- 68b2e54 minifier: Prevent incorrect ??= transformation when member base is mutated (#17472) (copilot-swe-agent)
⚡ Performance
- 6067143 semantic: Remove hash when checking identifier (#17564) (camchenry)
- a28ab3d semantic: Avoid bounds check when checking string literal (#17545) (camc314)
- 04809d1 semantic: Use SIMD for finding backslashes in
check_string_literal(#17534) (camchenry) - 49ad2f0 semantic: Mark all diagnostic functions as
#[cold](#17487) (camc314) - ea82b50 transformer: Mark all diagnostic functions as
#[cold](#17486) (camc314) - d968e51 semantic: Mark
checker::checkasinline(always)(#17459) (camc314)
oxlint v1.37.0 & oxfmt v0.22.0
Table of Contents
Oxlint v1.37.0
💥 BREAKING CHANGES
🚀 Features
- 659c23e linter: Init note field boilerplate (#17589) (Shrey Sudhir)
- 6870b64 parser: Add TS1363 error code (#17609) (Sysix)
- 6154c8c linter/eslint-plugin-vitest: Implemented vitest/warn-todo rule (#17228) (Said Atrahouch)
- 0043cd6 linter/eslint-plugin-vitest: Implement consistent-vitest-vi rule (#17389) (Said Atrahouch)
- a6d773d linter: Add full TS support to eslint/no-useless-constructor (#17592) (camc314)
- f02c0e7 linter/eslint: Implement complexity (#17569) (Nguyen Tran)
- bc7aae7 linter/no-unused-vars: Add fixer to remove unused catch bindings (#17567) (Don Isaac)
- 9e8ec78 linter/only-throw-error rule: Add
allowRethrowingoption for (#17554) (camc314) - b67e819 linter: Add fixer for
unicorn/prefer-response-static-jsonrule (#17559) (Mikhail Baev) - 44b0361 linter/vue: Implement no-this-in-before-route-enter (#17525) (yefan)
- ee34716 linter/react: Implement no-will-update-set-state (#17530) (Kenzo Wada)
- 3088e1d linter/react: Implement no-this-in-sfc (#17535) (Kenzo Wada)
- 29a2868 linter/jsx-a11y: Implement no-static-element-interactions (#17538) (Kenzo Wada)
- eadf057 linter: Enable tsconfig auto discovery by default (#17489) (Boshen)
- 12a7d6e website_linter: Add a count of rules with fixes available to rules table. (#17476) (Connor Shea)
🐛 Bug Fixes
- 77ccfe5 linter/no-standalone-expect: Support
it.failsandtest.fails(#17668) (Copilot) - b90243c linter/capitalized-comments: Handle URLs in multiline block comments correctly (#17664) (Copilot)
- a702f13 oxlint/lsp: Correct position for "disable for this file" with shebang (#17613) (Sysix)
- 19fdfb6 linter: Panic in
sort-keysrule with Unicode numeric characters (#17629) (Adel Rodríguez) - 2e8f469 vscode: Search for
node_modules/.bin/oxlint.exetoo (bun setup) (#17597) (Sysix) - be39906 linter/aria-proptypes: Allow template literals with expressions for string-type ARIA props (#17460) (Jökull Sólberg Auðunsson)
- 529901c linter: Include JS plugin rules when calculating total rule count (#17520) (connorshea)
- 96ef2cc linter: Print total rule # when using a single nested config (#17517) (connorshea)
- 9ad0f29 oxlint: Do not enable external plugin store when no external linter is passed (#17498) (Sysix)
- 174375d oxfmt,oxlint: Disable mimalloc for 32-bit Arm targets (#17473) (Yaksh Bariya)
- ff70fe9 linter/no-standalone-expect: Allows expect in wrapper functions passed to test blocks (#17427) (Copilot)
- dab232f linter/catch-or-return: Handle arrow functions with implicit returns correctly (#17440) (Copilot)
- a38892a linter: Update no-unnecessary-template-expression docs and test case (#17453) (camc314)
⚡ Performance
- edbfdb9 linter/capitalized-comments: Use
trim_startovertrim(#17671) (camc314) - 605dbf1 vscode: Restrict searching for oxlint/oxfmt binaries only 3 levels deep + 10s timeout (#17345) (Sysix)
📚 Documentation
- 884fb63 linter/react: Improve docs for jsx-curly-brace-presence (#17579) (connorshea)
- 1d3ee07 linter: Improve rule explanation for
vue/no-this-in-before-route-enter. (#17581) (connorshea) - 5f189f8 linter/arrow-body-style: Correctly document default mode option (#17566) (Rägnar O'ock)
- bb2e8e4 linter: Add a note to the
typescript/no-var-requiresrule about the missingallowoption (#17551) (connorshea) - 655afc1 linter: Improve docs for
import/extensionsand add a few more tests (#17539) (connorshea) - 7e5fc90 linter: Update list of plugins that are reserved. (#17516) (connorshea)
Oxfmt v0.22.0
💥 BREAKING CHANGES
🚀 Features
- a680d99 formatter: Support migration of
prettier-plugin-tailwindcssin--migrate:prettier(#17652) (Dunqing) - c20ef0c formatter: Add TailwindCSS support for non-JS/TS files (#17648) (Dunqing)
- 26ed46b formatter: Add TailwindCSS support for JS/TS files (#16990) (Dunqing)
- 8fd4ea9 oxfmt:
options.embeddedLanguageFormattingis now"auto"by default (#17649) (leaysgur)
🐛 Bug Fixes
- f60a4d8 formatter: Should not hug the type literal when its parent param has an initialzier (#17660) (Dunqing)
- c9b5d7d formatter/sort_imports: Handle alignable_comment correctly (#17646) (leaysgur)
- 453222d formatter: Missing comment handling for end-of-line comments in member chains (#17659) (Dunqing)
- 0805ff2 formatter: Incorrect inline comment placement in try-catch (#17657) (Dunqing)
- 3a0c782 formatter: Don't move comments into optional call parentheses (#17582) (magic-akari)
- 174375d oxfmt,oxlint: Disable mimalloc for 32-bit Arm targets (#17473) (Yaksh Bariya)
⚡ Performance
oxc crates_v0.106.0
🚀 Features
- 5f963dd allocator/bitset: Add
clearmethod to reset all bits (#17380) (camc314) - 289bff7 transformer: Export
ESFeaturefrom options (#17347) (shulaoda) - e031056 codegen: Add
sourcemapfeature flag (#17305) (Boshen) - 8e4409a minifier: Add
invalid_import_side_effectsoption (#17300) (sapphi-red) - 4ac23e1 parser: Produce syntax error for
({ foo(bar) })(#17267) (Boshen) - a15e183 parser: Change span for missing initializer in decleration (#17134) (camc314)
- 3ee71b0 parser: Add diagnostic for parameters with question mark and initializer (#17132) (camc314)
⚡ Performance
- 5fa85be semantic: Remove
enter_kind(#17439) (camc314) - 19b437b semantic: Inline
enter_kindforContinueStatement(#17436) (camc314) - d66a691 semantic: Inline
enter_kindforBreakStatement(#17435) (camc314) - 4a9b302 semantic: Inline
enter_kindCFG statement handling (#17433) (camc314) - d08356e semantic: Inline
enter_kindforTSTypeReference(#17432) (camc314) - ea2d639 semantic: Inline
enter_kindforTSClassImplements(#17431) (camc314) - e862cac semantic: Inline
enter_kindforTSInterfaceHeritage(#17430) (camc314) - 50bd7de semantic: Inline
enter_kindforCallExpression(#17429) (camc314) - 7dff312 semantic: Inline
enter_kindforYieldExpression(#17428) (camc314) - dff229c semantic: Inline
enter_kindforIdentifierReference(#17422) (camc314) - 3352e6c semantic: Inline
enter_kindforTSTypeQuery(#17421) (camc314) - 8e803ca semantic: Inline
enter_kindforTSPropertySignature(#17420) (camc314) - 739ed7c semantic: Inline
enter_kindforTSTypeParameter(#17419) (camc314) - c4ae687 semantic: Inline
enter_kindforTSEnumMember(#17418) (camc314) - 4c845a3 semantic: Inline
enter_kindforTSEnumDeclaration(#17417) (camc314) - 83cc44d semantic: Inline
enter_kindforTSInterfaceDeclaration(#17414) (camc314) - dc35189 semantic: Inline
enter_kindforTSTypeAliasDeclaration(#17413) (camc314) - 722fffa codegen: Restructure print_comments to avoid index comparisons in loop (#17402) (camc314)
- 7ec39d0 codegen: Use print_ascii_byte in more places (#17401) (camc314)
- 510ec00 codegen: Avoid allocation in PrivateIdentifier gen when not mangling (#17395) (camc314)
- d2afdcf semantic: Inline
enter_kindforTSModuleDeclaration(#17405) (camc314) - 1bda570 semantic: Inline
enter_kindforCatchParameter(#17404) (camc314) - 7284b76 semantic: Inline
enter_kindforFormalParameterRest(#17403) (camc314) - 585ddf8 semantic: Inline
enter_kindforFormalParameter(#17400) (camc314) - eacd876 semantic: Inline
enter_kindforBindingRestElement(#17399) (camc314) - adc657a semantic: Inline
enter_kindforPrivateIdentifier(#17398) (camc314) - 6e9d26b semantic: Inline
enter_kindforClassBody(#17397) (camc314) - d930962 semantic: Inline
enter_kindforVariableDeclarator(#17396) (camc314) - 900d42d semantic: Inline
enter_kindforTSImportEqualsDeclaration(#17394) (camc314) - f3afe57 semantic: Inline
enter_kindforImportNamespaceSpecifier(#17393) (camc314) - 19392df semantic: Inline
enter_kindforImportDefaultSpecifier(#17392) (camc314) - 22d46d0 semantic: Inline
enter_kindforImportSpecifier(#17391) (camc314) - e073925 mangler: Early exit in liveness walk when scope already marked live (#17382) (camc314)
- 50f0ddd mangler: Optimize slot assignment with pre-computed ancestor sets (#17379) (camc314)
- c3ff642 mangler: Avoid
ToStringallocations (#17378) (camc314) - 3886ddc semantic: Use match_module_declaration! macro instead of match guard (#17184) (camc314)
- 605a290 semantic: Use swap_remove instead of into_iter().next() in into_root (#17183) (camc314)
- 315c9ed semantic: Use
split_at_mutinstead of iterator incurrent_and_parent_mut(#17182) (camc314) - e35049b transformer: Avoid unneccessary vec allocation (#17270) (camc314)