【VSCode】拡張機能「Black Formatter」の導入と使い方

VSCodeの拡張機能「Black Formatter」の使い方を解説します。

拡張機能「Black Formatter」とは

VSCodeの拡張機能「Black Formatter」は、Pythonのコーディング規約(PEP 8)に準拠した自動整形を行ってくれます。コーディング規約とは、「コードを書くときのルールや推奨事項」をまとめたドキュメントです。PEP 8はPython公式のコーディング規約です。
以下は、Black Formatterで整形したときの実行例です。

【整形前】

def foo(bar,  baz=  None):
    x= [1,2,3,
4,5 ]
    if(bar and  baz):
       return{x:bar+baz}
    return    x

【整形後】

def foo(bar, baz=None):
    x = [1, 2, 3, 4, 5]
    if bar and baz:
        return {x: bar + baz}
    return x

引数のスペース、リスト要素のカンマ区切り&改行、インデント幅や波括弧周りの一貫性などが「Black Formatter」によって自動的に修正されています。設定がほとんど不要で、Blackが決めたスタイルに従ってコードを整形します。「黒は他の色と混ざらない」ことから、スタイルの統一性を重視しているという意味で「Black」と名付けられました。

「Black Formatter」の主な特徴は以下のとおりです。

  • 人気のフォーマッターで、「Pandas」や「scikit-learn」など、主要なPythonライブラリでも採用されている。
  • 88文字以内の行長を推奨(PEP8の79文字より少し長め)。
  • インデントは、スペース4文字(PEP 8と同じ)。
  • クラス定義や関数定義の間は、2行の空白行を入れる。クラス内メソッドの間は1行。(PEP 8と同じ)
  • ダブルクォーテーションを基本に統一(シングルクォーテーションも自動で変換されます)。
  • 並列実行や未変更ファイルのスキップなど、処理速度にも配慮
  • 設定ファイル不要でも使えるが、settings.jsonで細かい調整も可能。
  • 拡張機能版は、Python環境ごとにpipコマンドでblackをインストール (pip install black) する必要がない。

本ページでは、VSCodeの拡張機能「Black Formatter」の導入方法と使い方について解説します。

拡張機能のインストール

① Visual Studio Code を起動します。

② 左側の 拡張機能アイコン(四角が4つ) をクリックします。

③ 検索バーに「Black Formatter」と入力します。

④ 「Black Formatter」を選択して [インストール] をクリックします。

デフォルトフォーマッターの設定と使い方

「Black Formatter」をVSCodeのデフォルトのフォーマッターに設定し、ショートカットで自動整形できるようにする方法を解説します。

① VSCodeの上部メニューから、「ファイル」 → 「ユーザー設定」 → 「設定」を開きます。

② 「Editer:Default Formatter」で「Black Formatter(ms-python.black-formatter)」を選択します。

③ Pythonファイルを開き、ショートカットキー「Shift + Alt + F」を押してコードが自動整形されたら正常に動作しています。
(※macOSは「Shift + Option + F」)

【サンプルコード(整形前)】

def foo(bar,  baz=  None):
    x= [1,2,3,
4,5 ]
    if(bar and  baz):
       return{x:bar+baz}
    return    x

ファイル保存時に自動整形

ショートカットでいちいち整形するのが面倒な場合、「ファイル保存時に自動整形」する設定が便利ですので、やり方を解説します。

① VSCodeの上部メニューから、「ファイル」 → 「ユーザー設定」 → 「設定」を開きます。

② 「Editer:Format On Save」にチェックを入れます。

③ Pythonファイルの保存時に自動で整形されたら成功です。
自動整形を無効化したい場合は、チェックを外しましょう。

【サンプルコード(整形前)】

def foo(bar,  baz=  None):
    x= [1,2,3,
4,5 ]
    if(bar and  baz):
       return{x:bar+baz}
    return    x

設定ファイルでの調整方法

「Black Formatter」に関する細かい設定は、設定ファイル(settings.json)を修正することで行います。
前述の「デフォルトフォーマッターの設定」や「ファイル保存時に自動整形」についても設定ファイルの修正でも対応可能です。

① ショートカット「Ctrl + Shift + P」でコマンドパレットを表示し、以下を入力してEnterを押します。
※Macは「Cmd + Shift + P」

Preferences: Open User Settings (JSON)

③ 以下をsettings.jsonに追加します。

{
    "[python]": {
        // BlackをPythonのデフォルトフォーマッターに指定
        "editor.defaultFormatter": "ms-python.black-formatter",
        // 保存時にBlackフォーマッターを適用
        "editor.formatOnSave": true
    },
    // 1行の文字数の上限を120文字に設定
    "black-formatter.args": ["--line-length=120"],
    // シングルクオートの文字列をダブルクオートに変換しない
    "black-formatter.args": [
        "--skip-string-normalization"
    ],
}

④ これにより、Pythonファイルを保存するたびにPEP-8に準拠した自動整形が適用されます。

関連ページ

【VSCode超入門】基本的な使い方から応用例まで解説
VSCode(Visual Studio Code)の基本的な使い方から応用例まで入門者向けに解説します。
Python超入門速報
【Windows超入門】初心者から上級者までテクニックを解説
Windowsの基本操作と設定基本操作Windowsの基本操作便利なショートカット大全集画面のカスタマイズカスタマイズWindows 11の右クリックメニューを昔のスタイル(Windows 10)に戻す方法Windowsを高速化・軽量化する...

コメント