3
2

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でFlake8+autopep8からRuffに乗り換えました

Last updated at Posted at 2024-12-04

Ruffに乗り換えたので、導入手順を残しておこうと思います:v:

この記事では、VSCodeの拡張機能としてのRuffの導入方法に限定して説明します。
Pythonプロジェクトに直接インストールする方法については、別の記事をご参照ください。

Ruffって?

ざっくりいうと高速なLinter兼Formatterです。
以下の3つのパッケージをまとめたオールインワンの静的解析ツールみたいです。

  • Flake8
  • Black
  • isort

詳しくはこちら:point_down:

乗り換えた理由

深い理由はなかったですが、おもに以下点が気に入ったので、試しに使ってみました。

  • めっちゃ早い
  • LiterとFormatterを1つにまとめられる
  • 使ってないパッケージを自動で消してくれる

VSCodeに導入する方法

  1. Ruffの拡張機能をインストール

  2. デフォルトのFormatterをRuffに設定する
    設定からeditor.defaultFormatterで検索して、Ruffを選択する
    image.png

  3. 自動整形をオンにする
    設定からeditor.formatOnSaveで検索して、チェックを付ける
    image.png

  • UIからの設定が面倒な方はこちら
settings.json
{
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true
}

Flake8+autopep8から移行する方法

既存のLinterとFormatterの拡張機能を無効にするだけでOK:ok_hand:です。
不要になったら削除しちゃってください:thumbsup:

無効にする拡張機能

image.png

  • Linter
    • Flake8
    • Pylint
    • etc...
  • Formatter
    • autopep8
    • Black
    • isort
    • etc...

使い方

VSCodeに導入する方法を済ませれば、ファイルを保存するだけで自動整形されます。
ただし、以下の2つは手動で実行する必要があります。

  • 未使用のパッケージの削除
  • importの順番

設定の変更方法

Ruffでは自動的にシングルクォートをダブルクォートに変換してくれるのですが、私はシングルクォートのほうが好みなので、設定で変更しました。

フォーマットの設定方法は:point_down:このあたりに書いてありました。

準備

  1. pyproject.tomlを作成する
  2. 拡張機能に認識させる
    設定からruff.configurationで検索して、1で作成したファイルを指定する
    image.png
  • UIからの設定が面倒な方はこちら
setting.json
{
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true,
+   "ruff.configuration": "./pyproject.toml"
}

設定の変更

pyproject.toml
[tool.ruff.format]
quote-style="single"

シングルクォートの設定

個人的に切り替えて良かったポイント

切り替えて数日ですが、以下のポイントが良かったなと感じてます。
使っていく中で、他にいい所があれば追記していこうと思います。

とにかく早い

私はファイル保存時にしかフォーマットをかけないのですが、体感で早くなった気がします。
autopep8だと、0.2,3秒かかってる感じがしていましたが、Ruffだと保存した瞬間に終わってる感覚があります。

LinterとFormatterが一つになっている

Ruffを導入する前は以下の静的解析ツールを導入していましたが、Ruffは1つだけで済むのが嬉しいです:angel:

  • autopep8
  • Flake8
  • isort

pyproject.tomlを採用している

Flake8なんかは設定を変更したい場合は、専用の設定ファイルで定義する必要がありましたが、RuffはPythonの標準機能である、pyproject.tomlに設定を書けばよいのがとても嬉しいです。
プロジェクトが小さいうちは、1つのファイルにまとまっている方が管理しやすいので、結構嬉しいポイントでした。

プロジェクトが大きくなってきたらruff.toml.ruff.tomlに書くこともできるみたいです。
:point_down:このあたりに書いてありました。

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?