Автоматический отступ списка аргументов в несколько строк в Visual Studio - PullRequest
6 голосов
/ 14 августа 2011

Когда список аргументов метода увеличивается до такой степени, что они не помещаются удобно на одной строке, мне нравится форматировать код так, чтобы каждый аргумент находился на отдельной строке (согласно предложению StyleCop), например так:

public void MyMethod(
   int someArgument,
   double someOtherArgument,
   int someMoreArguments)

Проблема, с которой я сталкиваюсь, заключается в том, что это форматирование является «хрупким» и не переформатируется автоматически при использовании Ctrl + K + D.Например, если мне удастся вставить несколько пробелов перед одним из аргументов, он не будет удален, и я в итоге сделаю утомительное ручное переформатирование.Если я копирую метод (скажем, для предоставления перегруженной подписи), отступ в аргументе в копии становится беспорядочным.
У меня похожая проблема с операторами LINQ, которую я также люблю форматировать в несколько строк, например:

myEnumerable.
   .Where(this and that)
   .Where(this and that)
   .FirstOrDefault();

Я понимаю, что это полное Обсессивно-Компульсивное форматирование, и это очень незначительная проблема, но есть ли способ заставить Visual Studio 2010 автоматически переопределять многострочные аргументы, следуя этому шаблону, когда он смещается?

1 Ответ

3 голосов
/ 14 августа 2011

Возможно, вы захотите взглянуть на Resharper из JetBrains.Он имеет всевозможные правила, которые можно применять к форматированию кода, который намного лучше, чем встроенный VS.

http://www.jetbrains.com/resharper/

Этот конкретный параметр расположен по адресу:

Обновление

Resharper> Параметры> C #> Стиль форматирования> Разрывы строк и перенос> Обтекание длинных строк

Я не знаю, выполняет ли он именно то, чтохочу, но он переносит длинные строки

...