Контекстные действия ReSharper избавят вас от необходимости много печатать, когда нужно внести небольшие изменения в код. Изменить модификаторы доступа, сгенерировать проверку на null, преобразовать foreach
в for
и обратно можно всего за пару нажатий. В ReSharper предусмотрено более 450 контекстных действий для C#, VB.NET, XAML, ASP.NET и других поддерживаемых языков. Поместите курсор на элемент кода, который хотите изменить, нажмите Alt+Enter и выберите нужное контекстное действие.
Когда в текущем положении курсора доступно контекстное действие, слева появляется значок молотка . Если в одном и том же месте можно применить несколько разных контекстных действий и быстрых исправлений — отобразится значок действия с наивысшим приоритетом. Кликните по значку или нажмите Alt+Enter, чтобы увидеть все доступные действия.
Схожие контекстные действия (например, для разных модификаторов доступа) часто сгруппированы вместе. В этом случае, чтобы выбрать нужное действие, разверните группу, используя стрелку вправо.
Некоторые контекстные действия (Remove #regions, Specify enum member values, Add name to argument) могут автоматически применяться в более широком контексте: в текущем методе, классе, файле, проекте или по всему решению. Кликните по значку стрелки или нажмите клавишу со стрелкой вправо на клавиатуре, чтобы выбрать область, в которой следует произвести преобразования.
Вместе с контекстными действиями в раскрывающемся списке могут отображаться быстрые исправления. Разница проста: ReSharper предлагает быстрые исправления только для подсвеченных проблем с целью улучшения вашего кода, в то время как контекстные действия представляют собой мини-рефакторинги, которые просто преобразовывают код.
Важно отметить, что быстрые исправления имеют более высокий приоритет, поэтому, если в том месте, где находится курсор, предлагаются быстрые исправления, то, чтобы увидеть контекстные действия, необходимо нажать Alt+Enter.
Благодаря ReSharper для проверки параметра на null не нужно что-либо печатать, достаточно нажать сочетание клавиш Alt+Enter, в результате ReSharper сгенерирует весь код проверки на null автоматически.
Если же в проекте используются аннотации кода JetBrains, параметр маркируется атрибутом [NotNull]
и ReSharper предупреждает обо всех вызовах метода, где в этот параметр передается null.
В этом примере показано, как с помощью контекстных действий ReSharper быстро преобразовать запрос LINQ в цикл foreach
и лямбда-выражение.
Это действие является обратным по отношению к знаменитому быстрому исправлению ReSharper для преобразования циклов в операторы LINQ.
Некоторые контекстные действия больше похожи на рефакторинги: они автоматизируют сложные преобразования кода, сохраняя логику неизменной.
В этом примере ReSharper используется для преобразования итератора с операторами yield return
в код, который создает, наполняет и возвращает коллекцию.
Если требуется добавить условие к инициализации существующей локальной переменной, это контекстное действие позволяет быстро отсоединить инициализацию. Даже если переменная имеет неявный тип, ReSharper автоматически вычисляет правильный тип и использует его в объявлении.
Это контекстное действие позволяет быстро поменять местами ветви выражения if
. ReSharper позаботится, чтобы условие, каким бы сложным оно ни было, инвертировалось должным образом и логика оставалась неизменной.
Какой бы синтаксис ни использовался для делегата (анонимный метод или лямбда-выражение), контекстные действия ReSharper позволяют изменить синтаксис парой клавиш, не переписывая код вручную.
Это контекстное действие позволяет создать перегрузку метода, использующую значение по умолчанию для выбранного параметра — опять-таки, без ввода кода вручную.
Это действие также доступно для C# и TypeScript.
В языках, похожих на XML, контекстные действия ReSharper упрощают обычные операции редактирования, такие как развертывание и сворачивание пустых тегов, а также преобразование атрибутов в теги и обратно. Эти действия доступны для файлов XML, XAML, ASP.NET, скриптов сборки, HTML и Resx.