Changelog

biomejs/biome · · 14 commits

Biome adds Bun and Vue lint rules

Major linting coverage expanded with Bun runtime support, new JS/Vue nursery rules, plus fixes for parser and CSS analyzer edge cases.

Bun runtime and module support expands linting (Netailc5c8315, Netaila20f44a)

Biome now understands Bun-builtins across import resolution and linting, so rules like noUnresolvedImports, noUndeclaredDependencies, and the Node-module checker stop flagging Bun runtime modules such as bun:sqlite and bun:test. A new noBunModules nursery rule also lands to explicitly forbid Bun builtins where desired, making runtime-specific module handling much more precise.

New noThisOutsideOfClass JS rule (dyc31fc42ed)

Biome adds a nursery lint rule that reports this used outside class members, while still allowing TypeScript functions with an explicit this parameter. The commit also wires the rule into ESLint migration/configuration metadata and adds full JS/TS coverage.

Vue deprecated scoped slots rule added (dyc36c7fd27)

A new Vue nursery rule flags deprecated $scopedSlots usage and can suggest an unsafe $slots replacement. This broadens Biome’s framework-specific linting and includes backend/schema wiring plus migration support from ESLint.

Malformed for...of parsing no longer crashes (ematipico6586ceb)

Biome fixes a parser recovery bug that could crash linting on malformed for...of input. The parser now classifies certain broken arrow-like constructs as bogus expressions, improving resilience on invalid code.

noUnusedVariables now handles merged interfaces correctly (ematipicoa689cb5, ematipico65742b3)

Two fixes tighten TypeScript unused-variable analysis around interface merging and namespace merging. That prevents false positives in patterns that intentionally split declarations across multiple interface/namespace blocks.

CSS parser/analysis gets several correctness fixes (denbezrukov15350fc, ematipicod4a0716, ematipicob6611dd)

Biome fixes SCSS nesting recovery, legacy IE filter parsing/formatting, and duplicate-property detection across nested at-rules. These changes improve both parser robustness and lint accuracy on real-world CSS/Sass edge cases.

Grit plugins can now use function = ... node arguments (ematipico67963b4)

Biome’s Grit parser and CLI regression coverage were updated so plugins can use function = ... in node arguments. This unblocks a parser bug that previously rejected valid plugin patterns.

Other misc changes

  • Align explicit length checks lint rule and related migration/tests (dyc3b19390c)
  • Fix panic in debug builds in control-flow analysis (dyc3eb44d3f)
  • Tweak contributing docs and contributor guidance (dyc3092a89f)
  • Minor rule/config/schema wiring and snapshot updates across new lint additions