🛠️

RuffのVSCode拡張機能設定

2024/04/22に公開

はじめに

最近までflake8 black isortなどを使ってPythonのコードをカキカキしていたが、プロジェクトがひと段落して、新しいプロジェクトの環境構築することになった
以前から気になっていたRuffを使ってみようと思ったのがきっかけ

書くこと

  • VSCodeでRuffのFormatOnSave(自動フォーマット)ができるようになるまでの手順

書かないこと

  • VSCode自体の環境構築方法
  • pythonプロジェクトの環境構築方法
  • Ruffの詳細な説明など

💻my環境

言語・ライブラリなど バージョン
PC MacBook Pro M1 Pro
python 3.10.13
poetry 1.6.1
ruff拡張機能 v2024.20.0
VSCode 1.88.1

設定方法

拡張機能インストール

VSCodeの拡張機能でRuffと検索し、インストール

拡張機能 Ruff

settings.json

設定ファイルは.vscode/settings.jsonに書き込む
ない場合は作成してもらえればよい

.
├── .vscode
│   └── settings.json  # こいつ!
├── README.md
├── poetry.lock
├── pyproject.toml
└── src
    └── project_name
        ├── __init__.py
        └── main.py
settings.json
{
    "[python]": {
        "editor.formatOnSave": true,
        "editor.codeActionsOnSave": {
            "source.fixAll": "explicit",
            "source.organizeImports": "explicit"
        },
        "editor.defaultFormatter": "charliermarsh.ruff"
    }
}

pyproject.toml

ruffの詳細な設定は、pyproject.tomlruff.tomlでできるようだ参照:Configuring Ruff
詳細はこれから調べるとして、今までのflake8 black isortの代替がとりあえずできるように設定してみた。設定内容は以下。

pyproject.toml

[tool.ruff]
exclude = [
    ".venv",
    ".ruff_cache"
]
line-length = 119
indent-width = 4
target-version = "py310"

[tool.ruff.lint]
select = [
    "F", # Flake8
    "B", # Black
    "I", # isort
    "E", # error
    "W"  # warning
]
ignore = []
fixable = ["ALL"]

できた!

色々できるようになっているはずだが、この状態でセーブすると

save前

行間のフォーマットや、importの削除とかやってくれた

save後

おわりに

Ruffのフォーマットが効くまでの設定をやってみました😎
やってみたというほどの内容はないですが、あれ入れてこれ入れてというのがなく、お手軽な点はポイント高い

Discussion