Changelog

biomejs/biome · · 15 commits

Markdown, CSS, HTML, and lint gains

Two markdown parser fixes, three CSS/SCSS formatter/parser features, HTML diagnostics cleanup, and a new JS lint rule landed.

SCSS support expands for interpolation, media queries, and formatting

Biome added parsing and formatting support for SCSS interpolated values and media query interpolation, plus better spacing and trailing-separator handling in SCSS expressions and lists. This closes multiple gaps in SCSS support and improves output fidelity for real-world stylesheets (denbezrukova6ecd39, denbezrukovc16c085, denbezrukov1cf6d86, denbezrukovaa5ccb8, denbezrukov75e50f5).

New noExcessiveNestedCallbacks lint rule

A new nursery rule now flags callbacks nested deeper than a configured maximum, with ESLint option migration support added alongside it. This is a meaningful linting expansion for JS codebases that want to keep callback nesting shallow and maintainable (dyc3ae659dd).

Markdown parser fixes list and reference edge cases

The markdown parser now handles quoted ordered-list interrupts, preserves lazy link references as text, and stops nested lazy lists from swallowing fenced code blocks. These fixes improve correctness for common CommonMark edge cases and should reduce surprising parse output in nested content (jfmcdowell183c8fa, jfmcdowella2ce50a, jfmcdowell0cf1458, jfmcdowell204177e).

HTML parser diagnostics are cleaner and more accurate

Void-element closing tags now produce clearer, single diagnostics, and text-context keyword relexing was improved so HTML text is parsed more reliably. This makes parser errors less noisy and improves handling of mixed markup/text content (dyc3eefc5ab, dyc37b05a89).

Other misc changes

  • noStaticElementInteractions now excludes custom elements (guneyaa055cd)
  • noThisInStatic no longer reports new this() (dyc38a40ef8)
  • CI release changes and changelog metadata updates (46393e0)