複数の拡張機能がインストールされている場合、ドキュメントでどのフォーマッタが実行されているかをどのように判断しますか?
たとえば、HTML をフォーマットする HTML 拡張機能がいくつかありますが、実際にフォーマットしているのはどれか、または複数がフォーマットしているのかはわかりません。正直なところ、どの拡張機能がフォーマットに寄与しているのかさえわかりません。最近、HTML と CSS の自動フォーマットにより、フォーマット方法が私の気に入らない方法で変更されたため、どの拡張機能がこれを行っているのかを知りたいです。そうすれば、設定を変更したり、拡張機能を無効にしたりできるようになります。現在、80~90 個の拡張機能があるため、1 つずつ確認するのは途方もなく時間のかかるプロセスであり、プログラムでこれを判断する方法があれば避けたいです。拡張機能は、自動フォーマットを行うためにフォーマット サービスに登録する必要があるようですが、それらをデバッグ、フック、または表示する方法があるかどうかはわかりません。
ベストアンサー1
1.33リリース(2019年3月)から複数のフォーマッタが登録されているファイルをフォーマットしようとすると、次のようなポップアップが表示されます。
「保存時にフォーマット」または「貼り付け時にフォーマット」によって暗黙的にフォーマットが行われた場合、通知は「サイレント」になることに注意してください。つまり、通知を表示するには右下のベルをクリックする必要があります。
メニューConfigure...
には、現在の言語で使用できるすべてのフォーマッタが一覧表示されます。そのうちの 1 つを、およびのデフォルトのフォーマッタとして選択できFormat Document
ますFormat Selection
。
ここでたとえば「Prettier」を選択すると、これがグローバルに追加されますsettings.json
。
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
Format Document With...
特定のフォーマッタを使用してファイルをフォーマットするための 2 つの新しいコマンドともありますFormat Selection With...
。これは、デフォルトのフォーマッタとして設定されていないフォーマッタを使用して特定のファイルをフォーマットする場合に便利です。前者はコンテキスト メニューからも使用できます。