Rider for Unityで個人的にオススメする設定

Riderは`VS Code`や`Atom`といったIDEと違い，プラグインをダウンロードしなくてもデフォルトで多数の機能が入っています。
ただ中には「個人的にはこれは要らなかった」と思う設定も多数あるので，気持ちよくRiderを使用する為には詳細な部分の設定までいじる必要があります。

しかし自分で一から検索をしていくのでは時間を多く使ってしまうので，本記事では私が行っている設定を公開します。


# 注意
Riderの設定画面を開くまでの動作は共通なので記事内では説明を省きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/26448cb5-47b6-7d43-4456-174dce9f949c.png)
※ Macでは`Settings`の部分が`Preference`となっています。


# 設定


## 空白表示
Editor > General > Appearance

`Show whitespaces`にチェックを入れると空白表示がされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/54556fb9-9d97-7fcd-b0ee-2b4fba117e7d.png)

**設定理由**

- 現在の階層がより分かり易くなる。
- 全角入力をした際に強調表示される。


## アトリビュートの位置を変更
Editor > Code Style > C# > Line Breaks and Wrapping

`Arrangement of Attributes`内の選択欄を`Never`にすることで，アトリビュートを全て２行で表示するようにしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/ea5b7c02-107f-d404-7fe5-13fc08cfd36e.png)
尚この際`Keep existing arrangement of attributes`の設定もオンにしてください。
この設定をしないと意識してアトリビュートの位置を変更した場合であっても，上記で設定したデフォルトの設定に位置がリセットされてしまいます。

**項目の挙動の違い**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/14adc0ba-6374-731d-1177-12b3f46c72ef.png)
**Never:** どのようなコードでも行を分けて表示。
**If owner is singleline:** 複数行に渡るコードだった場合はアトリビュートを分けて表示，一行で書かれたコードだった場はシングルラインで表示。
**Always:** どのようなコードでも一行で表示。

**設定理由**

- デフォルトの設定だとアトリビュートを多数使用した場合，ひたすら横に長くなってしまうのでオフ。


## インデントの設定を変更
Editor > Code Style > C# > Tabs, Indents, Alignment

この`Tabs, Indents, Alignment`の中でインデントを超細かく指定できます。
自分の場合は`Align Simlar Code in Columns`の`End comments`という設定にチェックを入れ，コメントを横並びにした際の終了位置を揃えています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/aeb63c3c-baa4-df4b-d4d1-892cf197d820.png)

**設定理由**

- コメントの開始位置がバラバラだと高低差によって目が疲れる。


## varへの推奨表示をオフ
Editor > Code Style > C# > Syntax Style

`'var' Usage in Declarations`項目の下記３つを`Do not show`に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/9aa6109f-b172-df8f-2534-98429d558edb.png)

**設定理由**

- パッと見で型が分からないような書き方しててもvarに推奨されるので，可読性が著しく低下する。


## privateの使用を強制しない
Editor > Code Style > C# > Syntax Style

`Modifires`の`Prefer explicit/implicit private modifier for type members`項目から設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/8d49a810-bfa0-1c24-b9c9-a0a368f51ee7.png)
左側の項目欄を`Implicit`にすると，変数を宣言した時にprivateが自動で追加されるのを防げます。
右側の項目欄を`Do not show`に設定すると，privateが使用されていなかった場合でも緑の波線を表示しないようにします。

自分の場合はアクセス範囲は必ず記述したいので左側の項目は`Explicit`に，他人のコードを見た時に波線びっしりは嫌なので右側の項目は`Do not show`に設定しています。


## インレイヒント（引数名）を非表示にする
Editor > Inlay Hints > General

Default Visibilityを`Show Always`から`Push-to-Hint`に設定することで，下記のような引数が表示されるインレイヒントという機能を無効にしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/ccad466c-812c-0180-b739-f8cf69481736.png)
**項目の動作の違い**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/afdcb85b-c651-9cd6-f4ba-7a028fe20d71.png)
**Show Always:** インレイヒントを常に表示。
**Push-to-Hint:** 基本はインレイヒントを非表示。『Ctrl』キーを押している間のみインレイヒントを表示。
**Never Show:** インレイヒントを常に非表示。『Ctrl』キーを押しても無効。

**設定理由**

- コードがひたすら横に長くなる。
- 引数の途中で改行を入れるとコードの開始位置がずれて見にくくなる。
- 開始位置を頑張って調整したとしても他のIDEやクラウド上ではずれて見える。


## if文のnest表示をオフにする
Editor > Inspection Settings > Inspection Severity > C#

検索欄に`nest`と入力し，`Language Usage Opportunities`の`Invert 'if' statement to reduca nesting`のチェックを外してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/f8c21a17-2a52-4e9f-31c4-61f891efb4f7.png)

**設定理由**

- 無理に階層を浅くすることで，逆に見にくくなる場合が存在する。


## readonlyの使用を強制しない
Editor > Inspection Settings > Inspection Severity > C#

検索欄に`readonly`と入力し，`Common Practices and Code Improvements`のチェックを全て外してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/df7ceb8c-d80d-870b-f76a-7afe01d91ec2.png)

**設定理由**

- 拡張エディタやライブラリを使用している箇所で`readonly`を使用すると，想定していた挙動と違うといったことが発生する。


## 名前空間の階層が違うことによる警告表示をオフ
Editor > Inspection Settings > Inspection Severity > C#

検索欄に`file`と入力し，`Namespace does not correspond to file location`のチェックを外してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/e1bd4204-b61c-07b9-2d78-37ce89b37aab.png)

**設定理由**

- ファイルの階層とnamespaceの階層が綺麗に一致している人等そうおらん。


# その他
今回は個人的にオススメする設定ということで記事を書いたので，
人によって意見が大きく割れそうな内容については記述していないです。

本記事で書かなかった内容については別の記事にて紹介するのでお待ちください。