Changelog

biomejs/biome · · 7 commits

CSS, inference, and CLI output get a boost

Major CSS formatter and type-inference refactors land, plus fixes for rdjson severity and Svelte/CSS formatting edge cases.

Preserve escaped attribute newlines in CSS formatting (denbezrukovf0ebdbb)

Fixes a selector-formatting bug where escaped newlines inside attribute matcher values could break surrounding groups. The formatter now preserves those literal line breaks without expanding the whole selector, keeping output stable for range formatting.

Add canonical inferred globals to module inference (ematipicoec8c501)

Module type inference now tracks canonical global types instead of relying on the previous globals plumbing. This is a substantial internal rewrite that changes how inferred globals are represented and merged, which should make future type inference behavior more consistent.

Refactor inference to structural type mapping (ematipico67fa4b7)

The type system was reworked around structural mapping of interned types, replacing a large chunk of the old substitution machinery. This is a deep refactor in the inference core and lays groundwork for more flexible type transformations.

Support preserved SCSS custom properties in CSS (denbezrukov2909809)

CSS formatting and analysis now recognize preserved SCSS custom property syntax as a first-class node family. That expands parser/factory coverage and prevents lints from misfiring on custom property values.

Populate severity in rdjson reporter output (marschatthacc90e65)

The CLI’s Reviewdog-compatible reporter now emits explicit severities for every diagnostic. That makes the output more useful to downstream tooling, which no longer has to guess whether a finding is an error, warning, or info.

Match Prettier for Svelte destructuring and bind formatting (ruidosujeira6d18204)

Svelte {#each} destructuring no longer inserts extra spaces inside square brackets, and multiline bind: function expressions are indented more cleanly. This brings the HTML/Svelte formatter closer to expected output on real-world templates.

Other misc changes

  • Inference resolver ported to Salsa module inference (ematipicoe9a9f03)
  • Test and snapshot updates across CSS, CLI, HTML, and inference
  • Minor lint guards for CSS custom property values