VSCodeで言語によって異なるフォーマッターを設定する
はじめに
最近 VSCode で開発している時に、「TypeScript はこっちのフォーマッターを使いたいけど、Python ではこっちのフォーマッターを使いたい。。。」となりました。
別々のワークスペースを開いてデフォルトのフォーマッターを設定したり、コミット前にフォーマッターを手動実行したりする方法もありますが、それをせずに 1 つのワークスペースで言語によってフォーマッターを変える方法を探していました。
色々調べた結果、VSCode の設定を変更することで対応できました!
その方法を書いていきます!
設定方法
以下で説明しますが、より詳しい内容を知りたい方は、VSCode の公式ドキュメントをご参照ください。
事前準備
ここでは TypeScript にPrettier
を、Python にblack
を設定します。
先にPrettier
とblack
の拡張機能をインストールしておいてください。
また、以下の手順では、ファイル保存時にフォーマッターが実行される設定(editor.formatOnSave
)も追加しています。必要なければ削除してください。
VSCode で設定を変更する方法
-
タブの「表示」->「コマンドパレット」を開く。
-
「基本設定: ユーザー設定を開く(JSON)」を選択。(英語だと「Preferences: Open User Settings (JSON)」となります)
-
settings.json
が開くので、以下を追加します。{ その他の設定... + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter", + "editor.formatOnSave": true + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + } }
-
VSCode を再度開きます。
devcontainer で設定を変更する方法
-
.devcontainer/devcontainer.json
に以下を追加します。{ その他の設定... "customizations": { "vscode": { "extensions": [ + "esbenp.prettier-vscode", + "ms-python.black-formatter" ], "settings": { + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter", + "editor.formatOnSave": true + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + } } } }, }
-
devcontainer を再度開きます。
最後に
今回は VSCode で言語によって異なるフォーマッターを設定する方法を書いてきました!
今回は TypeScript と Python のフォーマッターを設定しましたが、他の言語でも設定が可能です。
ぜひお試しください!🙇♂️
Discussion