Emacs から Ruff を使う
この記事では Emacs から Ruff を使う方法を紹介します。
Ruff
Ruff とは
Ruff は Rust で書かれた高速な Python の Linter & Formatter です。Flake8 や isort を置き換えることができます。 Ruff の詳しい紹介は、検索していただくと素晴しい記事がたくさんありますので、そちらをご覧いただくのが良 いかと思います。
以下では、インストールと設定を簡単に紹介します。
Ruff のインストール
Ruff のインストール方法は公式ドキュメントにあるように pipを始めとし、様々なインストール方法があります。 私は、以前ブログ書いたように、pipx で pip でインストールできるコマンド群を管理しているので、以下のようにインストールします。
pipx install ruff
# 公式ドキュメント通り、pip でインストールするなら
# pip install ruff
Ruff の設定
Ruff は500以上のlintルールをサポートしており、isort や Flake8 等のルールも Ruff で再実装されています。また、lintルールの中には自動修正可能なものもあります。また、Black と同等の Code fomatter としての利用できるようになっています。
公式ドキュメントによると、デフォルトでは、Flake8 の E および F ルールを有効しており、使い始めたばかりであれば、デフォルトのルールセットが最適とのことです。
私はどんなルールがあるのか知りたいので、基本的にはすべてのルールを有効化して、適用しないルールを都度追 加するようにしています。
lintルールの設定ファイル
Ruff は、pyproject.toml、ruff.toml、または .ruff.toml ファイルで設定します。 設定ファイルが色々なディレクトリ階層にある場合は、Ruff を適用するPythonファイルに対して、ディレクトリ階層の中で「最も近い」設定ファイルが参照されます(pyproject.toml は Ruff の設定がなければ無視されます)。
ディレクトリ階層内に設定ファイルが見つからない場合、Ruff はデフォルトの設定を使用し、ユーザ固有の設定ファイルが${config_dir}/ruff
内に存在する場合、そのファイルがデフォルト設定の代わりに使用されます。${config_dir}
はここに記載のあるようにOSによって異なりますので、自身の OS に従って適切に配置します。
詳しい設定ファイルの参照ルールは公式ドキュメントのpyprojecttoml discoveryをご参照ください。