Как предотвратить размещение пустых строк между однострочными операторами if? - PullRequest
0 голосов
/ 04 декабря 2018

В Rider (в основном автономный ReSharper для тех, кто не знает) я не могу понять, почему автоматическое форматирование кода помещает пустую строку между моими операторами if.

Перед форматированием:

string output = "";

if (i % 3 == 0) { output += "Fizz"; }
if (i % 5 == 0) { output += "Buzz"; }

if (output == "") { Console.WriteLine(i); } else { Console.WriteLine(output); }

После форматирования:

string output = "";

if (i % 3 == 0) { output += "Fizz"; }

if (i % 5 == 0) { output += "Buzz"; }

if (output == "") { Console.WriteLine(i); } else { Console.WriteLine(output); }

Я не могу на всю жизнь выяснить, для какой настройки я это делаю, но это довольно раздражает, когда у вас есть несколько похожих однострочных операторов ifсгруппированы вместе, и Rider / ReSharper все время вытесняет их.

1 Ответ

0 голосов
/ 05 декабря 2018

Требуемая настройка может быть найдена с помощью следующей навигации: File -> Settings -> Editor -> Code Style -> C# -> Blank Lines

В подразделе Blank Lines in Code, вы ищете After statements with child blocks.Причиной, по которой этот конкретный параметр добавляет строки в вашем случае, является включение фигурных скобок.

if (i % 3 == 0) { output += "Fizz"; }
if (i % 5 == 0) { output += "Buzz"; }

также может быть записано как

if (i % 3 == 0) output += "Fizz";
if (i % 5 == 0) output += "Buzz";

. Утверждения больше не будут считаться дочерними.блоки, и, следовательно, быть незатронутым.Если сохранение скобок является частью желаемого стиля, вы можете установить значение для After statements with child blocks в 0, и вы получите желаемое форматирование при использовании однострочных блоков.

...