Tags: veeceey/oxc
Tags
release(apps): oxlint v1.43.0 && oxfmt v0.28.0 (oxc-project#18843) # Oxlint ### 💥 BREAKING CHANGES - b34a155 linter/plugins: [**BREAKING**] `RuleTester` set `context.filename` to absolute path (oxc-project#18702) (overlookmotel) ### 🚀 Features - 1753209 linter/vscode: Run extension when JS configs are detected (oxc-project#18832) (camc314) - c962dd2 linter/lsp: Implement support for oxlint.config.ts (oxc-project#18826) (camc314) - da32203 linter: Auto generate oxlint.config.ts types (oxc-project#18597) (camc314) - 19b4df7 oxlint: Introduce `defineConfig` helper (oxc-project#18596) (camc314) - ea97231 linter: Implement `oxlint.config.ts` support (oxc-project#17563) (camc314) - 17ca42d linter: Implement `react/no-multi-comp` rule. (oxc-project#18794) (connorshea) - 88f30e0 linter/plugins: Move eslint compatible plugin conversion to `eslintCompatPlugin` function (oxc-project#18791) (overlookmotel) - 2a72794 linter/plugins: `RuleTester` take `cwd` property (oxc-project#18756) (overlookmotel) - 9f533db linter: Add `find_prev_token_within` method for token search (oxc-project#18769) (camc314) - 772ea70 linter: Introduce `load_js_configs` napi callback (oxc-project#18767) (camc314) - e9690c1 linter: Introduce `DiscoveredConfig` in preparation for JS configs (oxc-project#18674) (camc314) - 558b588 linter/prefer-namespace-keyword: Move to correctness (oxc-project#18733) (camc314) - 7a5c268 oxlint/lsp: Support `jsPlugins` (oxc-project#17840) (Sysix) - c07497c linter/prefer-modern-dom-apis: Implement suggestion (oxc-project#17965) (Mikhail Baev) - 8531bc9 linter: Implement `prefer-const` (oxc-project#18687) (camchenry) - 8670b18 parser: Error on ambient class accessor implementations (oxc-project#18592) (camc314) - 6b8a5ae linter: Add `eslint-plugin-import/no-nodejs-modules` rule (oxc-project#18006) (Mikhail Baev) - 04f400d linter/no-duplicates: Add support for `considerQueryString` option (oxc-project#18657) (camc314) - 3b7f260 linter/consistent-generic-constructor: Implement fixer (oxc-project#18616) (camc314) - 794f9e4 linter/prefer-exponentation-operator: Implement suggestion (oxc-project#18602) (camc314) - 773d916 linter: `eslint/sort_keys` ignore leading and trailing spreads in auto-fix (oxc-project#18485) (Lonami) - 20d4ede linter: Implement `import/no-relative-parent-imports` rule (oxc-project#18513) (Valentin Maerten) - 0da45ef vscode: Fallback to globally installed oxlint/oxfmt packages (oxc-project#18007) (Sysix) ### 🐛 Bug Fixes - a3417b1 linter/plugins: Clear state when reloading workspace (oxc-project#18837) (overlookmotel) - c879992 linter: Error on arrays passed in as config (oxc-project#18822) (camc314) - 5c80422 linter/tsdown: Ensure relative path for globals import starts with `./` (oxc-project#18820) (camc314) - 7419dfb linter: Remove invalid debug assersion, add test (oxc-project#18819) (camc314) - 0ca6269 ci: Fix the repo path normalization logic for tests on Windows. (oxc-project#18815) (connorshea) - c7b0a65 linter: Fix config option docs for `react/jsx-boolean-value` rule. (oxc-project#18811) (connorshea) - cce374e linter/prefer-const: Replace entire declaration over just the `let` kw (oxc-project#18814) (camc314) - 41f92d1 linter: Error when given config options for a lint rule that has no config options defined. (oxc-project#18809) (connorshea) - 0867a36 linter/consistent-index-object-style: False positive with mapped + generic types (oxc-project#18801) (camc314) - 1d34b42 linter: Fix 32 bit build (oxc-project#18783) (camc314) - 95df577 linter/plugins: Handle error from `destroyWorkspace` (oxc-project#18763) (overlookmotel) - b3261dc linter: Fix the curly rule config to enforce the shape of the config and emit correct docs (oxc-project#18743) (connorshea) - d981978 linter/plugins: Use non-blocking mode when calling `destroyWorkspace` (oxc-project#18762) (overlookmotel) - 3f43d4c linter: Accept bools as valid values for `fixable` (oxc-project#18772) (camc314) - 005910a linter/plugins: Support plugins outside of workspace (oxc-project#18755) (overlookmotel) - fd92711 vscode: Use `fsPath` for workspace mapping (oxc-project#18728) (Sysix) - 358b2c1 linter/consistent-generic-constructors: Check bounds when searching for `:` token (oxc-project#18745) (connorshea) - abd0c28 linter/capitalized-comments: Fix generated rule option docs (oxc-project#18748) (connorshea) - d90a9f6 linter: Add more tests for `prefer-const`'s fixer and fix its invalid behavior. (oxc-project#18747) (connorshea) - f82011b oxlint/lsp: Disable JS plugins support in LSP except in tests (oxc-project#18727) (overlookmotel) - 94505c8 linter/jest: Change `prefer-spy-on` autofix to suggestion (oxc-project#18152) (Ben Lowery) - 6ec1112 linter: Mark unused disable directive fix as suggestion (oxc-project#18703) (ddmoney420) - 49609ec linter/no-useless-constructor: Consider argument transformation as used (oxc-project#18706) (ddmoney420) - 40218de linter: Fix behavior of jsx-a11y/no-static-element-interactions rule. (oxc-project#17817) (connorshea) - db9751d linter/no-html-link-for-pages: Handle `target=_blank` correctly (oxc-project#18693) (camc314) - e440b78 linter/plugins: Pass all args to CFG event handlers when 2 rules use same handler (oxc-project#18683) (overlookmotel) - b393430 linter/curly: Fix multi-or-nest and consistent conflict (oxc-project#18660) (camc314) - 2e1fbc2 linter/plugins: Implement `context.parserPath` (oxc-project#18644) (overlookmotel) - 34951ed linter/plugins: `filename` option takes precedence over `parserOptions.lang` in `RuleTester` (oxc-project#18643) (overlookmotel) - 28df160 linter/plugins: Allow line number passed to `report` to be 0 (oxc-project#18642) (overlookmotel) - 14fabec vscode: Use built-in `getWorkspaceFolder` for detecting the right workspace of a given uri (oxc-project#18583) (Sysix) - 0ff4cea oxlint/cli: Report error when nested config could not be parsed (oxc-project#18504) (Sysix) ### ⚡ Performance - 9862224 linter/plugins: Reduce cost of workspaces (oxc-project#18758) (overlookmotel) - 6bc0bde linter: Remove string allocation (oxc-project#18725) (overlookmotel) - 3a6b41e linter/plugins: Replace ESLint Traverser with lightweight traverseNode (oxc-project#18529) (Rintaro Itokawa) ### 📚 Documentation - dd1a653 linter: Fix doc comment for ignoreStateless config option. (oxc-project#18808) (connorshea) - 5909085 linter/plugins: Add doc comments (oxc-project#18753) (overlookmotel) - ffe53a3 linter: Update lint function docs (oxc-project#18766) (camc314) - b82faec linter: Glob for any css module for no-unassigned-import (oxc-project#18713) (Ben Stickley) - cd86347 linter: Mark some react rules as unsupported, misc docs improvements (oxc-project#18617) (connorshea) - 23401d8 linter: Update fixes and suggestions status for tsgolint rules (oxc-project#18619) (camchenry) # Oxfmt ### 🚀 Features - ee30de9 oxfmt: Add config migration from biome (oxc-project#18638) (Luca Fischer) ### 🐛 Bug Fixes - e754b18 oxfmt/migrate-prettier: Set `experimentalSortPackagejson: false` by default (oxc-project#18831) (leaysgur) - a83c266 formatter: Keep decorated function pattern hugged when params break (oxc-project#18830) (Dunqing) - 0c8efe1 formatter: Quote numeric property keys with `quoteProps: consistent` (oxc-project#18803) (Dunqing) - 9c14c3e formatter: Ignore comment does not work for sequence expressions in arrow function body (oxc-project#18799) (Dunqing) - 54984ae formatter: Handle leading comments in arrow function sequence expressions (oxc-project#18798) (Dunqing) - 61bb2b5 formatter: Correctly expand JSX returned from arrow callbacks in JSX expression containers (oxc-project#18797) (Dunqing) - 34ee194 formatter: Tailwindcss sorting doesn't work for object property keys (oxc-project#18773) (Dunqing) - 48f1e35 oxfmt: Prevent ThreadsafeFunction crash on Node.js exit (oxc-project#18723) (Boshen) - e96adca formatter: Follow Prettier's approach for for-in initializer parentheses (oxc-project#18695) (Dunqing) - 1215a6f formatter: Preserve quote for class property key in TypeScript (oxc-project#18692) (Dunqing) - 059acae formatter: Incorrect comments placement for union type in `TSTypeIntersection` (oxc-project#18690) (Dunqing) - c3d05c1 formatter,oxfmt: Handle CRLF with embedded formatting (oxc-project#18686) (leaysgur) - 7cb3085 formatter: Preserve comments on rest elements (oxc-project#18649) (Dunqing) - 21984dd formatter: Preserve type cast comments on rest parameters (oxc-project#18648) (Dunqing) - 2f70254 formatter: Don't add extra semicolon on suppressed class properties (oxc-project#18631) (Dunqing) - ac1ff4e oxfmt: Use `empty_line` IR for empty xxx-in-js line (oxc-project#18623) (leaysgur) - 8f76900 oxfmt: Dedent xxx-in-js templates before calling prettier (oxc-project#18622) (leaysgur) - 6b726ef oxfmt: Trim whitespace only xxx-in-js templates (oxc-project#18621) (leaysgur) Co-authored-by: camc314 <18101008+camc314@users.noreply.github.com>
release(apps): oxlint v1.43.0 && oxfmt v0.28.0 (oxc-project#18843) # Oxlint ### 💥 BREAKING CHANGES - b34a155 linter/plugins: [**BREAKING**] `RuleTester` set `context.filename` to absolute path (oxc-project#18702) (overlookmotel) ### 🚀 Features - 1753209 linter/vscode: Run extension when JS configs are detected (oxc-project#18832) (camc314) - c962dd2 linter/lsp: Implement support for oxlint.config.ts (oxc-project#18826) (camc314) - da32203 linter: Auto generate oxlint.config.ts types (oxc-project#18597) (camc314) - 19b4df7 oxlint: Introduce `defineConfig` helper (oxc-project#18596) (camc314) - ea97231 linter: Implement `oxlint.config.ts` support (oxc-project#17563) (camc314) - 17ca42d linter: Implement `react/no-multi-comp` rule. (oxc-project#18794) (connorshea) - 88f30e0 linter/plugins: Move eslint compatible plugin conversion to `eslintCompatPlugin` function (oxc-project#18791) (overlookmotel) - 2a72794 linter/plugins: `RuleTester` take `cwd` property (oxc-project#18756) (overlookmotel) - 9f533db linter: Add `find_prev_token_within` method for token search (oxc-project#18769) (camc314) - 772ea70 linter: Introduce `load_js_configs` napi callback (oxc-project#18767) (camc314) - e9690c1 linter: Introduce `DiscoveredConfig` in preparation for JS configs (oxc-project#18674) (camc314) - 558b588 linter/prefer-namespace-keyword: Move to correctness (oxc-project#18733) (camc314) - 7a5c268 oxlint/lsp: Support `jsPlugins` (oxc-project#17840) (Sysix) - c07497c linter/prefer-modern-dom-apis: Implement suggestion (oxc-project#17965) (Mikhail Baev) - 8531bc9 linter: Implement `prefer-const` (oxc-project#18687) (camchenry) - 8670b18 parser: Error on ambient class accessor implementations (oxc-project#18592) (camc314) - 6b8a5ae linter: Add `eslint-plugin-import/no-nodejs-modules` rule (oxc-project#18006) (Mikhail Baev) - 04f400d linter/no-duplicates: Add support for `considerQueryString` option (oxc-project#18657) (camc314) - 3b7f260 linter/consistent-generic-constructor: Implement fixer (oxc-project#18616) (camc314) - 794f9e4 linter/prefer-exponentation-operator: Implement suggestion (oxc-project#18602) (camc314) - 773d916 linter: `eslint/sort_keys` ignore leading and trailing spreads in auto-fix (oxc-project#18485) (Lonami) - 20d4ede linter: Implement `import/no-relative-parent-imports` rule (oxc-project#18513) (Valentin Maerten) - 0da45ef vscode: Fallback to globally installed oxlint/oxfmt packages (oxc-project#18007) (Sysix) ### 🐛 Bug Fixes - a3417b1 linter/plugins: Clear state when reloading workspace (oxc-project#18837) (overlookmotel) - c879992 linter: Error on arrays passed in as config (oxc-project#18822) (camc314) - 5c80422 linter/tsdown: Ensure relative path for globals import starts with `./` (oxc-project#18820) (camc314) - 7419dfb linter: Remove invalid debug assersion, add test (oxc-project#18819) (camc314) - 0ca6269 ci: Fix the repo path normalization logic for tests on Windows. (oxc-project#18815) (connorshea) - c7b0a65 linter: Fix config option docs for `react/jsx-boolean-value` rule. (oxc-project#18811) (connorshea) - cce374e linter/prefer-const: Replace entire declaration over just the `let` kw (oxc-project#18814) (camc314) - 41f92d1 linter: Error when given config options for a lint rule that has no config options defined. (oxc-project#18809) (connorshea) - 0867a36 linter/consistent-index-object-style: False positive with mapped + generic types (oxc-project#18801) (camc314) - 1d34b42 linter: Fix 32 bit build (oxc-project#18783) (camc314) - 95df577 linter/plugins: Handle error from `destroyWorkspace` (oxc-project#18763) (overlookmotel) - b3261dc linter: Fix the curly rule config to enforce the shape of the config and emit correct docs (oxc-project#18743) (connorshea) - d981978 linter/plugins: Use non-blocking mode when calling `destroyWorkspace` (oxc-project#18762) (overlookmotel) - 3f43d4c linter: Accept bools as valid values for `fixable` (oxc-project#18772) (camc314) - 005910a linter/plugins: Support plugins outside of workspace (oxc-project#18755) (overlookmotel) - fd92711 vscode: Use `fsPath` for workspace mapping (oxc-project#18728) (Sysix) - 358b2c1 linter/consistent-generic-constructors: Check bounds when searching for `:` token (oxc-project#18745) (connorshea) - abd0c28 linter/capitalized-comments: Fix generated rule option docs (oxc-project#18748) (connorshea) - d90a9f6 linter: Add more tests for `prefer-const`'s fixer and fix its invalid behavior. (oxc-project#18747) (connorshea) - f82011b oxlint/lsp: Disable JS plugins support in LSP except in tests (oxc-project#18727) (overlookmotel) - 94505c8 linter/jest: Change `prefer-spy-on` autofix to suggestion (oxc-project#18152) (Ben Lowery) - 6ec1112 linter: Mark unused disable directive fix as suggestion (oxc-project#18703) (ddmoney420) - 49609ec linter/no-useless-constructor: Consider argument transformation as used (oxc-project#18706) (ddmoney420) - 40218de linter: Fix behavior of jsx-a11y/no-static-element-interactions rule. (oxc-project#17817) (connorshea) - db9751d linter/no-html-link-for-pages: Handle `target=_blank` correctly (oxc-project#18693) (camc314) - e440b78 linter/plugins: Pass all args to CFG event handlers when 2 rules use same handler (oxc-project#18683) (overlookmotel) - b393430 linter/curly: Fix multi-or-nest and consistent conflict (oxc-project#18660) (camc314) - 2e1fbc2 linter/plugins: Implement `context.parserPath` (oxc-project#18644) (overlookmotel) - 34951ed linter/plugins: `filename` option takes precedence over `parserOptions.lang` in `RuleTester` (oxc-project#18643) (overlookmotel) - 28df160 linter/plugins: Allow line number passed to `report` to be 0 (oxc-project#18642) (overlookmotel) - 14fabec vscode: Use built-in `getWorkspaceFolder` for detecting the right workspace of a given uri (oxc-project#18583) (Sysix) - 0ff4cea oxlint/cli: Report error when nested config could not be parsed (oxc-project#18504) (Sysix) ### ⚡ Performance - 9862224 linter/plugins: Reduce cost of workspaces (oxc-project#18758) (overlookmotel) - 6bc0bde linter: Remove string allocation (oxc-project#18725) (overlookmotel) - 3a6b41e linter/plugins: Replace ESLint Traverser with lightweight traverseNode (oxc-project#18529) (Rintaro Itokawa) ### 📚 Documentation - dd1a653 linter: Fix doc comment for ignoreStateless config option. (oxc-project#18808) (connorshea) - 5909085 linter/plugins: Add doc comments (oxc-project#18753) (overlookmotel) - ffe53a3 linter: Update lint function docs (oxc-project#18766) (camc314) - b82faec linter: Glob for any css module for no-unassigned-import (oxc-project#18713) (Ben Stickley) - cd86347 linter: Mark some react rules as unsupported, misc docs improvements (oxc-project#18617) (connorshea) - 23401d8 linter: Update fixes and suggestions status for tsgolint rules (oxc-project#18619) (camchenry) # Oxfmt ### 🚀 Features - ee30de9 oxfmt: Add config migration from biome (oxc-project#18638) (Luca Fischer) ### 🐛 Bug Fixes - e754b18 oxfmt/migrate-prettier: Set `experimentalSortPackagejson: false` by default (oxc-project#18831) (leaysgur) - a83c266 formatter: Keep decorated function pattern hugged when params break (oxc-project#18830) (Dunqing) - 0c8efe1 formatter: Quote numeric property keys with `quoteProps: consistent` (oxc-project#18803) (Dunqing) - 9c14c3e formatter: Ignore comment does not work for sequence expressions in arrow function body (oxc-project#18799) (Dunqing) - 54984ae formatter: Handle leading comments in arrow function sequence expressions (oxc-project#18798) (Dunqing) - 61bb2b5 formatter: Correctly expand JSX returned from arrow callbacks in JSX expression containers (oxc-project#18797) (Dunqing) - 34ee194 formatter: Tailwindcss sorting doesn't work for object property keys (oxc-project#18773) (Dunqing) - 48f1e35 oxfmt: Prevent ThreadsafeFunction crash on Node.js exit (oxc-project#18723) (Boshen) - e96adca formatter: Follow Prettier's approach for for-in initializer parentheses (oxc-project#18695) (Dunqing) - 1215a6f formatter: Preserve quote for class property key in TypeScript (oxc-project#18692) (Dunqing) - 059acae formatter: Incorrect comments placement for union type in `TSTypeIntersection` (oxc-project#18690) (Dunqing) - c3d05c1 formatter,oxfmt: Handle CRLF with embedded formatting (oxc-project#18686) (leaysgur) - 7cb3085 formatter: Preserve comments on rest elements (oxc-project#18649) (Dunqing) - 21984dd formatter: Preserve type cast comments on rest parameters (oxc-project#18648) (Dunqing) - 2f70254 formatter: Don't add extra semicolon on suppressed class properties (oxc-project#18631) (Dunqing) - ac1ff4e oxfmt: Use `empty_line` IR for empty xxx-in-js line (oxc-project#18623) (leaysgur) - 8f76900 oxfmt: Dedent xxx-in-js templates before calling prettier (oxc-project#18622) (leaysgur) - 6b726ef oxfmt: Trim whitespace only xxx-in-js templates (oxc-project#18621) (leaysgur) Co-authored-by: camc314 <18101008+camc314@users.noreply.github.com>
release(crates): oxc v0.112.0 (oxc-project#18842) ### 💥 BREAKING CHANGES - 445cb1a oxc_allocator: [**BREAKING**] Remove dangerous `Allocator` methods (oxc-project#18715) (overlookmotel) ### 🚀 Features - 8670b18 parser: Error on ambient class accessor implementations (oxc-project#18592) (camc314) ### 🐛 Bug Fixes - 2e34461 minifier: Prevent expression inlining into block-scoped for-in declarations (oxc-project#18651) (copilot-swe-agent) ### 📚 Documentation - 3d01fa1 transformer: Update links to use Oxc docs (oxc-project#18722) (sapphi-red) Co-authored-by: camc314 <18101008+camc314@users.noreply.github.com>
release(apps): oxlint v1.43.0 && oxfmt v0.28.0 (oxc-project#18843) # Oxlint ### 💥 BREAKING CHANGES - b34a155 linter/plugins: [**BREAKING**] `RuleTester` set `context.filename` to absolute path (oxc-project#18702) (overlookmotel) ### 🚀 Features - 1753209 linter/vscode: Run extension when JS configs are detected (oxc-project#18832) (camc314) - c962dd2 linter/lsp: Implement support for oxlint.config.ts (oxc-project#18826) (camc314) - da32203 linter: Auto generate oxlint.config.ts types (oxc-project#18597) (camc314) - 19b4df7 oxlint: Introduce `defineConfig` helper (oxc-project#18596) (camc314) - ea97231 linter: Implement `oxlint.config.ts` support (oxc-project#17563) (camc314) - 17ca42d linter: Implement `react/no-multi-comp` rule. (oxc-project#18794) (connorshea) - 88f30e0 linter/plugins: Move eslint compatible plugin conversion to `eslintCompatPlugin` function (oxc-project#18791) (overlookmotel) - 2a72794 linter/plugins: `RuleTester` take `cwd` property (oxc-project#18756) (overlookmotel) - 9f533db linter: Add `find_prev_token_within` method for token search (oxc-project#18769) (camc314) - 772ea70 linter: Introduce `load_js_configs` napi callback (oxc-project#18767) (camc314) - e9690c1 linter: Introduce `DiscoveredConfig` in preparation for JS configs (oxc-project#18674) (camc314) - 558b588 linter/prefer-namespace-keyword: Move to correctness (oxc-project#18733) (camc314) - 7a5c268 oxlint/lsp: Support `jsPlugins` (oxc-project#17840) (Sysix) - c07497c linter/prefer-modern-dom-apis: Implement suggestion (oxc-project#17965) (Mikhail Baev) - 8531bc9 linter: Implement `prefer-const` (oxc-project#18687) (camchenry) - 8670b18 parser: Error on ambient class accessor implementations (oxc-project#18592) (camc314) - 6b8a5ae linter: Add `eslint-plugin-import/no-nodejs-modules` rule (oxc-project#18006) (Mikhail Baev) - 04f400d linter/no-duplicates: Add support for `considerQueryString` option (oxc-project#18657) (camc314) - 3b7f260 linter/consistent-generic-constructor: Implement fixer (oxc-project#18616) (camc314) - 794f9e4 linter/prefer-exponentation-operator: Implement suggestion (oxc-project#18602) (camc314) - 773d916 linter: `eslint/sort_keys` ignore leading and trailing spreads in auto-fix (oxc-project#18485) (Lonami) - 20d4ede linter: Implement `import/no-relative-parent-imports` rule (oxc-project#18513) (Valentin Maerten) - 0da45ef vscode: Fallback to globally installed oxlint/oxfmt packages (oxc-project#18007) (Sysix) ### 🐛 Bug Fixes - a3417b1 linter/plugins: Clear state when reloading workspace (oxc-project#18837) (overlookmotel) - c879992 linter: Error on arrays passed in as config (oxc-project#18822) (camc314) - 5c80422 linter/tsdown: Ensure relative path for globals import starts with `./` (oxc-project#18820) (camc314) - 7419dfb linter: Remove invalid debug assersion, add test (oxc-project#18819) (camc314) - 0ca6269 ci: Fix the repo path normalization logic for tests on Windows. (oxc-project#18815) (connorshea) - c7b0a65 linter: Fix config option docs for `react/jsx-boolean-value` rule. (oxc-project#18811) (connorshea) - cce374e linter/prefer-const: Replace entire declaration over just the `let` kw (oxc-project#18814) (camc314) - 41f92d1 linter: Error when given config options for a lint rule that has no config options defined. (oxc-project#18809) (connorshea) - 0867a36 linter/consistent-index-object-style: False positive with mapped + generic types (oxc-project#18801) (camc314) - 1d34b42 linter: Fix 32 bit build (oxc-project#18783) (camc314) - 95df577 linter/plugins: Handle error from `destroyWorkspace` (oxc-project#18763) (overlookmotel) - b3261dc linter: Fix the curly rule config to enforce the shape of the config and emit correct docs (oxc-project#18743) (connorshea) - d981978 linter/plugins: Use non-blocking mode when calling `destroyWorkspace` (oxc-project#18762) (overlookmotel) - 3f43d4c linter: Accept bools as valid values for `fixable` (oxc-project#18772) (camc314) - 005910a linter/plugins: Support plugins outside of workspace (oxc-project#18755) (overlookmotel) - fd92711 vscode: Use `fsPath` for workspace mapping (oxc-project#18728) (Sysix) - 358b2c1 linter/consistent-generic-constructors: Check bounds when searching for `:` token (oxc-project#18745) (connorshea) - abd0c28 linter/capitalized-comments: Fix generated rule option docs (oxc-project#18748) (connorshea) - d90a9f6 linter: Add more tests for `prefer-const`'s fixer and fix its invalid behavior. (oxc-project#18747) (connorshea) - f82011b oxlint/lsp: Disable JS plugins support in LSP except in tests (oxc-project#18727) (overlookmotel) - 94505c8 linter/jest: Change `prefer-spy-on` autofix to suggestion (oxc-project#18152) (Ben Lowery) - 6ec1112 linter: Mark unused disable directive fix as suggestion (oxc-project#18703) (ddmoney420) - 49609ec linter/no-useless-constructor: Consider argument transformation as used (oxc-project#18706) (ddmoney420) - 40218de linter: Fix behavior of jsx-a11y/no-static-element-interactions rule. (oxc-project#17817) (connorshea) - db9751d linter/no-html-link-for-pages: Handle `target=_blank` correctly (oxc-project#18693) (camc314) - e440b78 linter/plugins: Pass all args to CFG event handlers when 2 rules use same handler (oxc-project#18683) (overlookmotel) - b393430 linter/curly: Fix multi-or-nest and consistent conflict (oxc-project#18660) (camc314) - 2e1fbc2 linter/plugins: Implement `context.parserPath` (oxc-project#18644) (overlookmotel) - 34951ed linter/plugins: `filename` option takes precedence over `parserOptions.lang` in `RuleTester` (oxc-project#18643) (overlookmotel) - 28df160 linter/plugins: Allow line number passed to `report` to be 0 (oxc-project#18642) (overlookmotel) - 14fabec vscode: Use built-in `getWorkspaceFolder` for detecting the right workspace of a given uri (oxc-project#18583) (Sysix) - 0ff4cea oxlint/cli: Report error when nested config could not be parsed (oxc-project#18504) (Sysix) ### ⚡ Performance - 9862224 linter/plugins: Reduce cost of workspaces (oxc-project#18758) (overlookmotel) - 6bc0bde linter: Remove string allocation (oxc-project#18725) (overlookmotel) - 3a6b41e linter/plugins: Replace ESLint Traverser with lightweight traverseNode (oxc-project#18529) (Rintaro Itokawa) ### 📚 Documentation - dd1a653 linter: Fix doc comment for ignoreStateless config option. (oxc-project#18808) (connorshea) - 5909085 linter/plugins: Add doc comments (oxc-project#18753) (overlookmotel) - ffe53a3 linter: Update lint function docs (oxc-project#18766) (camc314) - b82faec linter: Glob for any css module for no-unassigned-import (oxc-project#18713) (Ben Stickley) - cd86347 linter: Mark some react rules as unsupported, misc docs improvements (oxc-project#18617) (connorshea) - 23401d8 linter: Update fixes and suggestions status for tsgolint rules (oxc-project#18619) (camchenry) # Oxfmt ### 🚀 Features - ee30de9 oxfmt: Add config migration from biome (oxc-project#18638) (Luca Fischer) ### 🐛 Bug Fixes - e754b18 oxfmt/migrate-prettier: Set `experimentalSortPackagejson: false` by default (oxc-project#18831) (leaysgur) - a83c266 formatter: Keep decorated function pattern hugged when params break (oxc-project#18830) (Dunqing) - 0c8efe1 formatter: Quote numeric property keys with `quoteProps: consistent` (oxc-project#18803) (Dunqing) - 9c14c3e formatter: Ignore comment does not work for sequence expressions in arrow function body (oxc-project#18799) (Dunqing) - 54984ae formatter: Handle leading comments in arrow function sequence expressions (oxc-project#18798) (Dunqing) - 61bb2b5 formatter: Correctly expand JSX returned from arrow callbacks in JSX expression containers (oxc-project#18797) (Dunqing) - 34ee194 formatter: Tailwindcss sorting doesn't work for object property keys (oxc-project#18773) (Dunqing) - 48f1e35 oxfmt: Prevent ThreadsafeFunction crash on Node.js exit (oxc-project#18723) (Boshen) - e96adca formatter: Follow Prettier's approach for for-in initializer parentheses (oxc-project#18695) (Dunqing) - 1215a6f formatter: Preserve quote for class property key in TypeScript (oxc-project#18692) (Dunqing) - 059acae formatter: Incorrect comments placement for union type in `TSTypeIntersection` (oxc-project#18690) (Dunqing) - c3d05c1 formatter,oxfmt: Handle CRLF with embedded formatting (oxc-project#18686) (leaysgur) - 7cb3085 formatter: Preserve comments on rest elements (oxc-project#18649) (Dunqing) - 21984dd formatter: Preserve type cast comments on rest parameters (oxc-project#18648) (Dunqing) - 2f70254 formatter: Don't add extra semicolon on suppressed class properties (oxc-project#18631) (Dunqing) - ac1ff4e oxfmt: Use `empty_line` IR for empty xxx-in-js line (oxc-project#18623) (leaysgur) - 8f76900 oxfmt: Dedent xxx-in-js templates before calling prettier (oxc-project#18622) (leaysgur) - 6b726ef oxfmt: Trim whitespace only xxx-in-js templates (oxc-project#18621) (leaysgur) Co-authored-by: camc314 <18101008+camc314@users.noreply.github.com>
perf(linter/plugins): use SoA pattern with 2 arrays for CFG steps (ox… …c-project#18528) Part 2 of oxc-project#17232, continuing after oxc-project#18527 - CFG walker optimization. - Replace single `steps` array with 2 SoA (Struct of Arrays): - `stepTypeIds`: encoded type IDs - `stepData`: node or args array - Encode step types using type ID offset: - Enter visits: typeId directly (0-164 for node types) - CFG events: typeId directly (165-171 for event types) - Exit visits: typeId + 256 (offset to distinguish from enter) - Pre-compute type IDs during step preparation phase Benefits: - Reduces object creation overhead (no step objects needed). - Halves the number of `NODE_TYPE_IDS_MAP` hash map lookups to convert node types (strings) to type IDs. --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: overlookmotel <theoverlookmotel@gmail.com>
perf(linter/plugins): use SoA pattern with 2 arrays for CFG steps (ox… …c-project#18528) Part 2 of oxc-project#17232, continuing after oxc-project#18527 - CFG walker optimization. - Replace single `steps` array with 2 SoA (Struct of Arrays): - `stepTypeIds`: encoded type IDs - `stepData`: node or args array - Encode step types using type ID offset: - Enter visits: typeId directly (0-164 for node types) - CFG events: typeId directly (165-171 for event types) - Exit visits: typeId + 256 (offset to distinguish from enter) - Pre-compute type IDs during step preparation phase Benefits: - Reduces object creation overhead (no step objects needed). - Halves the number of `NODE_TYPE_IDS_MAP` hash map lookups to convert node types (strings) to type IDs. --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: overlookmotel <theoverlookmotel@gmail.com>
release(crates): oxc v0.111.0 (oxc-project#18572) ### 💥 BREAKING CHANGES - 22dec6a semantic: [**BREAKING**] Remove `Scoping::scope_build_child_ids` and all related APIs (oxc-project#18362) (Dunqing) - 30a4899 oxc: [**BREAKING**] Remove `CompilerInterface::semantic_child_scope_ids` (oxc-project#18361) (Dunqing) - 777fc40 ast: [**BREAKING**] Add `Ident` type (oxc-project#18354) (Boshen) - af0ca46 span: [**BREAKING**] Use `ModuleKind::CommonJS` for `SourceType::cjs()` (oxc-project#18276) (sapphi-red) ### 🚀 Features - 0a02026 semantic: Add TS1499 code to diagnostic (oxc-project#18557) (camc314) - 8b4618f parser: Add TS1500 code to diagnostic (oxc-project#18547) (camc314) - 866b6b3 parser: Add TS1048 code to diagnostic (oxc-project#18546) (camc314) - 1117c44 parser: Add TS1054 code to diagnostic (oxc-project#18541) (camc314) - e4fcdde semantic: Add TS1053 code to diagnostic (oxc-project#18539) (camc314) - bcbf396 semantic: Add TS1052 code to diagnostic (oxc-project#18538) (camc314) - 8155edf semantic: Add TS1049 code to diagnostic (oxc-project#18535) (camc314) - 51d3b3f parser: Add TS1502 code to diagnostic (oxc-project#18534) (camc314) - 00854e8 semantic: Add TS2337 error code to super call diagnostic (oxc-project#18531) (camc314) - 993fd2b parser: Parse unambiguous await with better error messages (oxc-project#18480) (Boshen) - 8db0e78 linter/plugins: Handle BOMs (oxc-project#18376) (overlookmotel) - 6ac09e2 linter/plugins: Support source text not being at start of buffer (oxc-project#18375) (overlookmotel) - 2ef5647 ast: Add escape_raw parameter to template_element builders (oxc-project#18121) (Boshen) ### 🐛 Bug Fixes - 74d0998 semantic: Update error msg for multiple `default` cases in switch stmt (oxc-project#18526) (camc314) - c205b0d ast: Remove `ThisExpression` from `TSModuleReference` (oxc-project#18489) (Boshen) - aed3669 parser: Parse HTML-like comments in unambiguous mode (oxc-project#18442) (Boshen) - c4132fb parser: Validate accessor parameters in interface method signatures (oxc-project#18391) (Boshen) - b0cd74d semantic: Allow `var` and `function` with same name in static blocks (oxc-project#18358) (Boshen) - 6037995 semantic: Allow `new.target` in class field initializers (oxc-project#18349) (Boshen) - 9a15c6a semantic: Do not rely on spans for node comparison in `Function::bind` (oxc-project#18296) (overlookmotel) ### ⚡ Performance - 6b600c4 semantic: Skip parent lookup for function declarations in `Function::bind` (oxc-project#18293) (overlookmotel) - c27ad2d semantic: Move check for function declaration out of `is_function_part_of_if_statement` (oxc-project#18292) (overlookmotel) - 63eb89e semantic: Skip checking redeclarations for function expressions (oxc-project#18291) (overlookmotel) - 7c12743 semantic: Skip checking unresolved exports in CommonJS files (oxc-project#18250) (overlookmotel) - 2349031 allocator: Increase initial chunk size from 512B to 16KB (oxc-project#18234) (Boshen) ### 📚 Documentation - 8ccd853 npm: Update package homepage URLs and add keywords (oxc-project#18509) (Boshen) - 9b3165f napi/parser: Clarify when to use `parseAsync` vs `parseSync` (oxc-project#18486) (Boshen) - 1b59f63 napi/parser: Correct typo in README (oxc-project#18251) (overlookmotel) - 00ff75f mangler: Fix `top_level` option in example (oxc-project#18233) (overlookmotel) - 2ddc073 semantic: Fix typo in comment (oxc-project#18238) (overlookmotel) Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
perf(linter/plugins): use SoA pattern with 2 arrays for CFG steps (ox… …c-project#18528) Part 2 of oxc-project#17232, continuing after oxc-project#18527 - CFG walker optimization. - Replace single `steps` array with 2 SoA (Struct of Arrays): - `stepTypeIds`: encoded type IDs - `stepData`: node or args array - Encode step types using type ID offset: - Enter visits: typeId directly (0-164 for node types) - CFG events: typeId directly (165-171 for event types) - Exit visits: typeId + 256 (offset to distinguish from enter) - Pre-compute type IDs during step preparation phase Benefits: - Reduces object creation overhead (no step objects needed). - Halves the number of `NODE_TYPE_IDS_MAP` hash map lookups to convert node types (strings) to type IDs. --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: overlookmotel <theoverlookmotel@gmail.com>
release(apps): oxlint v1.41.0 && oxfmt v0.26.0 (oxc-project#18264) # Oxlint ### ⚡ Performance - 1a247f1 linter/no-redeclare: Avoid repeated PHF hashmap lookups (oxc-project#18248) (overlookmotel) ### 📚 Documentation - 8a294d5 oxfmt, oxlint: Update logo (oxc-project#18242) (Dunqing) # Oxfmt ### 🐛 Bug Fixes - 864b4ab oxfmt: Use `format_config` for `external_options` override (oxc-project#18252) (leaysgur) - 90ce4b7 oxfmt: Restore `customGroups` handling lost (oxc-project#18243) (leaysgur) ### 📚 Documentation - 8a294d5 oxfmt, oxlint: Update logo (oxc-project#18242) (Dunqing) Co-authored-by: overlookmotel <557937+overlookmotel@users.noreply.github.com>
release(apps): oxlint v1.40.0 && oxfmt v0.25.0 (oxc-project#18223)
PreviousNext