Resharper-сохранять именованные параметры при очистке кода


Мы приняли соглашение, что при вызове функции C# с" неочевидным " параметром мы используем именованный параметр, даже если в этом нет необходимости.

Например

obj.Process(save: true)

Вместо

obj.Process(true)

Хотя в этом нет необходимости, это значительно облегчает просмотр кода, чтобы увидеть, что происходит, особенно с булевыми или магическими числами.

Однако очистка кода resharper имеет привычку удалять их. Я не смог найти способ сказать ему, чтобы сохранить именованные параметры-есть ли они?

4 10

4 ответа:

Хотя вы можете достичь этого, сделав то, что сказал @EricWalker, я хочу предложить другой вариант.

Вы можете запустить параметры ReSharper, найти серьезность проверки, затем перейти к избыточной явной спецификации имени аргумента и изменить ее на не показывать. Таким образом, вы не потеряете все другие хорошие очистки (например, удаление квалификаторов полного имени), которые предлагает удалить избыточный код.

Нужный параметр находится в разделе очистка кода\C#\удаление избыточности кода

Я знаю, что это, вероятно, не тот ответ, на который вы надеялись, но вы можете остановить его, удалив имена параметров, сняв эту настройку (вместе с тем оставив позади все остальные избыточности.)

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

HTH,
Эрик

Обновление:

Похоже, что это решение больше не работает, начиная с v2017.1.3 (2017-08-28)


В настоящее время я использую ReSharper v2017.1 (2017-06-01), и, похоже, JetBrains еще не решил эту проблему.

Как заметил @Colin Harkness, В настоящее время последним средством сохранения "именованных параметров" является установка опции "именованные выражения (переменные, свойства, методы и т. д.)" В "именованный аргумент".

Это, конечно, не лучший способ из.

Введите описание изображения здесь

Обновление:

Я нашел маленький трюк на форуме Джетбрейнса. Вы можете отменить рассмотрение именованных параметров в качестве избыточности, добавив эту строку кода в начало файла.

// ReSharper disable ArgumentsStyleNamedExpression

Вы должны сделать некоторые незначительные настройки в настройках ReSharper. Для того чтобы сохранить автоматическое добавление // ReSharper отключить ArgumentsStyleNamedExpression Просто, я добавил эту инструкцию к заголовку файла Текст , как показано на рис. 2.

Введите описание изображения здесь рис.2-Добавить Правило ArgumentsStyleNamedExpression

После этого вы должны проверить обновить заголовок файла опция в конфигурации очистки кода , как показано на рис. 3

Введите описание изображения здесь рис.3-Установите флажок "обновить заголовок файла"

В этом случае, когда начинается очистка кода, он сначала добавляет Аргументы Stylenamedexpression правило, и применяется код стиль для файла.

Добавив Это правило, вы можете перейти к Инструменты / Параметры / окружающая среда / шрифты и цвета / идентификатор параметра ReSharper и измените цвет подсветки для этого случая, чтобы визуально различать аргументы и еще имена параметров как показано на рис. 4.

Введите описание изображения здесь

рис.4-выделение имени параметра


К сожалению, этот способ хранения аргументов' имена не всегда работают (ReSharper может выборочно сохранять / удалять имена аргументов).

В ReSharper 2018.1

Есть два важных шага. Скорее всего, вы захотите сделать и то, и другое, но это зависит от того, как вы хотите настроить ReSharper.

Во-первых, в Resharper -> Options -> Code Inspection -> Inspection Severity, отключите стиль кода" использовать предпочтительный стиль аргументов для литеральных значений". (Для булов," [..] для литеральных значений" - это соответствующая настройка, хотя я решил отключить все из них.)

осмотр-строгость

Эта настройка также связана с настройками ReSharper -> Options -> Code Editing -> Code Style -> Arguments, поэтому теперь они должны быть автоматически изменено на "не показывать" вместо "Подсказка":

код-стиль-подсказки

Во-вторых, профиль очистки кода ReSharper по умолчанию не может быть использован из - за "применить стиль аргументов (именованный против позиционного)" - эта опция должна быть отключена в вашем профиле очистки кода.

код-очистка-настройки