web-dev-qa-db-ja.com

ReSharper-単一行に中括弧を強制する

次のように、中括弧が単一行のコードブロックを囲むために使用されていない場合、C#コードを修正するようにReSharperを構成できますか。

if (blnSomeCondition)
   DoSomething();  // complain

if (blnSomeOtherCondition)
{
   DoSomethingElse(); // don't complain
}

ありがとう

91
Booberry

Gorohorohのソリューションは近いですが、「複数行にブレースを使用する」を選択する代わりに、「ブレースを追加」を選択して、単一行のシナリオでブレースを追加する必要がありました。そして、すべてのシナリオをキャッチするために、「Force Braces」の下の6つのドロップダウンすべてでそれを設定する必要がありました。

alt text

私が本当に望んでいたのは、ルールに違反したときに黄色の警告または赤色のエラーを実行するようにReSharperを設定できるようにすることでしたが、それを行う方法が見つかりませんでした。 Gorohoroh氏のとおり、Cleanup Codeには多くの機能があります。ルール違反を1つずつ確認して修正するオプションが必要です。

ご協力いただきありがとうございます!

28
Booberry

ReSharperの新しいバージョン(2016.x)では、コードスタイルに移動されました。 ReSharper 2016.1.1

UPD1:ReSharper 2017.xの場合ReSharper 2017.1.2

UPD2:ReSharper 2018.xの場合ReSharper 2018.1

UPD3:ReSharper 2019.xの場合ReSharper 2019.1

135
Sergey

Ryanは正しいです(ただし、彼のリンクはR#2.0ヘルプを参照していることに注意してください)。具体的な手順は次のとおりです。

  1. ReSharper>オプション>言語> C#>書式設定スタイル>ブレースレイアウトに移動します
  2. 「「if-else」ステートメントのブレース」を「複数行にブレースを使用する」に設定します
  3. 変更を保存した後、再フォーマットするスコープを選択します(コード選択、ファイル、フォルダー、プロジェクト、ソリューションなど)。
  4. ReSharper>ツール>コードのクリーンアップを選択します。
  5. 利益。

コードクリーンアップは多くのことを実行し、コードの書式設定に関連しているだけではないことに注意してください(詳細は http://www.jetbrains.com/resharper/webhelp/Code_Cleanup__Index.html を参照してください)。賢く機能します。

34
Jura Gorohovsky

ReSharper 2016.2.2の場合。

クリーンアップのためにプロファイルを編集する必要があります。適切な項目は「if-else」、「for」、「foreach」、「while」、「do-while」、「using」の単一ステートメントの括弧の追加/削除と呼ばれます。このアイテムは、C#=> Code stylesアイテム内にあります。

アイテムがチェックされている場合、中括弧が追加されます。チェックされていない場合、中括弧は削除されます。

注:追加は今は機能しません(理由はわかりません-おそらく、ReSharperのあまりにも新鮮なバージョンです)。ただし、上記のチェックボックス単一のステートメントを囲む既存の中括弧は削除されません。

PD:問題は解決しました。この投稿の下の最初の2つのコメントを参照してください。

8
Jordan

スクリーンショットのように設定できます。

force curly brackets for a single line of code

PS:Imgur.comのURLの表示に問題がある場合-> https://ibb.co/b4xijT

1
Alper Ebicoglu

他の誰かが時間を節約するのに役立つ場合は、私の会社のあるマシンで、彼の投稿の質が高いにもかかわらず、セルゲイのアドバイスに従うだけでは十分ではありませんでした。

関係するセットアップ(VS2017、R#2019、両方とも最新)では、R#側のこれらの設定は既に良好でしたが、Visual Studioオプションで変更する必要がありました:

  • [オプション]ウィンドウで、テキストエディター-> C#->コードスタイル->書式設定->一般に移動します。
  • フォーマット中に追加のコードクリーンアップを実行する」および「単一行制御ステートメントのブレースを追加/削除する
0
AFract