Python formatting on VSCode: 使用 Black 與 Isort 協助提升可讀性



前言

  • 最近改用 VSCode 開發 (之前看到微軟就先 pass … 現在才發現真香阿),為了保留 Pycharm 中的 PEP8 formatting 提示,改在 VSCode 上面安裝套件來做到。
  • 有先試過 PyLint,但是真的太嚴苛,目前打算 follow 的只有「class 中要寫 docstrings」。
  • 本篇說明在 VSCode 上面安裝 BlackIsort
  • 建議先使用 venv 區分環境。



說明

Black

  • 目的是提供 Formatting 的檢查與提示,方便我們依照標準的原則 (PEP8) 命名、或編排程式碼

Isort

  • 目的是自動依照標準的原則 (PEP8) 排序 import 的順序。
  • 標準的做法是:預設套件先、再來是第三方套件、最後則是自己專案用到的 class,三者中間空一行



設定 (VSCode)

  • 安裝 Isort:搜尋並點擊 install 即可

  • 安裝 Black:搜尋 Black Formatter 並點擊 install 即可

之後在專案資料夾下面,會產生 .vscode 資料夾,裡面有設定檔 settings.json,貼上以下內容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  "editor.formatOnSave": true,
  "python.formatting.provider": "black",
  "python.formatting.blackArgs": [
    "--line-length=99"
  ],
  "python.sortImports.args": [
    "--profile",
    "black"
  ],
  "[python]": {
    "editor.codeActionsOnSave": {
      "source.organizeImports": true
    }
  }
}

其中喜歡的長度上限可以自行調整,預設應該是 88

Note:

  • 可以在 .gitignore 中加入 .vscode 來避免加入追蹤。



REF

  1. https://blog.kyomind.tw/flake8-and-isort/
  2. 設定檔就是改自這:https://cereblanco.medium.com/setup-black-and-isort-in-vscode-514804590bf9

主題 StackJimmy 設計