🗂

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をインストールします。

  1. ターミナル(コマンドプロンプト、PowerShell、またはVS Code内のターミナルなど)を開きます。
  2. 以下のコマンドを実行します。
    pip install black
    

手順2: VS Codeに必要な拡張機能をインストールする

次に、VS Codeに必要な拡張機能をインストールします。

  1. VS Codeを開きます。
  2. 左側のアクティビティバーにある拡張機能アイコン(四角いブロックのアイコン)をクリックします。
  3. 検索バーを使用して、以下の3つの拡張機能を検索し、それぞれ「インストール」ボタンをクリックします。
    • Prettier - Code formatter (識別子: esbenp.prettier-vscode)
    • Black Formatter (発行元がMicrosoft、識別子: ms-python.black-formatter)
    • Python (発行元がMicrosoft、識別子: ms-python.python)

手順3: VS Codeの設定ファイル (settings.json) を編集する

VS Codeの動作を制御する設定ファイルを編集します。

  1. settings.jsonを開く:

    • コマンドパレットを開きます (Ctrl+Shift+P または macOSでは Cmd+Shift+P)。
    • Preferences: Open User Settings (JSON)」を検索して選択します。
  2. 設定を追加・編集:

    • 開かれた 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 拡張機能を使用するように上書きします。

確認方法

設定が正しく適用されているかを確認します。

  1. VS Codeで新しいファイルを作成し、example.py などの名前で保存します。
  2. 意図的に整形されていないPythonコード(例: インデントが不揃い、不要なスペースがあるなど)を記述します。
  3. ファイルを保存します (Ctrl+S または Cmd+S)。
  4. コードがBlackのスタイルに従って自動的に整形されれば、設定は成功です。

まとめ

上記の手順により、VS CodeでPythonファイルを編集する際にはBlackが、それ以外のファイル(Prettierが対応するもの)ではPrettierが、それぞれ保存時に自動でコード整形を行うように設定できました。

コード整形を自動化することで、コードの可読性を保ち、開発効率の向上に繋がります。

Discussion