🗂
VS CodeでPythonコードをBlackで自動整形する方法(Prettierと共存)
はじめに
この記事では、Visual Studio Code (VS Code) を使用して、Pythonのコード整形ツールである Black を設定する方法を説明します。
pythonでコードを書く機会があり、prettierのようにコード整形できるものを探した結果、見つけました。
今後のための忘備録として書いています。
本記事では、他のファイルタイプ(JavaScript、HTMLなど)の整形には Prettier を使用し続けながら、Pythonファイル (.py) を保存する際にのみBlackで自動的にコード整形を行うことを目指します。
必要なもの
設定を行う前に、以下のツールが準備されていることを確認してください。
- VS Code: コードエディタ。
- Python: プログラミング言語。Pythonインストール時に付属する pip も使用します。
- Black: Pythonコードフォーマッター。次の手順でインストールします。
-
VS Code拡張機能:
-
Prettier - Code formatter
(esbenp.prettier-vscode
) -
Black Formatter
(ms-python.black-formatter
) -
Python
(ms-python.python
)
-
手順1: Blackをインストールする
まず、Blackをインストールします。
- ターミナル(コマンドプロンプト、PowerShell、またはVS Code内のターミナルなど)を開きます。
- 以下のコマンドを実行します。
pip install black
手順2: VS Codeに必要な拡張機能をインストールする
次に、VS Codeに必要な拡張機能をインストールします。
- VS Codeを開きます。
- 左側のアクティビティバーにある拡張機能アイコン(四角いブロックのアイコン)をクリックします。
- 検索バーを使用して、以下の3つの拡張機能を検索し、それぞれ「インストール」ボタンをクリックします。
-
Prettier - Code formatter
(識別子:esbenp.prettier-vscode
) -
Black Formatter
(発行元がMicrosoft、識別子:ms-python.black-formatter
) -
Python
(発行元がMicrosoft、識別子:ms-python.python
)
-
settings.json
) を編集する
手順3: VS Codeの設定ファイル (VS Codeの動作を制御する設定ファイルを編集します。
-
settings.json
を開く:- コマンドパレットを開きます (
Ctrl+Shift+P
または macOSではCmd+Shift+P
)。 - 「
Preferences: Open User Settings (JSON)
」を検索して選択します。
- コマンドパレットを開きます (
-
設定を追加・編集:
- 開かれた
settings.json
ファイルに、以下の内容を追加または既存の設定を編集します。ファイル全体の{}
の中に記述してください。
{ // デフォルトのフォーマッターとしてPrettierを指定します "editor.defaultFormatter": "esbenp.prettier-vscode", // ファイル保存時に自動でフォーマットを実行します "editor.formatOnSave": true, // Pythonファイル (.py) に適用される設定 "[python]": { // Pythonファイルの場合はBlack Formatterを使用します "editor.defaultFormatter": "ms-python.black-formatter" } // ※ 他にご自身で設定した項目があれば、それらは消さないでください。 // ※ 上記の設定を追記する際、項目の最後にカンマ(,)が必要になる場合があります。 }
- 開かれた
設定項目の説明:
-
"editor.defaultFormatter": "esbenp.prettier-vscode"
- VS Code全体のデフォルトのコードフォーマッターとしてPrettierを指定します。
-
"editor.formatOnSave": true
- ファイルを保存する操作を行った際に、設定されているフォーマッターによるコード整形を自動的に実行します。
-
"[python]": { ... }"
- このブロック内は、拡張子が
.py
のファイルを開いている場合にのみ適用される設定です。
- このブロック内は、拡張子が
-
"editor.defaultFormatter": "ms-python.black-formatter"
([python]
ブロック内)- Pythonファイルに対しては、デフォルトのフォーマッターとして
Black Formatter
拡張機能を使用するように上書きします。
- Pythonファイルに対しては、デフォルトのフォーマッターとして
確認方法
設定が正しく適用されているかを確認します。
- VS Codeで新しいファイルを作成し、
example.py
などの名前で保存します。 - 意図的に整形されていないPythonコード(例: インデントが不揃い、不要なスペースがあるなど)を記述します。
- ファイルを保存します (
Ctrl+S
またはCmd+S
)。 - コードがBlackのスタイルに従って自動的に整形されれば、設定は成功です。
まとめ
上記の手順により、VS CodeでPythonファイルを編集する際にはBlackが、それ以外のファイル(Prettierが対応するもの)ではPrettierが、それぞれ保存時に自動でコード整形を行うように設定できました。
コード整形を自動化することで、コードの可読性を保ち、開発効率の向上に繋がります。
Discussion