mirror of
https://github.com/oxc-project/oxc.git
synced 2026-11-04 10:29:58 +00:00
# Oxlint ### 💥 BREAKING CHANGES -e3c1b11ast: [**BREAKING**] Preserve lone surrogates in static property names (#27095) (Dunqing) -a0a987cast: [**BREAKING**] Preserve lone surrogates in static member names (#26677) (Dunqing) ### 🚀 Features -770ada4linter: Mark vue 3 rules as recommended (#27717) (Cam McHenry) -ba38c1dlinter: Mark react/react-hooks rules as recommended (#27701) (Cam McHenry) -d85a3balinter: Mark promise rules as recommended (#27693) (Cam McHenry) -e71c88alinter: Mark node rule as recommended (#27692) (Cam McHenry) -7213f61linter: Mark nextjs rules as recommended (#27691) (Cam McHenry) -d7c6b26linter: Mark jsx-a11y rules as recommended (#27690) (Cam McHenry) -199dfdclinter: Mark jsdoc rules as recommended (#27689) (Cam McHenry) -780bff3linter: Mark jest/vitest rules as recommended (#27672) (Cam McHenry) -6ae6859linter: Mark import rules as recommended (#27671) (Cam McHenry) -b7a1df3linter: Mark unicorn rules as recommended (#27670) (Cam McHenry) -c44a355linter: Mark typescript rules as recommended from upstream (#27634) (Cam McHenry) -6b49dbalinter: Mark eslint rules as recommended from upstream (#27632) (Cam McHenry) ### 🐛 Bug Fixes -7c47246linter: Check module specifiers and string values that contain lone surrogates (#26717) (Dunqing) -782ab6elinter: Search string values without UTF-8 conversion (#26716) (Dunqing) -326904flinter/unicorn/no-useless-undefined: Allow `undefined` in `React.useRef` (#25027) (Chris Dokurno) -f9cf165linter/unicorn/prefer-spread: Ignore super method calls (#27868) (camc314) -00484e1linter/eslint/prefer-const: Report destructuring assignments inside blocks (#27856) (camc314) -9c35461linter/eslint/sort-vars: Report every out-of-order declaration (#27767) (camc314) -01e1c5elinter/unicorn/prefer-string-replace-all: Resolve regex variables (#27769) (camc314) -7f474d5linter/eslint/no-loop-func: Detect writes after the loop (#27754) (camc314) -4b7fea6linter/eslint/block-scoped-var: Ignore declarations without writes (#27760) (camc314) -2947917linter/eslint/no-lonely-if: Check final else blocks in else-if chains (#27759) (camc314) -fc039b5linter/eslint/sort-imports: Check imports after other statements (#27749) (camc314) -1acba97linter/unicorn/prefer-at: Report slice index reads once (#27762) (camc314) -6190e26linter/eslint/prefer-arrow-callback: Ignore functions used as conditional tests (#27533) (Anzal Husain Abidi) -b3cdaaflinter/eslint/sort-keys: Check computed identifier names (#27748) (camc314) -170e608linter/unicorn/prefer-native-coercion-functions: Check object methods and function properties (#27750) (camc314) -9261df7linter/unicorn/prefer-string-raw: Check object property values (#27758) (camc314) -ddea86blinter/eslint/prefer-template: Report separate nested concatenations (#27764) (camc314) -2c67197linter/eslint/no-unused-vars: Count conditional calls in sequences as uses (#27755) (camc314) -7f22fa0linter/unicorn/prefer-regexp-test: Check logical operands in boolean contexts (#27761) (camc314) -3c44398linter/eslint/class-methods-use-this: Count this in parameter defaults (#27756) (camc314) -d85923flinter/eslint/no-param-reassign: Report rest parameter writes (#27765) (camc314) -8ea47bblinter/unicorn/prefer-type-error: Handle parenthesized type checks (#27766) (camc314) -e96856clinter/unicorn/catch-error-name: Check unused underscore-prefixed names (#27751) (camc314) -d8ca399linter/unicorn/no-array-callback-reference: Ignore callback factory calls (#27763) (camc314) -1267ab8linter/eslint/max-params: Count rest parameters (#27757) (camc314) -9ff25c3linter/eslint/no-useless-assignment: Report dead stores to function parameters (#27735) (camc314) -ee5e730linter/eslint/no-setter-return: Check setters in property descriptors (#27731) (camc314) -edbb5edlinter/eslint/id-length: Check destructuring assignment targets (#27724) (Yunus Ozen) -0e40acblinter/eslint/no-magic-numbers: Restrict unary exemptions to numeric signs (#27723) (Yunus Ozen) -ae7e44blinter/eslint/no-div-regex: Report quantified leading equals (#27722) (Yunus Ozen) -eb461f8linter/unicorn/consistent-function-scoping: Count self-referencing variables as captures (#27726) (camc314) -5c8e731linter/unicorn/catch-error-name: Avoid fix symbol name collisions (#27702) (camc314) -9a424c2oxlint,oxfmt: Correct Node.js TypeScript support range (#27699) (camc314) -5dc0152linter/eslint/no-var: Avoid fixes for redeclared bindings (#27697) (camc314) ### ⚡ Performance -4944cbalinter/react/jsx-key: Avoid redundant key clones (#27915) (camc314) ### 📚 Documentation -0aa41aclinter: Fix invalid code example in rule docs (#27645) (leaysgur) # Oxfmt ### 🐛 Bug Fixes -e236de0formatter_tests: Skip conformance spec calls with non-literal options (#27957) (leaysgur) -782ab6elinter: Search string values without UTF-8 conversion (#26716) (Dunqing) -a5d8184jsdoc: Parse code spans after quotes in descriptions (#27955) (leaysgur) -2645d2cformatter_markdown: Treat link destinations and footnote references as opaque to code span fences (#27948) (leaysgur) -4d8195cformatter_yaml: Keep a root plain scalar starting with a document marker verbatim (#27947) (leaysgur) -529b057formatter_core: Keep front matter verbatim when body starts with indented delimiter (#27946) (leaysgur) -c22a9b2formatter: Treat static block with only empty statements as empty (#27945) (leaysgur) -d3ff3f6formatter/jsdoc: Write descriptions as written to not close the comment (#27823) (leaysgur) -c4c1727formatter/sort_imports: Keep comments after the last import (#27822) (leaysgur) -a64677eformatter: Print JSDoc embedded snippets with LF (#27821) (leaysgur) -2c1cc20formatter: Keep comment only Vue bindings as-is (#27820) (leaysgur) -1bf236dformatter/sort_imports: Do not use comments as import source (#27819) (leaysgur) -52ee29dformatter_yaml: Never start col-0 line with document marker or BOM (#27818) (leaysgur) -81c75e7formatter/css: Keep glued css-in-js statement placeholders glued (#27814) (leaysgur) -a1ef7f4formatter: Keep typecast parens in same-operator binary and arrow chain (#27812) (leaysgur) -de110ceformatter: Keep more parens around `TSInstantiationExpression` (#27811) (leaysgur) -8b02e90formatter_json: Reject invalid JSON instead of dropping them (#27785) (leaysgur) -6fe4c1bformatter: Treat lone CR in JSX text and argument blank lines (#27780) (leaysgur) -5605362oxfmt: Validate editorconfig as like oxfmtrc (#27778) (leaysgur) -5b2acb0formatter_core: Report error position releative to CRLF source (#27777) (leaysgur) -c78e80eformatter_core: Report parse error positions relative to the BOM-headed source (#27776) (leaysgur) -3a980c9formatter_toml: Handle BOM like other languages (#27775) (leaysgur) -97c9fc4oxfmt: Handle BOM in config JSON (#27774) (leaysgur) -28eb4a7oxfmt: Print trailing newline for `--list-different` (#27773) (leaysgur) -d2bea21formatter: Glue comments to an opener in empty for-head slots and array holes (#27737) (leaysgur) -6a95ec1formatter: Keep comment position on holey array (#27730) (leaysgur) -54769daformatter: Break after dangling line comment in holey array (#27729) (leaysgur) -99077efformatter_json: Reject unary expressions other than signed numbers (#27728) (leaysgur) -22cd4cdformatter_json: Handle holey array and comments (#27727) (leaysgur) -644ca1cformatter: Do not indent logical chains whose right sides all inline (#27667) (leaysgur) -a07a0fbformatter: Wrap comment-only JSX expression container in a group (#27666) (leaysgur) ### ⚡ Performance -e220293formatter: Check only the operator suppression mark in `is_quiet` (#27952) (leaysgur) -e5fdc9cformatter_core: Write into one element stack through a concrete `Formatter` (#27559) (leaysgur) -a342f7eformatter: Skip comment handling for nodes with no comment near them (#27557) (leaysgur) -d8ce750formatter: Write string literals with swapped quotes into the arena (#27558) (Yuji Sugiura) -1c393c0formatter_core: Skip scanning texts with nothing to rewrite (#27561) (leaysgur) -1d3ef10formatter_core: Keep the embedded IR when nothing in it is rewritten (#27673) (leaysgur) ### 📚 Documentation -1325225oxfmt: Update useless comment prefix (#27956) (leaysgur) -d0dd140formatter: Note lossy cooked round-trip in template embeds (#27944) (leaysgur) -8a3a6c8oxfmt: Update stale notes on the JSDoc string-out channel and fixture origins (#27824) (leaysgur)