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に準拠した自動整形が適用されます。
関連ページ



コメント