github biomejs/biome @biomejs/biome@2.4.8
Biome CLI v2.4.8

4 hours ago

2.4.8

Patch Changes

  • #9488 bc709f6 Thanks @mvanhorn! - Fixed #9463: the "Biome found a configuration file outside of the current working directory" diagnostic now includes the configuration file path and the working directory, giving users actionable information to debug the issue.

  • #9527 2f8bf80 Thanks @mdm317! - Fixed #8959: Fixed TypeScript arrow function formatting when a comment appears after =>.

  • #9525 e7b3b10 Thanks @ViniciusDev26! - Added the rule noDrizzleUpdateWithoutWhere to prevent accidental full-table updates when using Drizzle ORM without a .where() clause.

  • #9531 1302740 Thanks @ematipico! - Fixed #9187: Astro frontmatter containing regex literals with quotes (/'/, /"/) or dashes (/---/) no longer causes parse errors.

  • #9535 b630d93 Thanks @leno23! - Fixed #9524: remove extra space before > when bracketSameLine is true and the self-closing slash is absent in HTML formatter.

  • #9537 81e6306 Thanks @ematipico! - Fixed #9238: The HTML parser no longer incorrectly reports --- inside element content (e.g. <td>---</td>) as an "Unexpected value or character" error.

  • #9532 4b64145 Thanks @ematipico! - Fixed #9117: biome check --write no longer falsely reports Svelte and Vue files as changed when html.formatter.indentScriptAndStyle is enabled and the files are already correctly formatted.

  • #9528 61451ef Thanks @ematipico! - Fixed #9341: Fixed an LSP crash that could corrupt file content when saving with format-on-save enabled.

  • #9538 794f79c Thanks @ematipico! - Fixed #9279: The rule noSubstr now detects .substr() and .substring() calls in all expression contexts, including variable declarations, function arguments, return statements, and arrow function bodies.

  • #9462 c23272c Thanks @ematipico! - Fixed #9370: The resolver now correctly prioritizes more specific exports patterns over less specific ones. Previously, a pattern like "./*" could match before "./features/*", causing resolution failures for packages with overlapping subpath patterns.

  • #9515 f85c069 Thanks @shivamtiwari3! - Fixed #9506 and #9479: Biome no longer reports false parse errors on <script type="speculationrules"> and <script type="application/ld+json"> tags. These script types contain non-JavaScript content and are now correctly skipped by the embedded language detector.

  • #9514 7fe43c8 Thanks @ematipico! - Fixed #6964: Biome now correctly resolves the .gitignore file relative to vcs.root when configured. Previously, the vcs.root setting was ignored and Biome always looked for the ignore file in the workspace directory.

  • #9521 af39936 Thanks @ematipico! - Fixed #9483. Now the rule noRedeclare doesn't panic when it encounters constructor overloads.

  • #9490 60cf024 Thanks @willfarrell! - Added support for modern CSS properties, pseudo-classes, and pseudo-elements.

    New known properties: dynamic-range-limit, overlay, reading-flow, reading-order, scroll-marker-group, scroll-target-group.

    New pseudo-elements: ::checkmark, ::column, ::picker, ::picker-icon, ::scroll-button, ::scroll-marker, ::scroll-marker-group.

    New pseudo-classes: :active-view-transition-type, :has-slotted, :target-after, :target-before, :target-current.

  • #9526 4d42823 Thanks @ematipico! - Fixed #9358 and #9375. Now attributes that have text expressions such as class={buttonClass()} are correctly tracked in Svelte files.

  • #9520 61f53ee Thanks @ematipico! - Fixed #9519. Now noUnusedVariables doesn't flag variables that are used as typeof type.

  • #9487 331dc0d Thanks @mvanhorn! - Fixed #9477: source.fixAll.biome no longer sorts imports when source.organizeImports.biome is disabled in editor settings. The organize imports action is now excluded from the fix-all pass unless explicitly requested.

  • #9525 e7b3b10 Thanks @ViniciusDev26! - Added the rule noDrizzleDeleteWithoutWhere to prevent accidental full-table deletes when using Drizzle ORM without a .where() clause.

What's Changed

  • fix(formatter/md): fix formatting for MdHardLine by @tidefield in #9480
  • chore(deps): update rust:1.94.0-bookworm docker digest to 6a544e5 by @renovate[bot] in #9493
  • chore(deps): update rust:1.94.0-bullseye docker digest to 9d1864f by @renovate[bot] in #9494
  • chore(deps): update rust crate tracing-subscriber to 0.3.23 by @renovate[bot] in #9498
  • chore(benchmark): upgrade to Debian 13 Trixie, Node.js 24 by @siketyan in #9499
  • fix: missing rule source reference by @Netail in #9504
  • chore: manually import dev dependencies by @ematipico in #9512
  • test: infrastructure for embedded langauges by @ematipico in #9509
  • feat(css): parse scss interpolated selector names by @denbezrukov in #9486
  • feat(css): add support for modern CSS properties, pseudo-classes, and pseudo-elements by @willfarrell in #9490
  • fix(html): skip unsupported <script> types instead of treating as JS (fixes #9506, #9479) by @shivamtiwari3 in #9515
  • fix(semantic): regression in tracking scopes by @ematipico in #9521
  • fix(noUnusedVariables): regression in previous refactor by @ematipico in #9520
  • fix(diagnostic): include config path and CWD in ConfigurationOutsideProject by @mvanhorn in #9488
  • fix(lsp): changes file corruption by @ematipico in #9528
  • fix(embeds): track attributes text expressions by @ematipico in #9526
  • fix(core): idempotence formatting html-ish files by @ematipico in #9532
  • fix(ts/formatter): format comment after => in arrow functions by @mdm317 in #9527
  • feat(lint): add noDrizzleDeleteWithoutWhere and noDrizzleUpdateWithoutWhere rules by @ViniciusDev26 in #9525
  • fix(lsp): filter organizeImports from fixAll code action by @mvanhorn in #9487
  • fix(parser/html): regex literals in frontmatter by @ematipico in #9531
  • fix(core): vcs root resolution by @ematipico in #9514
  • fix(resolver): patterns resolution by @ematipico in #9462
  • feat(css): parse scss interpolation for selectors and declaration names by @denbezrukov in #9529
  • fix(noSubstr): query more nodes by @ematipico in #9538
  • fix(html-formatter): remove extra space before > when bracketSameLine… by @leno23 in #9535
  • fix(html/parser): fence in html files by @ematipico in #9537
  • ci: release by @github-actions[bot] in #9517

New Contributors

Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.7...@biomejs/biome@2.4.8

Don't miss a new biome release

NewReleases is sending notifications on new releases.