ReSharper - force curly braces around single line

C#Resharper

C# Problem Overview


Can I configure ReSharper to fix C# code when curly braces are not used to surround a single-line code block, like this:

if (blnSomeCondition)
   DoSomething();  // complain

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

Thanks

C# Solutions


Solution 1 - C#

In the new version of ReSharper (2016.x) is has been moved to the Code Style. ReSharper 2016.1.1

UPD1: for ReSharper 2017.x ReSharper 2017.1.2

UPD2: for ReSharper 2018.x ReSharper 2018.1

UPD3: for ReSharper 2019.x ReSharper 2019.1

UPD4: for ReSharper 2020.x enter image description here

Solution 2 - C#

Ryan is correct (note however that the his link refers to R# 2.0 help). The specific procedure is as follows:

  1. Go to ReSharper > Options > Languages > C# > Formatting Style > Braces Layout
  2. Set "Braces in "if-else" statement" to "Use braces for multiline"
  3. After saving the changes, select a scope to reformat (could be a code selection, file, folder, project, solution - anything you want).
  4. Choose ReSharper > Tools > Cleanup Code.
  5. Profit.

Remember that Code Cleanup does numerous things and they're not only related to code formatting (see details at http://www.jetbrains.com/resharper/webhelp/Code_Cleanup__Index.html), so use the feature wisely.

Solution 3 - C#

Gorohoroh's solution is close, but instead of selecting "Use braces for multiline" I had to select "Add braces" to force it to add the braces in the single-line scenario. And I had to set that in all six dropdowns under "Force Braces" to catch all the scenarios:

alt text

What I was really hoping for was to be able to set up ReSharper to do a yellow warning or red error when the rule was violated, but I haven't found a way to do that. Because you're right, Gorohoroh, Cleanup Code does a lot of stuff and I'd like to have the option to look at and fix the rule violations one at a time.

Thanks for your help!

Solution 4 - C#

For ReSharper 2016.2.2.

You should edit your profile for cleaning up. The proper item is called Add/Remove braces for single statements in "if-else", "for", "foreach", "while", "do-while", "using". This item can be found within the C# => Code styles item.

If the item is checked, braces will be added; if unchecked, braces will be removed.

Note: adding doesn't work now (don't know why - perhaps, too fresh version of ReSharper). However, if you will uncheck the mentioned item, the existent braces around single statements will not be removed.

UPD: The problem solved, see the first two comments under this post.

Solution 5 - C#

You can configure it as seen on the screenshot.

force curly brackets for a single line of code

PS: for the ones to have problem seeing Imgur.com urls -> https://ibb.co/b4xijT

Solution 6 - C#

Just if it can help somebody else to save time, on one machine of my company, following Sergey advices was not enough despite the great quality of his post.

On concerned setup (VS2017, R# 2019, both up to date) these settings on R# side were already good, but I also had to modify it in Visual Studio options :

  • In Options window, go to Text editor -> C# -> Code style -> Formatting -> General,
  • Check "Perform Additional code cleanup during formatting" and "Add/remove braces for single-line control statement"

Solution 7 - C#

Well it is moved again. The new place is under the Syntax Style on version ReSharper 2020.01.

Go to ReSharper > Options > Code Editing > C# > Syntax Style > Braces

Here is the screen shot from ReSharper 2020.01

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBooberryView Question on Stackoverflow
Solution 1 - C#SerjGView Answer on Stackoverflow
Solution 2 - C#Jura GorohovskyView Answer on Stackoverflow
Solution 3 - C#BooberryView Answer on Stackoverflow
Solution 4 - C#JordanView Answer on Stackoverflow
Solution 5 - C#Alper EbicogluView Answer on Stackoverflow
Solution 6 - C#AFractView Answer on Stackoverflow
Solution 7 - C#curiousBoyView Answer on Stackoverflow