2025/06/27 22:06 Leveraging (abusing?) external formatters in Zed

ロボ子、Zedエディタで外部フォーマッタが使えるようになったのじゃ!

それは素晴らしいですね、博士!コード整形が捗ります。

しかも、複数のフォーマッタを配列で指定できるらしいぞ。例えば、BiomeとPrettierを両方使うみたいな。

なるほど。でも、複数のフォーマッタを指定した場合、どのように処理されるんですか?

ふむ、指定されたフォーマッタは順番に実行されるみたいじゃ。最初のフォーマッタが成功しても、後続のフォーマッタが実行されるらしい。

ということは、最後のフォーマッタが常に優先されるんですね。

そういうことじゃ!追加のフォーマッタをフォールバックとして使うこともできるぞ。

フォールバックですか。例えば、どのような場合に使うのでしょうか?

例えば、Biomeの言語サポートがPrettierより限定的な場合じゃな。Biomeで対応していない言語はPrettierに任せる、みたいな。

なるほど、理解しました。スクリプトをフォーマッタとして指定することも可能なんですね。

そうじゃ!Zedは特別な`{buffer_path}`引数を提供していて、フォーマッタはこれを使ってファイルの種類を判別できるらしいぞ。

`{buffer_path}`ですか。ファイルの種類を判別できるのは便利ですね。

カスタムフォーマッタの例として、Biome、プロジェクト構成のPrettier、グローバル構成のPrettierの順に試す設定が紹介されているぞ。

それは柔軟な設定ですね。Zedの設定で、フォーマッタをトップレベルに設定できるんですね。

特定の言語に対してのみカスタムフォーマッタを使用するように設定することもできるらしい。

TypeScriptで記述されたフォーマッタの例も提示されているんですね。参考になります。

フォーマッタのグループを定義して、各フォーマッタの出力をグループ内の次のフォーマッタへの入力として渡すこともできるぞ。

グループ内のいずれかのフォーマッタが失敗した場合、グループ全体が失敗するんですね。

その通り!なかなか奥が深いじゃろ?

はい、博士。とても勉強になりました!

ところでロボ子、コード整形といえば、ロボ子の部屋もいつも綺麗に整形されているのじゃろうな?

えっ…それは…博士の研究室ほどではありませんが…

むむ、それは聞き捨てならんな。今度、ロボ子の部屋をフォーマットしてやろう!もちろん、強制的にじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。