[Python][静的解析] コピペで使えるVSCodeの自動フォーマット設定

VSCodeでコピペで使えるpythonの自動フォーマットをする設定についてまとめます。

静的解析ツールについては以下の記事にも書いています。

VScodeでPythonの自動フォーマットする設定ファイル


必要なモジュールをインストール。

pip install black flake8 mypy

VSCodeのプラグインのPylance、必要ならautoDocstringもインストールしてください。

autoDocstringはpythonのコメントのdocstringを自動生成するプラグインです。

あとは以下のファイルをPythonプロジェクトの.vscode/settings.jsonに配置して必要なとこ修正するだけでOK。

{
  // 保存時のフォーマットを有効にする
    "": {
      "editor.tabSize": 4,
      "editor.formatOnSave": true,
      // importの自動整形
      "editor.codeActionsOnSave": {
        "source.organizeImports": true
      },
    },

    // 保存時のフォーマットにblackを使用するようにする
    "python.formatting.provider": "black",
    // オプションを指定,不要なら空にする
    // オプションで設定ファイル指定可能
    "python.formatting.blackArgs": [
      "--config=pyproject.toml"
    ],

    // 型チェックはPylanceかmypyどちらか一方で良い
    // mypyの設定
    "python.linting.mypyEnabled": true, 
    // オプションを指定,不要なら空にする
    // config fileの指定はできなそう
    "python.linting.mypyArgs": [],
    // pylanceの型チェック設定
    "python.analysis.typeCheckingMode": "basic",

    // flake8の有効化、設定
    "python.linting.flake8Enabled": true,
    // オプションを指定,不要なら空にする
    // config fileの指定はできなそう
    "python.linting.flake8Args": [
      "--ignore=E203,E266,W503,",
      "--max-line-length=88",
      "--max-complexity=10"
    ],

    // (これはどっちでもいい)docstringをgoogleフォーマットにする
    // https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html
    "autoDocstring.docstringFormat": "google",
}

設定内容

保存時にblackを用いて自動フォーマット、importの修正をします。

また、flake8を有効にしているのでpep8に違反しているコードは警告を出してくれます。

型チェックはPylance内部の機能かmypyどちらかを有効にすればOK。私はPylanceの方だけ使ってます。

blackは設定ファイルを指定できるが、flake8, mypyは調べた感じできなそう。設定ファイルと同じオプションを指定する必要がある。

コメントを残す

メールアドレスが公開されることはありません。