Releases: oxc-project/oxc
Releases · oxc-project/oxc
oxc crates_v0.99.0
Immutable
release. Only release title and notes can be modified.
💥 BREAKING CHANGES
🚀 Features
- 0c1f82b linter/plugins: Add
tokensproperty toProgram(#16020) (overlookmotel) - 6cff132 span: Add
Span::merge_withinmethod (#15869) (sapphi-red) - 102365d allocator/vec: Add
Vec::into_bump_slicemethod (#15770) (Dunqing)
🐛 Bug Fixes
- e2ca770 codegen: Add support for printing type arguments in new expressions (#15963) (Ives van Hoorne)
- 2bd3cb6 apps, editors, napi: Fix
oxlint-disablecomments (#16014) (overlookmotel) - 622cb5e parser: Preserve legal comments with @preserve/@license when preceded by other annotations (#15929) (copilot-swe-agent)
- 7c46a9e transformer/tagged-template-transform: Handle
\nescape sequences (#15830) (Dunqing) - f386efc minifier: Avoid generating invalid spans (#15778) (sapphi-red)
- d4ff004 parser: Forbid invalid modifiers on
moduleandglobal(#15723) (overlookmotel) - 2191ae9 semantic: Allow reserved keywords in typescript ambient contexts (#15495) (sapphi-red)
- 7d1ebad isolated-declarations: Incorrect nested namespace output in isolated declarations (#15800) (copilot-swe-agent)
⚡ Performance
📚 Documentation
oxlint v1.30.0 & oxfmt v0.15.0
Immutable
release. Only release title and notes can be modified.
Table of Contents
Oxlint v1.30.0
💥 BREAKING CHANGES
🚀 Features
- 72660f7 linter: Support auto generate config document for tuple lint option (#15904) (Duc Nghiem Xuan)
- 0c1f82b linter/plugins: Add
tokensproperty toProgram(#16020) (overlookmotel) - 9e61beb linter/plugins: Implement
SourceCode#getFirstToken()(#16002) (Arsh) - 9a548dd linter/plugins: Implement
SourceCode#getLastTokens()(#16000) (Arsh) - 0b6cb11 linter/plugins: Implement
SourceCode#getFirstTokens()(#15976) (Arsh) - 166781e linter/plugins: Implement
SourceCode#getTokenAfter()(#15973) (Arsh) - 6ae232b linter: Expose type errors via tsgolint (#15917) (camc314)
- 2bfdd26 linter/plugins: Implement
SourceCode#getTokensAfter()(#15971) (Arsh) - 45fffc1 linter/plugins: Implement
SourceCode#getTokenBefore()(#15956) (Arsh) - 776e473 linter/plugins: Implement
SourceCode#getTokensBefore()(#15955) (Arsh) - 595867a oxlint: Generate markdownDescription fields for oxlint JSON schema. (#15959) (connorshea)
- 5569317 vscode: Add quick actions to status bar tooltip (#15962) (Sysix)
- 986cac1 linter/plugins: Token-related
SourceCodeAPIs (TS ESLint implementation) (#15861) (Arsh) - a21f9e4 linter: Implement unicorn/prefer-bigint-literals rule (#15923) (Michiel Vrins)
- 4b9d8d2 linter/type-aware: Include range with tsconfig diagnostics (#15916) (camc314)
- 220d01e editor: Improve the status bar item for the VS Code extension by adding a tooltip. (#15819) (connorshea)
🐛 Bug Fixes
- 2bd3cb6 apps, editors, napi: Fix
oxlint-disablecomments (#16014) (overlookmotel) - 81f5360 linter/prefer-number-properties: Get fixer to replace entire call expr (#15979) (camc314)
- e4ba07f language_server: Always write to memory file system (#15975) (Sysix)
- a8a2032 linter: Support missing
rangefor internal diagnostics (#15964) (camc314) - 619a226 oxlint/lsp: Don't register
textDocument/formattingcapability (#15882) (Sysix) - 6ab1a20 linter: Fix no_useless_spread producing invalid syntax when removing empty object spreads (#15905) (camc314)
- be4b6df linter: Unicorn/prefer-string-replace-all incorrectly escapes backslashes (#15901) (camc314)
- 9fa9ef2 linter: Gracefully fail when using import plugin, large file counf and JS plugins (#15864) (camc314)
- c027398 linter/plugins: Correct bindings package names glob in TSDown config (#15871) (overlookmotel)
- b622ef8 linter: Fix
oxc/bad_array_method_on_argumentsrule behavior. (#15854) (connorshea) - aa06c3f linter: Recognize NewExpression as value context in no-unused-private-class-members (#15843) (camc314)
- e89c5ba typescript/prefer-namespace-keyword: Skip nested
TSModuleDeclarations (#15806) (overlookmotel) - 646d020 linter/exhaustive-dependencies: Prevent is_callee_of_call_expr flag from leaking into nested expressions (#15832) (camc314)
- 46bd6bd linter/plugins: Pin
@typescript-eslint/scope-managerdependency (#15807) (overlookmotel) - fba31fa linter: Patch
@typescript-eslint/scope manager(#15214) (Arsh) - 50307c1 linter/jest: Ignore
expectidentifier in argument position (#15785) (camc314)
⚡ Performance
- 024b48a linter/plugins: Lazy-load tokens parsing code (#16011) (overlookmotel)
- 15365c9 linter/plugins: Reduce var assignments (#15953) (overlookmotel)
- 84d1f4f linter/plugins: Downgrade some checks to debug-only (#15922) (overlookmotel)
- a49f704 linter/typescript: Avoid searching source text unless required (#15805) (overlookmotel)
📚 Documentation
- ceffa5a linter: Add config option docs for various rules. (#16024) (connorshea)
- 9a0ed13 linter: Fix config option docs for eslint/operator-assignment rule. (#16030) (connorshea)
- 0b18005 linter: Add config docs generation for rules with Regex arguments (#15978) (connorshea)
- 48d18e0 linter: Improve diagnostic message for promise/catch-or-return rule (#15980) (connorshea)
- 6c72e84 linter: Use backticks for code elements across more rule diagnostics (#15958) (connorshea)
- a63dad7 linter/plugins: Add comment (#15952) (overlookmotel)
- 81ea642 vscode: Use markdownDescription for better formatting in VSCode Settings (#15889) (connorshea)
- db6a110 linter/plugins: Fix JSDoc comment (#15884) (overlookmotel)
- 1487271 linter: Add config option docs for
jsdoc/require-paramandjsdoc/require-returnsrules (#15857) (connorshea) - fbf0fd4 linter/plugins: Add JSDoc comments to
PluginandRuletypes (#15815) (overlookmotel) - ac5e4b5 linter/plugins: Add JSDoc comments and improve comments (#15814) (overlookmotel)
- 9b7b083 linter: Fix error in
curly"all"example (#15801) (camc314) - 65a3520 linter: Improve diagnostic for consistent-type-definitions rule. (#15752) (connorshea)
🛡️ Security
Oxfmt v0.15.0
💥 BREAKING CHANGES
- a937890 formatter: [BREAKING] Default to
lineWidth: 100(#15933) (leaysgur) - 03d5f5a formatter/sort-imports: [BREAKING] Change default order to
naturalwithnatordcrate (#15828) (leaysgur) - cbb27fd ast: [BREAKING] Add
TSGlobalDeclarationtype (#15712) (overlookmotel)
🚀 Features
- 7818e22 formatter/sort-imports: Support
options.groups(#15831) (leaysgur) - f9a502c oxfmt:
oxfmt --lspsupport (#15765) (leaysgur)
🐛 Bug Fixes
- 4817486 formatter: Revert
FormatElement::BestFittingprinting logic (#16028) (Dunqing) - 5562dd6 formatter: Incorrect formatting method chain with trailing comments (#16027) (Dunqing)
- 6d14c8b formatter: Comments in export class decorators are printing incorrectly (#15897) (Dunqing)
- 683c764 formatter: Correct a few minor mismatched typescript tests (#15894) (Dunqing)
- c11cc07 formatter: Improve formatting for default type on type parameters (#15893) (Dunqing)
- 0bff596 formatter: Handle JSX expresssion dangling comment (#15890) (leaysgur)
- 16a9dc8 formatter: Inconsistent printing of class extends and interface extends (#15892) (Dunqing)
- 300b496 formatter: Inconsistent CallExpression and NewExpression around member chain and logical expression (#15858) (Dunqing)
⚡ Performance
oxc crates_v0.98.0
Immutable
release. Only release title and notes can be modified.
💥 BREAKING CHANGES
- ea51b0b napi: [BREAKING] Standardize function naming with sync suffixes (#15661) (Boshen)
- b2af6b5 ast: [BREAKING] Remove AstKind for Argument (#13902) (taearls)
🚀 Features
- 1b18457 transformer: Support tagged template expression with
</scripttransformation (#15664) (Dunqing) - 77efb76 parser: Improve error message for invalid switch clauses (#15728) (sapphi-red)
- 5691727 parser: Improve
import sourcefromerror message (#15727) (sapphi-red) - b7404bc parser: Improve error message for missing function body (#15726) (sapphi-red)
- 71c2fb0 parser: Improve error message when JSX is found while not enabled (#15725) (sapphi-red)
- 56e7e44 minifier: Disable removal of unnecessary
use strictdirectives for DCE (#15691) (sapphi-red) - 8a61cfd allocator, ast: Introduce
UnstableAddresstrait (#15700) (overlookmotel) - f5ce55a napi: Export all options using wildcard exports (Boshen)
- 68703b9 minifier: Rotate binary expressions to remove parentheses (#15473) (sapphi-red)
🐛 Bug Fixes
- c023ba6 semantic: Do not duplicate statements in temp
Vecwhen bindingTSModuleDeclarations (#15724) (overlookmotel) - d60ca81 parser: Reject
import something 'source'(#15746) (sapphi-red) - e0728fa ast: Exclude comment end position from
is_inside_commentcheck (#15753) (camc314) - 9f54a36 semantic: Error on
\00in strict mode (#15743) (sapphi-red) - 440a977 ast: Include rest properties when using
get_binding_identifiers(#15710) (camc314)
⚡ Performance
- 1f09d3c parser: Faster checking for invalid modifiers (#15717) (overlookmotel)
- d8d4e31 ast: Use loop instead of recursion in
TSModuleDeclarationBody::as_module_block_mut(#15713) (overlookmotel)
📚 Documentation
oxlint v1.29.0 & oxfmt v0.14.0
Immutable
release. Only release title and notes can be modified.
Table of Contents
Oxlint v1.29.0
🚀 Features
- bce6154 linter/prefer-includes: Add rule (#15774) (camc314)
- 5a66558 linter: Handle config docs for string/enum values and add config option docs for various rules. (#15759) (connorshea)
- c199e38 linter: Implement config for all tsgolint rules supporting options (#15659) (camchenry)
- 7598b3e linter: Allow configuring tsgolint rules (#15286) (camchenry)
- e77f2ce vscode: Support
oxlint --lsp(#15680) (Sysix) - e01c551 oxlint: Add
--lspflag to run the language server (#15611) (Sysix) - ac5c2ab lsp/fmt: Support ignore files & patterns (#15647) (Sysix)
- e50a9bf linter: Add unicorn/prefer-response-static-json rule (#15692) (Mikhail Baev)
- f5d9abb oxlint: Add enabled? column to --rules cli output (#15213) (Wren)
- 6b5205c linter/plugins: Implement deprecated
SourceCode#getJSDocCommentmethod (#15653) (overlookmotel) - 5eccff1 linter/plugins: Implement deprecated
SourceCodetokens methods (#15645) (overlookmotel) - 4c62ffa language_server: Add
run_serverhelper for CLI tools (#15609) (Sysix) - 0d52a5e linter/plugins: Implement
Context#parserOptionsgetter (#15632) (overlookmotel) - 287a538 linter/plugins: Implement
Context#get*deprecated methods (#15606) (overlookmotel) - 84de1ca oxlint,oxfmt: Allow comments and also commas for vscode-json-ls (#15612) (leaysgur)
- e763919 linter: Add test to enforce schema documentation for rules with configuration options (#15234) (Connor Shea)
- 6cd0b5f linter/no-callback-in-promise: Add support for
timeoutsErroption (#15507) (Li Wei)
🐛 Bug Fixes
- 1decd57 linter/no-empty-named-blocks: Only search within node for comma token (#15751) (camc314)
- 17c3d6d linter: Improve docs, diagnostic message, and implementation of typescript/consistent-indexed-object-style rule. (#15750) (connorshea)
- 78a6df2 linter/no-empty-named-blocks: Skip comments when searching for token (#15735) (camc314)
- 042befd linter/require-await: Skip comments when searching for token (#15734) (camc314)
- 7a78220 linter/no-async-await: Skip comments when searching for token (#15733) (camc314)
- 23b9ad1 linter/consistent-type-specifier-style: Skip comments when searching for token (#15732) (camc314)
- 440a977 ast: Include rest properties when using
get_binding_identifiers(#15710) (camc314) - 516d14e linter/no-namespace: Skip comments when searching for token (#15716) (camc314)
- b5aaace linter/prefer-namespace-keyword: Skip comments when searching for token (#15715) (camc314)
- 4eb9fa6 editor: Execute
oxc.path.serverin win32 with shell (#14203) (Sysix) - 9f991a4 linter: Reverse extends overrides priority (#14939) (Peter Wagenet)
- 7c4a916 linter: Restores
oxlint --rules -f=jsonfunctionality. (#15689) (Wren) - 24d00f4 linter/plugins: Add types for suggested fixes (#15636) (overlookmotel)
- 257360f linter/plugins: Fill in TS type def for
RuleMeta(#15629) (overlookmotel) - 81e179c linter: Allow file extensions without a dot in react/jsx-filename-extension rule (#15574) (Connor Shea)
- 7a0e931 linter: Update the unicorn/prefer-add-event-listener rule with new JavaScript APIs (#15581) (connorshea)
- bb5f8ca oxlint: Fix type annotation for big-endian (#15561) (Sysix)
⚡ Performance
- e2a0997 linter/plugins: Recycle empty visitor object in ESLint compat mode (#15693) (overlookmotel)
- 7528db4 language_server: Pass file content as a referenced
String(#15568) (Sysix) - 54061e9 linter/plugins: Avoid implicit boolean coercion in
initLines(#15641) (overlookmotel) - ccfd935 language_server: Avoid
MutexinServerLinter(#15516) (Sysix)
📚 Documentation
- 3ab750a linter: Clarify react-in-jsx-scope rule docs. (#15749) (connorshea)
- a5feebc linter:
oxlint-disablenoteslint-disable(#15672) (overlookmotel) - 3d15805 linter: Reformat doc comments (#15670) (overlookmotel)
- 16fcba6 linter: Remove "experimental" from description of stable features (#15669) (overlookmotel)
- e62fd98 linter: Correct comment on what
EnablePluginsdoes (#15668) (overlookmotel) - a25d31e linter: Fix grammar (#15666) (overlookmotel)
- f5f452f linter: Add missing
perfcategory (#15667) (overlookmotel) - 2c58952 linter: Add config docs for no-restricted-globals rule. (#15662) (connorshea)
- a210b12 linter/plugins: Improve JSDoc comment for
RuleOptionsSchema(#15642) (overlookmotel) - 3aabfac linter/plugins: Alter comments on
FILE_CONTEXTused in ESLint-compatContextshim (#15605) (overlookmotel) - fd58aea linter: Fix a typo in the docs for react/no-is-mounted. (#15575) (Connor Shea)
Oxfmt v0.14.0
🚀 Features
- 84de1ca oxlint,oxfmt: Allow comments and also commas for vscode-json-ls (#15612) (leaysgur)
- 99823ad oxfmt: Print nothing for default(write) mode (#15583) (leaysgur)
- 25a0163 formatter/sort_imports: Sort imports by
Array<Array<string>>groups (#15578) (leaysgur)
🐛 Bug Fixes
- bf20cf5 formatter:
CRLFissue in the member chain (#15764) (Dunqing) - 5d688a0 formatter: Measuring multiline text in
fits_textis incorrect (#15762) (Dunqing) - e306958 formatter: Regression case for test call (#15760) (Dunqing)
- c42d983 formatter: Re-fix all cases that fail after
AstNode::Argumentwas removed (#15676) (Dunqing)
⚡ Performance
- d99a83f oxfmt: Use simdutf8 based read_to_string (#15614) (leaysgur)
- 128e186 formatter/sort_imports: Precompute import metadata (#15580) (leaysgur)
- cd31cc1 formatter/sort_imports: Use
Vec::with_capacityfornext_elements(#15579) (leaysgur)
📚 Documentation
oxlint v1.27.0 && oxfmt v0.12.0
Oxlint v1.27.0
🚀 Features
- 222a8f0 linter/plugins: Implement
SourceCode#isSpaceBetween(#15498) (overlookmotel) - 2f9735d linter/plugins: Implement
context.languageOptions(#15486) (overlookmotel) - bc731ff linter/plugins: Stub out all
ContextAPIs (#15479) (overlookmotel) - 5822cb4 linter/plugins: Add
extendmethod toFILE_CONTEXT(#15477) (overlookmotel) - 7b1e6f3 apps: Add pure rust binaries and release to github (#15469) (Boshen)
- 2a89b43 linter: Introduce debug assertions after fixes to assert validity (#15389) (camc314)
- ad3c45a editor: Add
oxc.path.nodeoption (#15040) (Sysix)
🐛 Bug Fixes
- 6f3cd77 linter/no-var: Incorrect warning for blocks (#15504) (Hamir Mahal)
- 6957fb9 linter/plugins: Do not allow access to
Context#idincreateOnce(#15489) (overlookmotel) - 7409630 linter/plugins: Allow access to
cwdincreateOncein ESLint interop mode (#15488) (overlookmotel) - 732205e parser: Reject
using/await usingin a switchcase/defaultclause (#15225) (sapphi-red) - a17ca32 linter/plugins: Replace
Contextclass (#15448) (overlookmotel) - ecf2f7b language_server: Fail gracefully when tsgolint executable not found (#15436) (camc314)
- 3c8d3a7 lang-server: Improve logging in failure case for tsgolint (#15299) (camc314)
- ef71410 linter: Use jsx if source type is JS in fix debug assertion (#15434) (camc314)
- e32bbf6 linter/no-var: Handle TypeScript declare keyword in fixer (#15426) (camc314)
- 6565dbe linter/switch-case-braces: Skip comments when searching for
:token (#15425) (camc314) - 85bd19a linter/prefer-class-fields: Insert value after type annotation in fixer (#15423) (camc314)
- fde753e linter/plugins: Block access to
context.settingsincreateOnce(#15394) (overlookmotel) - ddd9f9f linter/forward-ref-uses-ref: Dont suggest removing wrapper in invalid positions (#15388) (camc314)
- dac2a9c linter/no-template-curly-in-string: Remove fixer (#15387) (camc314)
- 989b8e3 linter/no-var: Only fix to
constif the var has an initializer (#15385) (camc314) - cc403f5 linter/plugins: Return empty object for unimplemented parserServices (#15364) (magic-akari)
⚡ Performance
- 25d577e language_server: Start tools in parallel (#15500) (Sysix)
- 3c57291 linter/plugins: Optimize loops (#15449) (overlookmotel)
- 3166233 linter/plugins: Remove
Arcs (#15431) (overlookmotel) - 9de1322 linter/plugins: Lazily deserialize settings JSON (#15395) (overlookmotel)
- 3049ec2 linter/plugins: Optimize
deepFreezeSettings(#15392) (overlookmotel) - 444ebfd linter/plugins: Use single object for
parserServices(#15378) (overlookmotel)
📚 Documentation
- 97d2104 linter: Update comment in lint.rs about default value for tsconfig path (#15530) (Connor Shea)
- 2c6bd9e linter: Always refer as "ES2015" instead of "ES6" (#15411) (sapphi-red)
- a0c5203 linter/import/named: Update "ES7" comment in examples (#15410) (sapphi-red)
- 3dc24b5 linter,minifier: Always refer as "ES Modules" instead of "ES6 Modules" (#15409) (sapphi-red)
- 2ad77fb linter/no-this-before-super: Correct "Why is this bad?" section (#15408) (sapphi-red)
- 57f0ce1 linter: Add backquotes where appropriate (#15407) (sapphi-red)
Oxfmt v0.12.0
🚀 Features
- 3251000 oxfmt: Use
prettierdirectly and bundleprettier(#15544) (Dunqing) - 7b1e6f3 apps: Add pure rust binaries and release to github (#15469) (Boshen)
- 33ad374 oxfmt: Disable embedded formatting by default for alpha (#15402) (leaysgur)
- 5708126 formatter/sort_imports: Add
options.newlinesBetween(#15369) (leaysgur) - 2dfc3bd formatter: Remove
Tag::StartVerbatimandTag::EndVerbatim(#15370) (Dunqing) - 88c7530 formatter: Remove
FormatElement::LocatedTokenText(#15367) (Dunqing)
🐛 Bug Fixes
- d32d22e formatter: Correct
FormatElementsize check (#15461) (Dunqing) - b0f43f9 formatter: Test call difference (#15356) (Dunqing)
- 01f20f3 formatter: Incorrect comment checking logic for grouping argument (#15354) (Dunqing)
⚡ Performance
- f4b75b6 formatter: Pre-allocate enough space for the FormatElement buffer (#15422) (Dunqing)
- 5a61189 formatter: Avoid unnecessary allocation for
BinaryLikeExpression(#15467) (Dunqing) - 064f835 formatter: Optimize printing call arguments (#15464) (Dunqing)
- 29f35b2 formatter: Reuse previous indent stack in
FitsMeasurer(#15416) (Dunqing) - a6808a0 oxfmt: Use
AllocatorPoolto reuse allocator between threads (#15412) (leaysgur) - 2515045 formatter: Use CodeBuffer's built-in print_indent to print indentation (#15406) (Dunqing)
- 681607b formatter: Check the
Textto see whether it has multiple lines based on its width (#15405) (Dunqing) - b92deb4 formatter: Replace String buffer with byte-oriented CodeBuffer (#14752) (Boshen)
- 963b87f formatter: Add
text_without_whitespacefor text that can never have whitespace (#15403) (Dunqing) - f30ce4b formatter: Optimize formatting literal string (#15380) (Dunqing)
- 8f25a0e formatter: Memorize text width for
FormatElement::Text(#15372) (Dunqing) - f913543 formatter: Avoid allocation for
SyntaxTokenCowSlice(#15366) (Dunqing) - 98c9234 formatter: Optimize
FormatElement::Tokenprinting (#15365) (Dunqing)
oxlint v1.28.0 & oxfmt v0.13.0
Immutable
release. Only release title and notes can be modified.
oxfmt v0.11.0
Immutable
release. Only release title and notes can be modified.
oxfmt v0.10.0
Immutable
release. Only release title and notes can be modified.
[0.10.0] - 2025-11-06
🚀 Features
- 2fd43b4 formatter/sort_imports: Sort imports by type and source path kind (#15291) (leaysgur)
- 10837e0 formatter/sort_imports: Classify import path kind (#15290) (leaysgur)
- ff4f735 formatter/sort_imports: Detect default/named/wildcard imports (#15289) (leaysgur)
- 0665e49 formatter/sort_imports: Detect style imports (#15288) (leaysgur)
- 9edfe58 formatter/sort_imports: Detect type imports (#15287) (leaysgur)
- 8d69661 allocator: Add
Address::from_refmethod (#15318) (overlookmotel) - 505252c formatter: Wrap parenthesis for AssignmentExpression that is a key of
PropertyDefinition(#15243) (Dunqing) - 880b259 formatter: Align import-like formatting the same as Prettier (#15238) (Dunqing)
- b77f254 oxfmt,formatter: Support
embeddedLanguageFormattingoption (#15216) (leaysgur) - 898d6fe oxfmt: Add embedded language formatting with Prettier integration (#14820) (Boshen)
- e77a48e formatter: Detect code removal feature (#15059) (leaysgur)
🐛 Bug Fixes
- d87fa02 oxfmt: Use .node ext for binary (#15351) (Yuji Sugiura)
- aab059d oxfmt: Add dist directory to npm files (#15350) (Yuji Sugiura)
- 1846f86 oxfmt: Commit bindings for release (#15349) (Yuji Sugiura)
- 167f13c oxfmt: Remove main.rs (#15294) (Yuji Sugiura)
- 2fe662e oxfmt: Ignore symlink ends with
.js(#15270) (Liang Mi) - daacf85 oxfmt: Release build fails (#15262) (Dunqing)
- f5d0348 oxfmt: Sync
dependencieswithnpm/oxfmtandapps/oxfmt(#15261) (leaysgur) - 46793d7 formatter: Correct printing comments for
LabeledStatement(#15260) (Dunqing) - 831ae99 formatter: Multiple comments in
LogicalExpressionandTSIntersectionType(#15253) (Dunqing) - 5fa9b1e formatter: Should not indent
BinaryLikeExpressionwhen it is an argument ofBoolean(#15250) (Dunqing) - 99e520f formatter: Handle chain expression for
JSXExpressionContainer(#15242) (Dunqing) - a600bf5 formatter: Correct printing comments for
TaggedTemplateExpression(#15241) (Dunqing) - a7289e7 formatter: Handle member chain for the call's parent is a chain expression (#15237) (Dunqing)
🚜 Refactor
- 6876726 oxfmt: Migrate all tests to JS based (#15285) (leaysgur)
- 36ae721 formatter: Simplify the use of
indentwithsoft_line_break_or_space(#15254) (Dunqing) - cdd8e2f formatter/sort-imports: Split sort_imports modules (#15189) (leaysgur)
- 27b4f36 diagnostic: Remove
pathfrom sender (#15130) (camc314) - 85fb8e8 formatter/sort-imports: Pass options to is_ignored() (#15181) (leaysgur)
🧪 Testing
- 9d5b34b formatter/sort-imports: Refactor sort_imports tests (#15188) (leaysgur)
💼 Other
- b4ebdf5 oxfmt: V0.10.0 (#15263) (Boshen)
oxlint v1.26.0
Immutable
release. Only release title and notes can be modified.
[1.26.0] - 2025-11-05
🚀 Features
- 6f4a50c linter: Implement react/state-in-constructor rule (#15329) (Mikhail Baev)
- 230e34c linter/plugins: Allow js plugins to access settings (#14724) (Arsh)
- 8d69661 allocator: Add
Address::from_refmethod (#15318) (overlookmotel) - 798216b language_server: Respect disable directives for type-aware rules (#15170) (Sysix)
- 7a00691 linter/no-deprecated: Add rule (#15272) (camc314)
- ab065a9 tsgolint: Improve diagnostic messages with file reference (#15274) (camc314)
- 26f24d5 linter: Permit comments in
.oxlintrc.jsonvia json schema file (#15249) (Martin Leduc) - 979ec04 linter: Pretty print tsgolint internal diagnostics (#15131) (camc314)
- 682dca2 parser: Add more helps to parser errors (#15186) (sapphi-red)
🐛 Bug Fixes
- 40231a6 linter/plugins, napi/parser: Add
parentfield toFormalParameterRestandTSParameterPropertyin TS type defs (#15337) (overlookmotel) - 861508a linter/plugins: Make
parentfields in TS type defs non-optional (#15336) (overlookmotel) - e0edaef language-server: Disable tsgolint test on big endian (#15331) (camc314)
- 1d09cc9 linter/no-unused-private-class-members: Fix false positive in conditional expressino (#15319) (camc314)
- 7f079ab ast/estree: Fix raw transfer deserializer for
AssignmentTargetPropertyIdentifier(#15304) (overlookmotel) - 56c6627 linter/plugins: Resolve JS plugins only with conditions Node.js supports (#15248) (sapphi-red)
- d6996d0 linter: Fix JSON schema to deny additional properties for categories enum. (#15257) (Connor Shea)
- 9304f9f linter: Fix JSON schema to deny additional properties for plugins enum. (#15259) (Connor Shea)
- 6a884d3 linter: Return error diagnostics if tsgolint fails (#15229) (camc314)
- 86cfae1 language-server: Log error if tsgolint fails to run (#15228) (camc314)
- f376e61 linter: Bundle
@typescript-eslint/scope-manager(#15210) (Arsh) - 377e904 linter: Ignore script tag in code comment (#15202) (Liang Mi)
- b26900c linter: Improve diagnostic for react/button-has-type. (#15200) (Connor Shea)
- 80a187c linter: Add offset for parsing error in partial loading files (#15075) (Liang Mi)
- af257da linter/no-unused-vars: False positive with member expressions in sequence expressions (#15190) (magic-akari)
- 1f365c8 vscode/test: Make formatting test less flaky (#15120) (camc314)
🚜 Refactor
- 636e7ed linter/plugins: Shorten
ScopeManagercode (#15335) (overlookmotel) - a7cf856 ast/estree: Shorten raw transfer deserializer for
AssignmentTargetPropertyIdentifier(#15303) (overlookmotel) - 90146ab linter/react: Simplify
is_react_hook(#15310) (overlookmotel) - 778b0b6 language_server: Remove
ServerLinterDiagnostics(#15169) (Sysix) - 10732e8 language_server:
Backendchecks the correctLintOptions::Run(#15166) (Sysix) - e70a37f language_server: Use
LintRunner(#14472) (Sysix) - 5501ed2 language_server: Send in memory source text to
tsgolint(#14733) (Sysix) - f452007 linter/no-unwanted-polyfillio: Add security warning for compromised domains (#15207) (shulaoda)
- 27b4f36 diagnostic: Remove
pathfrom sender (#15130) (camc314)
📚 Documentation
- a7d9f1d linter/plugins: Reformat and clarify
ScopeManagerJSDoc comments (#15333) (overlookmotel) - 69e61d4 linter/plugins: Update comment (#15293) (overlookmotel)
- 84ef5ab linter: Avoid linebreaks for markdown links and update plugins docs in the configuration schema. (#15246) (Connor Shea)
- ec6721c linter: Improve documentation for no-unused-vars and no-useless-constructor. (#15244) (Connor Shea)
- 52be364 linter/no-useless-constructor: Clarify caveat regarding visibility changes in constructors (#15239) (camc314)
- d5c4ce8 linter: Add config option docs for 7 rules. (#15209) (Connor Shea)
- 096fb2c linter: Add config option docs for 3 rules. (#15211) (Connor Shea)
- 3f393e3 linter: Add configuration option docs for promise/no-callback-in-promise rule. (#15176) (Connor Shea)
- 4ba1bca linter: Add configuration option docs for 5 rules. (#15199) (Connor Shea)
- ab46187 linter: Add configuration docs for 6 react rules. (#15198) (Connor Shea)
- 51c8724 linter: Add config docs for 4 more rules. (#15196) (Connor Shea)
- e6677b1 linter: Add configuration option docs for 4 rules. (#15197) (Connor Shea)
- 1fd14c0 linter: Add configuration option docs for 6 rules (#15194) (Connor Shea)
- eafcb1a linter: Add autogenerated docs for no-magic-numbers rule. (#14846) (Connor Shea)
- 1b9f6fc linter: Add configuration option docs for 6 rules (#15168) (Connor Shea)
- 410b3cb linter: Add configuration option docs for import/extensions rule. (#15171) (Connor Shea)
- b0cc5de linter: Add configuration option docs for 4 jest rules (#15172) (Connor Shea)
- 4dd1a4e linter: Remove unnecessary link comments. (#15175) (Connor Shea)
- 28642a9 linter: Add configuration option docs for various jsx-a11y rules (#15179) (Connor Shea)
- ace4def linter: Add configuration option docs for unicorn/no-array-reverse rule. (#15143) (Connor Shea)
- f707fc9 linter: Add configuration option docs for unicorn/no-null rule. (#15144) (Connor Shea)
- f826b15 linter: Add configuration option docs for unicorn/explicit-length-check rule. (#15145) (Connor Shea)
- 3d78ad9 linter: Add configuration option docs for react/button-has-type rule. (#15146) (Connor Shea)
- d68efca linter: Add configuration option docs for unicorn/prefer-structured-clone rule. (#15148) (Connor Shea)
- 86f6bb9 linter: Add configuration option docs for react/jsx-no-useless-fragment rule. (#15149) (Connor Shea)
- 4950fb6 linter: Add configuration option docs for eslint/no-duplicate-import rule. (#15150) (Connor Shea)
- 9b56425 linter: Add configuration option docs for import/max-dependencies rule. (#15151) (Connor Shea)
- 47d43eb linter: Add configuration option docs for typescript/no-extraneous-class rule. (#15152) (Connor Shea)
- db30aed linter: Add configuration option docs for react/no-string-refs rule. (#15153) (Connor Shea)
- 0e753c1 linter: Add configuration option docs for react/check-requires-onchange-or-readonly rule. (#15154) (Connor Shea)
- 551f236 linter: Add configuration option docs for jest/valid-expect rule. (#15155) (Connor Shea)
- e860e65 linter: Add configuration option docs for import/first rule. (#15162) (Connor Shea)
- d9162f6 linter: Add configuration option docs for import/no-dynamic-require rule. (#15157) (Connor Shea)
- ee85540 linter: Add configuration option docs for eslint/no-redeclare rule. (#15158) (Connor Shea)
- 24878cb linter: Add configuration option docs for typescript/explicit-function-return-type rule. (#15160) (Connor Shea)
- 8349771 linter: Add configuration option docs for typescript/no-this-alias rule. (#15161) (Connor Shea)
- 75f0de0 linter: Add configuration option docs for import/prefer-default-export rule. (#15164) (Connor Shea)
- 7367353 linter: Add configuration option docs for import/no-namespace rule. (#15165) (Connor Shea)
- 69babde linter: Add configuration option docs for unicorn/no-array-reduce rule. (#15142) (Connor Shea)
- 2c40ad8 linter: Add configuration option docs for typescript/consistent-indexed-object-style rule. (#15140) (Connor Shea)
- a9f5778 linter: Add configuration option docs for unicorn/prefer-number-properties rule. (#15141) (Connor Shea)
- 41427c2 linter: Add configuration option docs for import/consistent-type-specifier-style rule. (#15139) (Connor Shea)
- 18274aa linter: Add configuration option docs for import/no-duplicates rule. (#15137) (Connor Shea)
- d78419f linter: Add configuration option docs for import/no-cycle rule. (#15136) (Connor Shea)
- 297176c linter: Add configuration option docs for typescript/no-inferrable-types rule. (#15134) (Connor Shea)
- 1b2aaa0 linter: Add configuration option docs for unicorn/no-useless-promise-resolve-reject rule. (#15135) (Connor Shea)
- 5c25141 linter: Add configuration option docs for import/no-absolute-path rule. (#15132) (Connor Shea)
- 053c1de linter: Add configuration option docs for typescript/prefer-literal-enum-member rule. (#15133) (Connor Shea)
- 7ba65f4 linter/no-loss-off-precision: Fix typo (#15129) (camc314)
- 59bb65c linter: Add configuration option docs for typescript/triple-slash-reference rule. (#15097) (Connor Shea)
- 3113dfe linter: Add configuration option docs for typescript/no-empty-interface rule. (#15098) (Connor Shea)
- 731f80b linter: Add configuration option docs for promise/no-return-wrap rule (#15099) (Connor Shea)
- c762216 linter: Add configuration option docs for react/self-closing-comp rule. (#15100) (Connor Shea)
- 88f78b7 linter: Add configuration option docs for promise/prefer-await-to-then rule. (#15102) (Connor Shea)
- 62dbdc4 linter: Add configuration option docs for promise/catch-or-return rule. (#15103) (Connor Shea)
- 219537c linter: Add configuration option docs for eslint/no-unsafe-optional-chaining rule. (#15104) (Connor Shea)
- 4c4a2de linter: Add configuration option docs for unicorn/no-useless-undefined rule. (#15106) (Connor Shea)
- fc603e9 linter: Add configuration option docs for eslint/no-undef rule. (#15108) (Connor Shea)
- b8d03ee linter: Add configuration option docs for eslint/prefer-promise-reject-errors rule. (#15110) (Connor Shea)
- 1e8e3c0 linter: Add configuration option docs for eslint/no-useless-rename rule. (#15111) (Connor Shea)
- 5e6b62e linter: Add configuration option docs for eslint/no-labels rule. (#15112) (Connor Shea)
- dde7fde linter: Add configuration option docs for eslint/max-nested-callbacks rule. (#15107) (Connor Shea)
⚡ Performance
- 8b31daa linter/plugins: Small optimizations to
ScopeManager(#15334) (overlookmotel) - 4c0ba92 linter/plugins: Use singleton object for
ScopeManager(#15332) (overlookmotel) - c82fab0 ast/estree: Remove pointless assignments from raw transfer deserializers (#15305) (overlookmotel)
- ee9f2f4 linter/plugins: Faster check for
cwd(#15301) (overlookmotel) - 313e82e linter/no-unwanted-polyfillio: Should run when source type is jsx (#15204) (shulaoda)