Форматирование ReSharper: выравнивание равных операндов

Примечание для Google: этот вопрос несколько устарел, поскольку запрошенная функция теперь поддерживается в текущей версии ReSharper 2017.3.1

Мне нравится форматировать мой код для выравнивания правой стороны равных операндов.
Как здесь:

bool    canRead     = false;
bool    canReadClass    = true;
string  className   = boType.Name;

Я недавно переключился на ReSharper и нашел его очень полезным, но не могу найти опцию, позволяющую мне форматировать код описанным способом.

Знаете ли вы, есть ли такая опция/плагин?
Может быть, вы знаете, кроме решения ReSharp, позволяющего это?

РЕДАКТИРОВАТЬ:
Как решить, какая часть кода должна быть выровнена?
Мое соглашение выравнивает все переменные в одном блоке.
Под "блоком" я подразумевал часть кода, не разделенную пустыми строками.

например

// First block
int      count     = 10;
string   name      = "abc";
bool     calculate = true;
.....
.....
// Second block
MyOwnType    myType   = new MyOwntype();
int          count    = 10;

РЕДАКТИРОВАТЬ -2
Я открыл билет R # для этого. Если кто-то заинтересован, пожалуйста, проголосуйте !

Ответ 1

В ReSharper нет (в настоящее время) этого не делать. К счастью, ReSharper имеет очень богатый API расширяемости (хотя и плохо документированный). Я потратил много времени, когда рефлектор попытался понять, что происходит.

Мы используем аналогичную директиву для членов класса в компании, в которой я работаю (по крайней мере, мы также выравниваем параметры метода). Я написал плагин для ReSharper, чтобы помочь мне сделать именно это. Это модуль "Очистка кода", который выполняется во время очистки кода (Ctrl - E, Ctrl - F) и выравнивает код для вас. Он также делает класс sealed, если это возможно.

Некоторые примеры:

Параметры метода:

public void DoSomething(string      name,
                        int         age,
                        IEnumerable coll)

(вам нужно будет изменить обернуть формальные параметры на Chop always в Параметры- > Стиль форматирования- > Разрывы строк и обертка для этого для правильной работы)

Константы:

private const int    RESOURCEDISPLAYTYPE_DOMAIN = 0x00000001;
private const int    CONNECT_COMMANDLINE        = 0x00000800;
private const int    CONNECT_INTERACTIVE        = 0x00000008;
private const string RESOURCE_NAME              = "Unknown";


Вы можете загрузить исходный код с моего SkyDrive.
Изменить Я, кажется, потерял доступ к этому SkyDrive и потерял файлы. Это было до github: (

Обратите внимание, что вам потребуется несколько вещей для его компиляции/отладки:

  • Обновите Command Line Arguments в Debug вкладке Project Properties с правильным путем выходная DLL:

    /ReSharper.Plugin "X:\<projects>\MyCompany.CodeFormatter\MyCompany.CodeFormatter\bin\Debug\MyCompany.CodeFormatter.dll"

    Это позволяет отлаживать плагин через F5, и это будет автоматически устанавливается в Плагины ReSharper в новом Экземпляр Visual Studio, который будет открыто.

  • Плагин предназначен для ReSharper 4.5 и ссылается на библиотеки DLL этой версии. Если вы установили ReSharper где-нибудь еще, кроме C:\Program Files\JetBrains\ReSharper, вам нужно будет исправить ссылки.
  • Это не выравнивает переменные внутри методов, но его не должно быть сложно добавить:)

После того, как вы установите это, просто запустите Code Cleanup, чтобы исправить ваше выравнивание (я, к сожалению, не получил ответа от JetBrains о том, как это сделать во время форматирования скобок/с запятой).

Ассамблея была переименована в защиту невинных:)

Удачи!

Ответ 3

Вы можете попробовать следующее: Выравнивание кода

Он поддерживает

  • Выровнять по... (Диалог)
  • Выровнять по положению... (Диалог)
  • Выравнивание по равным
  • Выровнять по m _
  • Выровнять по "
  • Выровнять по.
  • Выравнивание по пространству

Ответ 5

Насколько я знаю, это, к сожалению, невозможно с помощью Resharper.

Ответ 6

Спустя годы, но в дополнение к комментарию @MickyD, Resharper может сделать это за вас, см. Блог Resharper. Перейдите в Resharper/Параметры/Редактирование кода/С#/Вкладки, Отступы, Выравнивание. Прокрутите вниз до параметров в правой части окна, чтобы найти "Выровнять аналогичный код в столбцах", щелкните мышью, наслаждайтесь.