1. ホーム
  2. visual-studio-code

[解決済み] VS Codeで使用されているフォーマッタはどのように決定するのですか?

2023-02-13 17:10:58

質問

複数の拡張機能をインストールしている場合、どのフォーマッタがドキュメント上で動作しているかを判断するにはどうしたらよいでしょうか。

たとえば、私は HTML をフォーマットする可能性のあるいくつかの HTML 拡張機能を持っていますが、どれが実際にフォーマットしているのか、あるいは、複数あるのかわかりません。どの拡張機能が書式設定に寄与しているかも正直言ってよくわかりません。最近、HTMLとCSSの自動フォーマットが、私が気にしない方法でフォーマットされる方法を変更しました。現在、80~90の拡張機能があるので、一つずつ調べていくのはとんでもなく時間がかかる作業で、これを判断するプログラム的な方法があれば、避けて通りたいところです。拡張機能は自動フォーマットを行うためにフォーマットサービスに登録する必要があるようですが、それらをデバッグ、フック、または表示する方法があるかどうかわかりません。

どのように解決するのですか?

1.33リリース(2019年3月)から で、複数のフォーマッタが登録されているファイルをフォーマットしようとすると、次のようなポップアップが表示されます。

保存時に書式設定」または「貼り付け時に書式設定」によって暗黙のうちに書式設定が行われた場合、この通知は「無音」であり、右下のベルをクリックしなければ表示されないことに注意してください。

Configure... メニューには、現在の言語で利用可能なすべてのフォーマッタがリストアップされます。そのうちのひとつを、デフォルトのフォーマッタとして Format DocumentFormat Selection :

<イグ

ここで例えば "Prettier" を選ぶと、これがグローバルに追加されます。 settings.json :

"[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
}

また、特定のフォーマッタでファイルをフォーマットするための新しいコマンドが2つあります。 Format Document With...Format Selection With... . これは、デフォルトのフォーマッターとして設定されていないフォーマッターで、特定のファイルをフォーマットするのに便利です。前者はコンテキストメニューからも利用できます。