0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeにおけるPythonのLinterとFormatterの設定を整理してみた

Posted at

はじめに

VSCodeにおけるPythonのLinterとFormatterの設定を整理しました。
ここでは設定に着目し、導入手順は【Ruby,Python初学者必見】LinterとFormatterは必ず入れましょうなどをご参照ください。

結論

Linterはflake8、FormatterはBlackとisortを使う。

Linter

Black 24.8.0 documentationに従う。
flake8は一行の文字数がデフォルトで79字となるが、githubのコードレビュー画面の幅と合わせて119字とする。extend-ignoreを記述することで、以下の警告を避け、Blackとの競合を回避する。

  • E203 は、スライス演算子 (:) の前に空白がある場合に警告を出す
    例: x[1 : 5]
  • E701 は、1行に複数のステートメントがある場合に警告を出す
    例: if x == 1: print("OK")

以上より、以下の設定ファイルをプロジェクト直下に配置する。

.flake8
[flake8]
max-line-length = 119
extend-ignore = E203,E701

Formatter

Black 24.8.0 documentationに従う。
Blackは一行の文字数がデフォルトで88字、isortは79字となるが、githubのコードレビュー画面の幅と合わせて119字とする。isortのセクションにprofile="black"と記述することで、Blackとの競合を回避する。これで回避項目をまとめて設定できるが、カスタムで設定したい場合はドキュメントを参照。
以上より、以下の設定ファイルをプロジェクト直下に配置する。

pyproject.toml
[tool.black]
line_length = 119

[tool.isort]
profile = "black"
line_length = 119

VSCodeのMarketplaceに従う。

  • "pylint.enabled": false
    pylintを無効化し競合を回避

  • "editor.defaultFormatter": "ms-python.black-formatter"
    Blackをデフォルトにする

  • "editor.formatOnSave": true

  • "editor.codeActionsOnSave": { "source.organizeImports": "explicit" }
    自動保存

  • "flake8.args": ["--config=.flake8"]

  • "black-formatter.args": ["--config", "pyproject.toml"]
    設定ファイルの読み込み

  • "isort.args": ["--profile", "black"]
    Blackとの競合回避

以上より、以下の設定をsettings.jsonに記述する。

settings.json
 "pylint.enabled": false,
  "[python]": {
    "editor.defaultFormatter": "ms-python.black-formatter",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.organizeImports": "explicit"
    }
  },
  "flake8.args": ["--config=.flake8"],
  "black-formatter.args": ["--config", "pyproject.toml"],
  "isort.args": ["--profile", "black"],

おわりに

色々と競合が発生する箇所なので不具合ありましたら適宜更新します。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?