Biome CLI v2.4.16
- Added support for formatter.trailingCommas in overrides
- Updated useDestructuring rule to provide variableDeclarator and assignmentExpression options to control which contexts enforce destructuring, with diagnostic for object destructuring in assignment expressions now instructing users to wrap the assignment in parentheses
- Fixed diagnostics showing incorrect location in Astro files
- Fixed HTML formatting where comments could cause the formatter to split up closing tags and produce syntactically invalid HTML
- Fixed diagnostics emitted by the noUntrustedLicenses rule
- Fixed biome rage --linter to display rules enabled through linter domains in the enabled rules list
- Fixed parsing of Svelte function bindings such as bind:value={get, set} to prevent false positives from noCommaOperator rule
- Fixed useOptionalChain rule to detect negated guard inequality chains like !foo || foo.bar !== "x"
- Fixed noMisusedPromises rule causing stack overflow when nested function returns object with shorthand properties shadowing destructured variables from outer scope
- Fixed Vue and Svelte formatting for standalone interpolations in inline elements to preserve existing newlines
- Fixed noUnusedFunctionParameters rule to mention the parameter name in the diagnostic
- Fixed CSS and SCSS formatting for comments around declaration colons to keep comments at the same boundary as Prettier
- Corrected the noReactNativeDeepImports source rule to point to the proper upstream rule for proper migration
2.4.16
Patch Changes
-
#10329
ef764d5Thanks @Conaclos! - Fixed an issue where diagnostics showed an incorrect location in Astro files. -
#10363
50aa415Thanks @dyc3! - Fixed HTML formatting for a case where comments could cause the formatter to split up a closing tag, which would cause the resulting HTML to be syntactically invalid.Input:
<span ><!-- 1 --><span>a</span ><!-- 2 --><span>b</span ><!-- 3 --></span>Output:
<span ><!-- 1 - --> <span>a</span<!-- 2 - --> ><span>b</span><!-- 3 + --><span>a</span><!-- 2 + --><span>b</span><!-- 3 --></span > -
#10465
0c718daThanks @dfedoryshchev! - Fixed diagnostics emitted by thenoUntrustedLicensesrule. -
#10358
05c2617Thanks @dyc3! - Fixed #10356:biome rage --linternow displays rules enabled through linter domains in the enabled rules list. -
#10300
950247cThanks @dyc3! - Fixed #10265: Svelte function bindings such asbind:value={get, set}are now parsed more precisely, sonoCommaOperatorwon't emit false positives for that syntax anymore. -
#9786
e71f584Thanks @MeGaNeKoS! - Fixed #8480:useDestructuringnow providesvariableDeclaratorandassignmentExpressionoptions to control which contexts enforce destructuring, matching ESLint'sprefer-destructuringconfiguration. Both default to{array: true, object: true}. The diagnostic for object destructuring in assignment expressions now instructs users to wrap the assignment in parentheses. -
#10425
1948b72Thanks @sjh9714! - Fixed #10244: TheuseOptionalChainrule now detects negated guard inequality chains like!foo || foo.bar !== "x". -
#10442
001f94fThanks @ematipico! - Fixed #10411:noMisusedPromisesno longer causes a stack overflow when a nested function returns an object with shorthand properties that shadow destructured variables from an outer scope. -
#10318
9b1577fThanks @dyc3! - Added support forformatter.trailingCommasin overrides. This option was previously available in the top-level formatter configuration but missing from formatter overrides. -
#10319
2e37709Thanks @dyc3! - Fixed Vue and Svelte formatting for standalone interpolations in inline elements. Biome now preserves existing newlines in cases like:- <span> {{ value }} </span> + <span> + {{ value }} + </span> -
#10365
0a58eb0Thanks @Netail! - Fixed #10361:noUnusedFunctionParametersnow mentions the parameter name in the diagnostic. -
#10439
df6b867Thanks @denbezrukov! - Fixed CSS and SCSS formatting for comments around declaration colons so comments between property names, colons, and values stay at the same boundary as Prettier..selector { - color: /* red, */ - blue; + color: /* red, */ blue; } -
#10344
b30208cThanks @siketyan! - Fixed#10123: Corrected thenoReactNativeDeepImportssource rule to point to the proper upstream rule, so users can migrate from the original rule correctly. -
#10328
b59133fThanks @dyc3! - Fixed #10309: Biome no longer adds newlines to Astro frontmatter when linter or assist--writemode is enabled.
What's Changed
- fix(format/html/vue): preserve newlines around standalone interpolations by @dyc3 in https://github.com/biomejs/biome/pull/10319
- refactor(css_parser): remove
allow_css_ratiofrom SCSS expression parsing functions by @denbezrukov in https://github.com/biomejs/biome/pull/10325 - fix(astro): display diagnostic advices with the correct location by @Conaclos in https://github.com/biomejs/biome/pull/10329
- fix: trim astro frontmatter content before processing it by @dyc3 in https://github.com/biomejs/biome/pull/10328
- fix(config): support trailingCommas in overrides by @dyc3 in https://github.com/biomejs/biome/pull/10318
- chore(deps): update rust:1.95.0-bullseye docker digest to b26cecc by @renovate[bot] in https://github.com/biomejs/biome/pull/10334
- chore(deps): update rust:1.95.0-trixie docker digest to 5b1e348 by @renovate[bot] in https://github.com/biomejs/biome/pull/10335
- chore(deps): update dependency @types/node to v24.12.3 by @renovate[bot] in https://github.com/biomejs/biome/pull/10336
- chore(deps): update dependency tombi to v0.10.6 by @renovate[bot] in https://github.com/biomejs/biome/pull/10337
- feat(css_parser): support for SCSS
@include ... usingclauses by @denbezrukov in https://github.com/biomejs/biome/pull/10327 - chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/10338
- chore(deps): update pnpm to v10.33.4 by @renovate[bot] in https://github.com/biomejs/biome/pull/10339
- chore(deps): update rust crate filetime to 0.2.28 by @renovate[bot] in https://github.com/biomejs/biome/pull/10340
- chore(deps): update dependency @changesets/changelog-github to v0.7.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/10342
- feat(parse/tailwind): differentiate between number and non-number values by @dyc3 in https://github.com/biomejs/biome/pull/10332
- chore(deps): update rust crate rayon to 1.12.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/10343
- fix(markdown_parser): parse tab-indented siblings by @jfmcdowell in https://github.com/biomejs/biome/pull/10333
- fix(lint/js): correct the rule source of
noReactNativeDeepImportsby @siketyan in https://github.com/biomejs/biome/pull/10344 - fix(markdown_parser): column-aware tab handling around block containers by @jfmcdowell in https://github.com/biomejs/biome/pull/10345
- chore: update pnpm to the lateset by @ematipico in https://github.com/biomejs/biome/pull/10348
- chore: fix renovate config by @dyc3 in https://github.com/biomejs/biome/pull/10352
- feat(css_parser): support SCSS interpolated selector by @denbezrukov in https://github.com/biomejs/biome/pull/10351
- feat(useDestructuring): add options for assignment/declaration and improve diagnostic for bare object assignments by @MeGaNeKoS in https://github.com/biomejs/biome/pull/9786
- chore: remove benchmark from repository by @ematipico in https://github.com/biomejs/biome/pull/10355
- fix(rage): print rules enabled by domains by @dyc3 in https://github.com/biomejs/biome/pull/10358
- feat(css): support SCSS interpolation in attribute selectors by @denbezrukov in https://github.com/biomejs/biome/pull/10357
- fix(js_analyze): noUnusedFunctionParameters mention parameter name by @Netail in https://github.com/biomejs/biome/pull/10365
- feat(parse/html): parse svelte function bindings more precisely by @dyc3 in https://github.com/biomejs/biome/pull/10300
- feat(css_formatter): add support for formatting SCSS keyframes selectors by @denbezrukov in https://github.com/biomejs/biome/pull/10362
- fix: yaml linting panic fixes by @jjroush in https://github.com/biomejs/biome/pull/10287
- feat(css_parser): add support for SCSS interpolated dashed identifiers and properties by @denbezrukov in https://github.com/biomejs/biome/pull/10367
- fix(markdown_parser): handle ordered sublist continuation by @jfmcdowell in https://github.com/biomejs/biome/pull/10349
- docs: fix duplicate-word typos in code comments by @dfedoryshchev in https://github.com/biomejs/biome/pull/10371
- test(markdown_parser): add CST list invariants by @jfmcdowell in https://github.com/biomejs/biome/pull/10369
- chore: yaml formatting infra by @ematipico in https://github.com/biomejs/biome/pull/10366
- chore(goverance): cover expenses for representing Biome at a conference by @Conaclos in https://github.com/biomejs/biome/pull/10246
- docs: clarify vcs.root description by @Dotify71 in https://github.com/biomejs/biome/pull/10379
- Revert "docs: clarify vcs.root description" by @ematipico in https://github.com/biomejs/biome/pull/10381
- feat(css_parser): add support for SCSS parent selectors by @denbezrukov in https://github.com/biomejs/biome/pull/10370
- fix(css_parser): parse CSS custom functions in SCSS by @denbezrukov in https://github.com/biomejs/biome/pull/10387
- feat(useSortedClasses): scaffold v4 parser-based sort module by @jiwon79 in https://github.com/biomejs/biome/pull/10291
- fix(css_parser): support semicolonless SCSS statement at-rules by @denbezrukov in https://github.com/biomejs/biome/pull/10389
- fix(format/html): fix case where comments cause invalid html by @dyc3 in https://github.com/biomejs/biome/pull/10363
- fix(markdown_parser): break paragraph at sibling list marker without tab by @jfmcdowell in https://github.com/biomejs/biome/pull/10376
- feat(css_formatter): preserve raw scss string interpolation by @denbezrukov in https://github.com/biomejs/biome/pull/10388
- fix(service): correct FileExistsParams typo by @yanthomasdev in https://github.com/biomejs/biome/pull/10399
- chore(deps): update rust crate bpaf to 0.9.26 by @renovate[bot] in https://github.com/biomejs/biome/pull/10403
- chore(deps): update rust crate filetime to 0.2.29 by @renovate[bot] in https://github.com/biomejs/biome/pull/10404
- chore(deps): update dependency tombi to v0.11.4 by @renovate[bot] in https://github.com/biomejs/biome/pull/10405
- chore(deps): update rust crate dashmap to 6.2.1 by @renovate[bot] in https://github.com/biomejs/biome/pull/10406
- chore: remove dashmap from project by @ematipico in https://github.com/biomejs/biome/pull/10407
- chore(deps): update dependency @types/node to v24.12.4 by @renovate[bot] in https://github.com/biomejs/biome/pull/10400
- chore(deps): update pnpm to v11.1.2 by @renovate[bot] in https://github.com/biomejs/biome/pull/10401
- fix(css_formatter): preserve scss identifier interpolation spacing by @denbezrukov in https://github.com/biomejs/biome/pull/10398
- chore(format/html): fix unused code warnings in release builds by @dyc3 in https://github.com/biomejs/biome/pull/10412
- chore(service): make grit opt-in by @ematipico in https://github.com/biomejs/biome/pull/10410
- feat(css_formatter): preserve source-tight scss binary edges by @denbezrukov in https://github.com/biomejs/biome/pull/10413
- refactor: make yaml, md and graphql gated via rust features by @ematipico in https://github.com/biomejs/biome/pull/10416
- feat(css_parser): add support for parsing and formatting unknown SCSS/CSS at-rules by @denbezrukov in https://github.com/biomejs/biome/pull/10397
- refactor: make plugins opt-in via feature gate by @ematipico in https://github.com/biomejs/biome/pull/10418
- feat(css_formatter): align SCSS map pair value layout by @denbezrukov in https://github.com/biomejs/biome/pull/10417
- fix: incorrect build when using build or test by @ematipico in https://github.com/biomejs/biome/pull/10426
- ci: agent scan, zizmor and reduce permissions by @ematipico in https://github.com/biomejs/biome/pull/10428
- ci: remove checkout step from agentscan workflow by @MatteoGabriele in https://github.com/biomejs/biome/pull/10429
- fix(css_parser): classify interpolated query feature ranges correctly by @denbezrukov in https://github.com/biomejs/biome/pull/10421
- docs: remove outdated Caveats section in
useImportExtensionsby @Dotify71 in https://github.com/biomejs/biome/pull/10431 - docs: remove redundant default phrase in
useConsistentObjectDefinitionsrule by @Dotify71 in https://github.com/biomejs/biome/pull/10430 - fix(css_formatter): preserve blank lines between SCSS map pairs by @denbezrukov in https://github.com/biomejs/biome/pull/10427
- ci: fix preview releases by @dyc3 in https://github.com/biomejs/biome/pull/10436
- fix(useSortedClasses): sort Tailwind v4 arbitrary values by @jiwon79 in https://github.com/biomejs/biome/pull/10414
- fix(css_parser): improve diagnostics for missing attribute names and empty selectors in SCSS by @denbezrukov in https://github.com/biomejs/biome/pull/10437
- ci: remove corepack by @ematipico in https://github.com/biomejs/biome/pull/10440
- fix(css_formatter): improve comment handling in generic CSS properties by @denbezrukov in https://github.com/biomejs/biome/pull/10439
- fix(css_formatter): align commented SCSS map value layout by @denbezrukov in https://github.com/biomejs/biome/pull/10445
- fix(css_formatter): handle control variable maps in SCSS map expressions by @denbezrukov in https://github.com/biomejs/biome/pull/10446
- fix(inference): pass correct scope on return statements by @ematipico in https://github.com/biomejs/biome/pull/10442
- feat(css_parser): parse interpolated scss nested properties by @denbezrukov in https://github.com/biomejs/biome/pull/10455
- chore(deps): update rust:1.95.0-bullseye docker digest to 28afaeb by @renovate[bot] in https://github.com/biomejs/biome/pull/10457
- fix(test): leaky CLI tests by @ematipico in https://github.com/biomejs/biome/pull/10463
- fix(css_formatter): align SCSS map comment trailing commas by @denbezrukov in https://github.com/biomejs/biome/pull/10449
- fix(markdown_parser): keep list blank-line separators inside the preceding item by @jfmcdowell in https://github.com/biomejs/biome/pull/10466
- chore(deps): update rust crate jiff to 0.2.27 by @renovate[bot] in https://github.com/biomejs/biome/pull/10459
- docs: fix duplicate "from" in noUntrustedLicenses diagnostic by @dfedoryshchev in https://github.com/biomejs/biome/pull/10465
- fix(lint): detect optional-chain inequality guards by @sjh9714 in https://github.com/biomejs/biome/pull/10425
- chore(deps): update dependency tombi to v0.11.7 by @renovate[bot] in https://github.com/biomejs/biome/pull/10458
- fix(core): regression in emitted types by @ematipico in https://github.com/biomejs/biome/pull/10478
- fix(parser/yaml): correctly lex and parse alias as mapping key by @siketyan in https://github.com/biomejs/biome/pull/10472
- fix(markdown_parser): terminate fenced code blocks at list-item boundaries by @jfmcdowell in https://github.com/biomejs/biome/pull/10471
- ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/10326
New Contributors
- @jjroush made their first contribution in https://github.com/biomejs/biome/pull/10287
- @Dotify71 made their first contribution in https://github.com/biomejs/biome/pull/10379
- @MatteoGabriele made their first contribution in https://github.com/biomejs/biome/pull/10429
- @sjh9714 made their first contribution in https://github.com/biomejs/biome/pull/10425
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.15...@biomejs/biome@2.4.16