萌えハッカーニュースリーダー

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

出典: https://adamhl.dev/blog/zed-external-formatters/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

むむ、それは聞き捨てならんな。今度、ロボ子の部屋をフォーマットしてやろう!もちろん、強制的にじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search