Biome v2.5
Biome v2.5 がリリースされた。lint ルールの総数が 500 本を超え、Vue 向けや型推論ベースのルールを含む nursery ルール 73 本が stable グループへ昇格した。モジュールグラフを使う CSS と JSX の横断 lint、GritQL プラグインのパス指定とコード fix、LSP の go-to definition、lint / format / check の --watch モードが追加されている。
横断 lint と依存関係チェック
nursery ルール noUnusedClasses はプロジェクト内の CSS クラス定義を走査し、HTML 系ファイルや JSX で未使用のクラスを報告する。noUndeclaredClasses は class / className 属性を解析し、CSS ファイルや <style> で定義されていないクラスを検出する。:global() 疑似セレクタにも対応し、診断には import ツリーの情報が含まれる。
noRestrictedDependencies は e18e の replacements.fyi データを参照し、非推奨・重量級・ネイティブ代替がある依存関係を検出する。
プラグインとフォーマッタ
GritQL プラグインは includes で glob と否定 glob によるパス指定が可能になった。プラグインは => でコード fix を宣言でき、fix_kind で "safe" または "unsafe" を選べる。デフォルトは unsafe で、--write --unsafe 時に適用される。
フォーマッタに delimiterSpacing オプションが追加され、JavaScript・CSS・JSON・GraphQL の区切り文字まわりにスペースを挿入できる。有効化は次のとおりである。
{
"formatter": {
"delimiterSpacing": true
}
}LSP・CLI・設定
Language Server は go-to definition に対応し、JavaScript の変数・型・JSX コンポーネント、HTML 系ファイルの CSS クラスやコンポーネント参照を定義元へジャンプできる。
lint、format、check に --watch が追加され、プロジェクト内のファイル変更に応じて診断をリアルタイム表示する。watch モードは読み取り専用で --fix や --write は使えない。挙動は環境変数 BIOME_WATCHER_KIND と BIOME_WATCHER_POLLING で調整できる。
linter.rules.preset で既定ルールセットを選べるようになり、"all" プリセットは nursery を除く全ルールを有効化する。従来の recommended は非推奨となり、biome migrate --write で preset: "recommended" へ移行する。
スタンドアロンインストール向けに biome upgrade が追加された。Homebrew 版は brew upgrade biome、手動バイナリは GitHub の最新リリースから更新し、npm 利用者にはパッケージマネージャでの更新を案内する。
CLI の --reporter concise は診断を 1 行形式で短く出力し、コーディングエージェント向けのトークン削減を意図している。
その他
lint と check は約 13% 高速化された。.svg ファイルのフォーマットと lint、organizeImports の bare import ソートや :STYLE: マッチャー、pnpm catalog 解決(javascript.resolver.experimentalPnpmCatalogs)、.git/info/exclude の VCS 無視対応、Vue 構文を通常 .html で解析する html.parser.vue なども含まれる。ルール改名は noFloatingClasses → noUnusedInstantiation、useFind → useArrayFind、useSpread → useSpreadOverApply、noMultiStr → noMultilineString の 4 件である。