Интервалы с ReSharper и инициализатором объекта

Когда я пытаюсь инициализировать объект с помощью Object Initializer, ReSharper всегда вставляет много пробелов.

public class Bar
{
    public void Adam()
    {
        var foo = new Foo
                      {
                          First = "yes",
                          Second                              = 
                      };
    }
}

Когда я заменяю ; символ после инициализатора, мой код будет отформатирован, как показано ниже:

public class Bar
{
    public void Adam()
    {
        var foo = new Foo
                      {
                          First = "yes",
                          Second = "no"
                      };
    }
}

Выполните следующие действия, чтобы воспроизвести проблему (спасибо, Пирс Майерс):

  • Например, поместите курсор в позицию с отступом после открывающей фигурной скобки (на пустой строке вы можете поместить курсор либо в самом начале строки, либо на уровне отступа, который Resharper/VS считает необходимым использовать)
  • Нажмите клавиши CTRL+ Пробел, CTRL+ALT+ Пробел или SHIFT+ALT+ Пробел. Он будет вставлять пробелы перед вашим курсором, чтобы дополнить его, но он также будет добавлять то же количество пробелов после вашего курсора, что неверно.

Кто-нибудь знает, что вызывает изначально сгенерированный пробел? Возможно, какие настройки я мог настроить неправильно?

1 ответ

Решение

Эта проблема была подтверждена на этих установках:

  • Resharper 5.1 VS2008 (Пирс Майерс)
  • Resharper 6.1 VS2008 (мной)

Однако проблема, кажется, исчезла на этих установках:

  • Resharper 6.1 VS2010 (Пирс Майерс)
  • Resharper 7.0EAP VS012 (мной)

Поэтому, похоже, что это ошибка ReSharper в сочетании с IDE VS2008.

Другие вопросы по тегам