問題
Zedで .vue ファイルを保存すると、CLIの biome format と微妙に異なるフォーマットが適用される。インデントや閉じタグ前の空白など、細かい差分が毎回発生する。
原因
.zed/settings.json で "formatter": "language_server" と指定すると、Vueファイルでは Volar(Vue LSP)が優先的にフォーマッタとして使われる。BiomeのLSPも動いているが、Volarが先に処理してしまう。
解決策
プロジェクトの .zed/settings.json でVue.jsのフォーマッタにBiome LSPを 名前指定 する。
{
"languages": {
"Vue.js": {
"formatter": {
"language_server": {
"name": "biome"
}
}
}
}
}
"formatter": "language_server" (名前なし)ではなく、"name": "biome" で明示することがポイント。
補足
external コマンドで pnpm biome format --stdin-file-path を呼ぶ方法でも動くが、LSP経由の方がZedのエコシステムに沿った正攻法。