LoginSignup
4
0

More than 1 year has passed since last update.

Riderのコードフォーマット設定は.editorconfigに書き出すことができる

Posted at

はじめに

個人で「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 RiderPreferences...
 ↓
左ペインの Editor → Code Style
 ↓
右ペインの Enable EditorConfig support の右にある Export をクリック

スクリーンショット_2022-09-07_16_49_42.png

Export to .editorconfig のウィンドウが開くので下に表示されるdiffを確認して Export をクリックします。

スクリーンショット_2022-09-07_16_56_51.png

すでに .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の解説本が出るらしいので要チェック!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0