🧹

RiderでPythonのコードを保存時に自動整形する

2024/05/17に公開

概要

空文字や改行の数について、Riderの機能で修正候補が上がる事がありますが、
都度修正するのが面倒なので、保存時に勝手に整形するように調整します。

環境

OS: Windows 11
Rider: 2023.3.5
Python: 3.8.19

準備

整形ツールのインストール

black という自動整形ツールをインストールします。

pip install black

ファイル監視プラグインの導入

File > Setting で設定を開き
Plugins 項目を選択。

検索欄に File wa 等と入力すると
File Watchers というプラグインが見つかると思うので、
インストールします。

手順

設定を開く

File > Setting で設定を開く

File Watcher に項目追加

先ほどプラグインを導入しているので、

Tools > File Watcher という項目があります。
こちらを開き、 左上の ボタンを押して、
<custom> の項目を選択してください。

File watcher の設定

File Watcher の設定画面が開くので、それぞれ以下のように設定してください。

File type: Python
Scope: Current File
Program: black.exe のパス (環境によって異なります)
自分の場合は、anacondaでGymRetroEnvという環境を作ってそこに追加していて以下にツールの実行ファイルがありました。
C:\Users\Develop\.conda\envs\GymRetroEnv\Scripts\black
Arguments: --quiet $FilePathRelativeToProjectRoot$
Working directory: $ProjectFileDir$
Advanced Options: 全部チェックを外す
Auto-save … にチェックを入れてると、編集中にも整形してくれますが煩わしいので、チェック外してます。

設定が終わったら、OKで確定してください。

動作確認

以上で設定は完了です。
試しに、pythonのファイルを開いて、無駄なスペースや空行などを入力した後、
保存時にそれらが調整されるか確認してください。

自動補完の除外

視認のしやすさなどを優先してコードを調整した時に、
自動整形がかかると逆に困る場合があります。

そんな時には以下のように、 #fmt: off#fmt: on でくくると、
当該範囲が自動整形の対象外となります。

# fmt: off
self.reward_map = np.array([
    [0, 0, 0, 1.0], 
    [0, None, 0, -1.0], 
    [0, 0, 0, 0]
])
# fmt: on

Discussion