Как изменить форматирование рефакторинга Use Object Initializer в Resharper?

Когда я реорганизую следующую строку:

Employee e = new Employee();
e.First = "Frank";
e.Last = "Rizzo";

используя Resharper «Использовать инициализатор объекта», я получаю следующее:

Employee e = new Employee
             {
                 First = "Frank",
                 Last = "Rizzo"
             };

Я действительно ненавижу этот тип форматирования, потому что с более длинными именами объектов и переменных он просто выходит из-под контроля. Как я могу заставить Resharper делать следующее?

Employee e = new Employee
{
    First = "Frank",
    Last = "Rizzo"
};

person AngryHacker    schedule 20.01.2010    source источник
comment
Интересно, кому вообще пришла в голову эта идея. Никто в здравом уме не стал бы использовать такие отступы для инициализаторов.   -  person neo2862    schedule 20.12.2010
comment
У меня есть достоверные сведения, что это был кто-то в их левом уме.   -  person JYelton    schedule 24.12.2010
comment
нет нет не меняйте настройки Resharper по умолчанию, это прекрасно :-)   -  person Karsten    schedule 25.01.2011
comment
связанные: stackoverflow.com/questions/747351/   -  person mbx    schedule 26.08.2011
comment
Вот несколько полезных настроек форматирования Resharper… daniellang.net/5-resharper-settings -for-c4-coding   -  person Stephen Oberauer    schedule 05.06.2014


Ответы (3)


Вы можете очень близко подойти к тому, что хотите, в Resharper 4.5.

Resharper> Параметры

Языки> C #> Стиль форматирования> Другое

в разделе «Другое» снимите флажок «Отступить массив, объект и блок инициализатора коллекции».

person Handcraftsman    schedule 20.01.2010
comment
Использование этого с Версией 5 дает 1 отступ табуляции вместо 0. Лучше, чем ничего ... - person mbx; 26.08.2011
comment
нашел ответ на этот вопрос в stackoverflow.com/questions/747351/ - person mbx; 26.08.2011
comment
У кого-нибудь есть ответ по ReSharper 7.1.2? Он уже не отмечен, но отступы по-прежнему неправильные. - person John Jelinek; 22.04.2013

В Resharper 7 эта опция находится здесь:

Resharper / Option / C # / Стиль форматирования / Макет фигурных скобок установите для массива и инициализатора объекта значение: «На следующей строке (стиль BSD)»

person davidhq    schedule 30.04.2013
comment
Я не знаю насчет RS7, но в RS6 это определенно не то место - настройка в Форматирование ›Другое определяет, будет ли установлен здесь отступ относительно начала строки или оператора инициализатора. Предварительный просмотр каждой настройки покажет вам, что я имею в виду лучше, чем это можно объяснить словами :) - person Owen Blacker; 05.09.2013
comment
@David Krmpotic прав насчет RS7, и RS8 там же. - person SWalters; 04.02.2014
comment
В Reshaper 8 параметр, не допускающий отступа в инициализаторе объекта, - это Resharper / Option / C # / Formatting Style / Other / Align Multiline Constructs / Array, object and collection initializer. - person Graham Ambrose; 24.03.2015

В R # 2018.2.3 Это находится в:

ReSharper -> Options -> Code Editing -> C# -> Formatting Style -> Line Breaks And Wrapping -> Arrangement of Initializers

Здесь есть несколько настроек, с которыми вы можете поиграть, а именно:

  • Сохранить существующее расположение инициализаторов
  • Максимальное количество элементов инициализатора объекта и коллекции в одной строке
person Michal Ciechan    schedule 05.10.2018