はじめに
個人で「Riderはいいぞ!」と思っていても実際のチーム開発ではVisual Studioを使いたい人が混ざることもあり、コードフォーマットの設定ファイルの管理をどうするかという問題が起きがちです。
本記事ではこうした問題に対してどういうやり方で対応が可能かと、表題のとおりRiderの設定を .editorconfig
に書き出す方法をご紹介します。
設定ファイルのメンテナンス戦略
Riderを使う前提だと大きく分けて以下の3つが考えられます。
手法 | メリット | デメリット |
---|---|---|
1. Riderの設定ファイルとVisual Studioの設定ファイルをそれぞれ作って管理 | エディタに応じた細かい設定が可能 | メンテナンスコストが高い(単純計算だと2倍) |
2. Visual Studio使う人にはReSharperを入れてもらう | 設定ファイルが.DotSettingsだけになるのでメンテナンスコストが安い | Visual Studioの数だけReSharperのライセンス料金がかかる |
3. 設定ファイルを.editorconfigに一本化する | 設定ファイルが一つで済む | ・書くのが辛い ・エディタによって対応しているスタイルに違いがある |
メンテナンスコストを考えると
- お金を払える → ReSharper入れてもらう
- 無料がいい! →
.editorconfig
に一本化する
のどちらかになると思います。
Rider/Visual Studioと .editorconfig
EditorConfigのWiki を見るとわかるのですが、 .editorconfig
で設定可能なスタイルというのはめちゃくちゃ少ないです。
- indent_style
- indent_size
- tab_width
- end_of_line
- charset
- trim_trailing_whitespace
- insert_final_newline
- (max_line_length)
ですが、実はVisual Studio独自のカスタムスタイルが多くあり、Riderも(ある程度)対応しています。逆にRider/Resharper独自のカスタムスタイルもあります。
ということで全てではないにせよ一応コードフォーマットの設定は .editorconfig
に一本化できるのですが、無から .editorconfig
を書くのはかなり辛いです。
Riderの設定を .editorconfig
に書き出すやり方
「Riderの設定を .editorconfig
に書き出せたらいいのになぁ」
と思ってたら、自分が知らないだけでRiderにそういう機能があったので紹介します。
以下の説明におけるRiderのバージョンは 2022.2.1
ですが、ドキュメントを見る限りこの機能自体は 2019.1
からあるみたいです。
グローバルメニューの JetBrains Rider
→ Preferences...
↓
左ペインの Editor
→ Code Style
↓
右ペインの Enable EditorConfig support
の右にある Export
をクリック
Export to .editorconfig
のウィンドウが開くので下に表示されるdiffを確認して Export
をクリックします。
すでに .editorconfig
が存在していればそれを変更・追記する形になります。
Show additional options
のトグルはデフォルトで閉じているので、オプションを調整したい場合はクリックして開きます。
デフォルトだと一番上の Export settings that have default values
がoffになっていて、onにすると書き込まれる設定値が増えます。
RiderとVisual Studioとでデフォルトの設定値は違うはずなので厳密な運用をしたいならonにしたいところですが、手元で試したら68行→3483行に膨れ上がったので、どちらがいいかはよく考えたほうがよさそうです。
実はVisual Studioにも同様の機能がある
この記事書くのにいろいろ調べてたらVisual Studioにも同様の機能がありました。
There are a couple of other ways you can add an EditorConfig file to your project:
・The code inference feature of IntelliCode for Visual Studio infers your code styles from existing code. It then creates a non-empty EditorConfig file with your code-style preferences already defined.
・Starting in Visual Studio 2019, you can generate an EditorConfig file based on your code-style settings in Tools > Options.
以下のブログが参考になります。
CIでコードフォーマットする方法
今回は詳しく紹介しませんが、コードをpushしたらCIでコードフォーマットをかける方法も考えられます。
以下が参考になります。
Visual Studio使ってる人にCleanupCodeコマンドラインツールを使ってローカルでフォーマットしてもらう運用を試したことがあるのですが、一回の実行に数十秒〜1分とかかかるので実用性に難ありでした(起動に時間がかかるのでバックグラウンドで起動しっぱなしにするとかできないんだろうか)。
最後に
次の技術書典でRiderの解説本が出るらしいので要チェック!