Table of Contents
- Oxlint v1.31.0
- Oxfmt v0.16.0
Oxlint v1.31.0
🚀 Features
- 1651806 linter/plugins: Rule options (#16215) (Arsh)
- 5da1a63 linter/plugins: Introduce
RuleTester(#16206) (overlookmotel) - 41129ab linter/plugins: Implement
languageOptions.parser(#16292) (overlookmotel) - 4b24825 linter: Implement no-restricted-types rule (#16276) (camc314)
- 7150209 linter/plugins: Implement
SourceCode#getNodeByRangeIndex(#16256) (overlookmotel) - 3226864 linter/plugins: Implement options merging (#16217) (overlookmotel)
- cbb108a linter/plugins: Support default options (#16170) (overlookmotel)
- 04a3a66 linter/plugins: Implement
SourceCode#getTokenOrCommentAfter()(#16045) (Arsh) - 68b63d9 linter/plugins: Implement
SourceCode#getTokenOrCommentBefore()(#16044) (Arsh) - 04d9454 linter/plugins: Implement
SourceCode#getTokenByRangeStart()(#16043) (Arsh) - 7b8d578 linter/plugins: Implement
SourceCode#getTokensBetween()(#16034) (Arsh) - 79c242f linter/plugins: Implement
SourceCode#getLastTokensBetween()(#16033) (Arsh) - 1772078 linter/plugins: Implement
SourceCode#getFirstTokenBetween()(#16032) (Arsh) - 21bb86d linter/plugins: Implement
SourceCode#getFirstTokensBetween()(#16019) (Arsh) - 78f74b1 linter/plugins: Implement
SourceCode#getLastTokenBetween()(#16008) (Arsh) - df0b948 linter/plugins: Implement
SourceCode#getLastToken()(#16003) (Arsh)
🐛 Bug Fixes
- decf2ad linter: Fix rule option docs for no-extra-boolean-cast, prefer-number-properties, and prefer-structured-clone (#16285) (connorshea)
- cf249f5 linter/plugins: Fix message interpolation (#16300) (overlookmotel)
- 9149a26 linter/plugins, napi/parser: Deep freeze visitor keys (#16293) (overlookmotel)
- 71271ee linter: Fix
typescript/no-empty-interfaceconfig option casing. (#16282) (connorshea) - 653fa6c oxlint/oxfmt/lsp: Tell client the real tool name & version (#16212) (Sysix)
- 385e13e linter: Support both prefer-inline and preferInline for import/no-duplicates (#16275) (copilot-swe-agent)
- efc08d3 linter: Fix config docs for no-return-assign and unicode-bom rules. (#16260) (connorshea)
- dc96d3f linter: Correct docs to use string option for import/first rule. (#16264) (connorshea)
- 15ce491 linter: Correct the default config options for the switch-exhaustiveness-check rule. (#16268) (connorshea)
- 13f985c linter: Fix casing for unicorn/explicit-length-check config option. (#16269) (connorshea)
- 0df1901 linter/plugins: Reset state after error during AST visitation (#16246) (overlookmotel)
- 42e9dcc linter: Fix docs for
consistent-type-specifier-styleandconsistent-type-definitionsrules. (#16253) (connorshea) - 505ceb1 linter: Fix the radix rule docs to correctly render as a string-only config option (#16248) (connorshea)
- 135cee6 oxlint/lsp: Run diagnostics after delayed worker initialization (#16244) (Sysix)
- 78aa294 linter/plugins: Deep freeze options (#16218) (overlookmotel)
- 123bffe linter/plugins: Handle zero-token files in
SourceCode#getLastToken()(#16184) (Arsh) - 55fcfba linter: Add considerDefaultExhaustiveForUnions option to switch-exhaustiveness-check (#16204) (camc314)
- 9cc20a1 minifier: Avoid merging side effectful expressions to next assignment statement if the side effect may change the left hand side reference (#16165) (sapphi-red)
- 75249e0 linter/plugins: Handle non-UTF8 file paths (#16157) (overlookmotel)
- 86fa667 linter/plugins: Improve type def for
RuleMetadefaultOptionsproperty (#16159) (overlookmotel) - d2b7dcb tsgolint: Improve lsp diagnostic when linting fails (#16115) (camc314)
- 8810bd5 linter: Prevent conflicting fixes between prefer_number_properties and prefer_numeric_literals (#16113) (camc314)
- 91eb3f2 ast/estree: Convert
TSImportTypeargumentfield toLiteral(#16109) (overlookmotel) - 2da2fc1 linter: Fix prefer-string-raw fixer producing invalid JS for non-ASCII strings (#16102) (camc314)
- f5cb601 linter/plugins: Perform length checks before continuing loops (#16025) (Arsh)
- e1c21ca linter/jsx-key: Implement missing options (#15731) (camc314)
⚡ Performance
- 02bdf90 linter/plugins, napi/parser: Reuse arrays in visitor keys (#16294) (overlookmotel)
- 714a91a linter/no-restricted-types: Skip running if config is empty (#16278) (camc314)
- d3a34f8 linter/plugins: Optimize
getTokens()and other methods (#16188) (Arsh) - c05db06 linter/plugins: Speed up
initTokensWithComments(#16117) (overlookmotel) - 4846886 linter/plugins: Optimize merging of
tokensandcomments(#16071) (Arsh) - e232d35 linter/plugins: Recycle objects in token methods (#16068) (overlookmotel)
📚 Documentation
- 55cf157 linter/plugins: Clarify comments (#16335) (overlookmotel)
- 7613957 linter: Add config docs for
typescript/ban-ts-commentrule (#16287) (connorshea) - e928732 linter/plugins: Fix JSDoc comment (#16295) (overlookmotel)
- d4a1581 linter: Add a link to MDN for the no-proto rule. (#16213) (connorshea)
- be36e36 linter/plugins: Fix JSDoc comment for
loadPluginImpl(#16211) (overlookmotel) - 6d6e9c9 linter: Improve the docs for oxc/no-async-await rule. (#16181) (connorshea)
- 0e1d38a linter/plugins: Clarify JSDoc comment for
getTokensBetween(#16070) (overlookmotel) - 3ee22b2 linter/plugins: Fix JSDoc comments for tokens methods (#16063) (overlookmotel)
- f257b5c linter/plugins: Clarify JSDoc comments for tokens methods (#16062) (overlookmotel)
Oxfmt v0.16.0
🚀 Features
- 116e0d1 website: Auto generate oxfmt docs (#15985) (Boshen)
- 862bdf7 oxfmt: Detect unsupported experimental options (take2) (#16088) (leaysgur)
🐛 Bug Fixes
- b169e52 formatter: Correct printing of AsExpression and SatisfiesExpression (#16325) (leaysgur)
- a07eec1 formatter: Incorrect indentation for class extends and implements (#16334) (Dunqing)
- 5ad5435 formatter: Fix line comment after
:inside ternary JSX (#16315) (leaysgur) - 75ac90c formatter: Comments in call arguments should be printed as-is (#16327) (Dunqing)
- fd77568 formatter: Don't wrap parenthesis for yield expression if there is no leading comment (#16326) (Dunqing)
- 8ccfb06 formatter: Should indent class extends and interface heritage when it is a member expression without type arguments (#16323) (Dunqing)
- 0faa978 oxfmt: JsFormatEmbeddedCb types (#16324) (Brooooooklyn)
- 2b8f982 formatter: JSX text wrapping incorrect (#16318) (Dunqing)
- f3ffebe formatter: Should indent variable declarator if there is a trailing comment (#16243) (Dunqing)
- 31d3186 formatter: Incorrect handling of directives with comments (#16235) (Dunqing)
- ac8fcaf formatter: Add parens for new: private field expr (#16312) (leaysgur)
- 653fa6c oxlint/oxfmt/lsp: Tell client the real tool name & version (#16212) (Sysix)
- 380a0af formatter: Incorrect printing of class binding trailing comments (#16234) (Dunqing)
- 0ca8154 formatter: Incorrect printing of trailing comments of callee when the call arguments are empty (#16232) (Dunqing)
- ac3a92e formatter: Print comment in ternary jsx (#16224) (leaysgur)
- e3a7388 formatter: Fix parens for static member chain (#16229) (leaysgur)
- 55334c3 formatter: Incorrect printing of dangling comments in the if statement (#16228) (Dunqing)
- 9096a63 formatter: Correct printing of trailing comments after the semicolon for class properties (#16225) (Dunqing)
- 75fd568 formatter: Inconsistent union type output between two runs (#16222) (Dunqing)
- cd70484 formatter: Should not add a hard space before function body (#16221) (Dunqing)
- 9097167 formatter: Incorrect printing of union types with comments (#16205) (Dunqing)
- 79b78b3 formatter: Template literal element should not be indented (#16189) (Dunqing)
- 48d6ed2 formatter: Nested assignment pattern should not expand outer object pattern (#16160) (Dunqing)
- 8f4137d formatter: Output is incorrect when using comments inside JSX which is the right hand-side of
LogicalExpression(#16156) (Dunqing) - 85c3a10 formatter/sort_imports: Handle internal prefixes correctly (#16128) (leaysgur)
- 38b7bc4 oxfmt: Make no-napi build work (#16134) (leaysgur)
- 889d2e7 formatter: Handle poor layout for grouped call arguments (#16093) (Dunqing)
- 14b0a6a oxfmt: Fix JS-ish file detection (#16092) (leaysgur)
- 9706a1a oxfmt: Ignore unsupported options (#16085) (leaysgur)