RiderでPythonのコードを保存時に自動整形する
概要
空文字や改行の数について、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