Resharper-сохранять именованные параметры при очистке кода
Мы приняли соглашение, что при вызове функции C# с" неочевидным " параметром мы используем именованный параметр, даже если в этом нет необходимости.
Например
obj.Process(save: true)
Вместо
obj.Process(true)
Хотя в этом нет необходимости, это значительно облегчает просмотр кода, чтобы увидеть, что происходит, особенно с булевыми или магическими числами.
Однако очистка кода resharper имеет привычку удалять их. Я не смог найти способ сказать ему, чтобы сохранить именованные параметры-есть ли они?
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 по умолчанию не может быть использован из - за "применить стиль аргументов (именованный против позиционного)" - эта опция должна быть отключена в вашем профиле очистки кода.