Die Kontextaktionen von ReSharper ersparen Ihnen bei kleinen Codeänderungen viel Tipparbeit. Ändern Sie Zugriffsmodifizierer, generieren Sie Nullprüfungen, konvertieren Sie foreach
zu for
und zurück
– all dies mit nur ein paar Tastenkombinationen. Es stehen über 450 Kontextaktionen für C#, VB.NET, XAML, ASP.NET und andere unterstützte Sprachen zur Verfügung. Drücken Sie Alt+Enter über dem Codeelement, das Sie ändern wollen, und wählen Sie die anzuwendende Kontextaktion aus.
Sobald eine Kontextaktion für die aktuelle Textcursorposition verfügbar wird, zeigt ReSharper links vom Textcursor das Hammersymbol an. Bei mehreren verfügbaren kontextbezogenen Funktionen – das können Kontextaktionen oder Quick-Fixes sein – wird das Symbol der Aktion mit der höchsten Priorität angezeigt. Klicken Sie auf den Aktionsindikator oder drücken Sie Alt+Enter, um sich alle verfügbaren Aktionen anzusehen.
Ähnliche Kontextaktionen (zum Beispiel Aktionen für verschiedene Zugriffsmodifizierer) werden häufig gruppiert. Erweitern Sie in diesem Fall die Gruppe mithilfe des rechten Pfeils, um die gewünschte Aktion zu wählen.
Einige Kontextaktionen (Remove #regions, Specify enum member values, Add name to argument etc.) können automatisch auf einen größeren Bereich angewendet werden: auf die aktuelle Methode, Klasse oder Datei, auf das Projekt oder auf die ganze Lösung. Sie können rechts auf einen kleinen Pfeil klicken oder die rechte Pfeiltaste auf der Tastatur drücken, um auszuwählen, wo die Transformation angewendet werden soll.
ReSharper bietet außerdem Quick-Fixes an, die in der Dropdown-Liste zusammen mit Kontextaktionen angezeigt werden. Der Unterschied zwischen den beiden Funktionen ist einfach: Quick-Fixes erscheinen nur für hervorgehobene Codeprobleme und zielen darauf ab, diese zu beheben und hoffentlich Ihren Code zu verbessern, während Kontextaktionen Mini-Refaktorierungen darstellen, die einfach nur den Code verändern.
Es ist wichtig zu beachten, dass Quick-Fixes eine höhere Priorität haben. Wenn also Quick-Fixes an Ihrem Textcursor erscheinen, dann müssen Sie Alt+Enter drücken, um eventuelle Kontextaktionen zu sehen.
Mit ReSharper können Sie Parameter ganz ohne Tipparbeit auf Null überprüfen – drücken Sie einfach Alt+Enter und ReSharper erstellt für Sie die gesamte Routine für die Nullprüfung.
Wenn Sie die Code-Annotations von JetBrains in Ihrem Projekt verwenden, dann wird der Parameter mit dem Attribut [NotNull]
markiert, so dass ReSharper Sie bei einem Aufruf der Methode mit Null als Parameter warnt.
In diesem Beispiel können Sie sehen, wie Sie mit einer ReSharper-Kontextaktion eine LINQ-Abfrage zu
einer foreach
-Schleife und einem Lambda-Ausdruck konvertieren können.
Dies ist das Gegenstück zum berühmten Quick-Fix von ReSharper, der Schleifen zu LINQ-Anweisungen konvertiert.
Einige Kontextaktionen ähneln eher Refaktorierungen – sie automatisieren komplexe Codetransformationen, während die Logik erhalten bleibt.
In diesem Beispiel hilft ReSharper Ihnen beim Transformieren eines Iterators mit
yield return
-Anweisungen zu Code, der eine Collection erstellt, auffüllt und zurückgibt.
Wenn Sie eine Bedingung zu der Initialisierung einer bestehenden lokalen Variable hinzufügen müssen, dann hilft Ihnen diese Kontextaktion, die Initialisierung schnell abzutrennen. Selbst wenn die Variable implizit typisiert ist, ermittelt ReSharper automatisch den korrekten Typ und verwendet ihn in der Deklaration.
Mit dieser Kontextaktion können Sie schnell die Branches einer
if
-Anweisung vertauschen. ReSharper stellt sicher, dass die Bedingung, egal wie komplex sie ist, korrekt negiert wird,
so dass die Logik unverändert bleibt.
Egal welche Syntax für einen Delegate (anonyme Methode oder Lambda-Ausdruck) angewendet wird, können Sie mit den Kontextaktionen von ReSharper die Syntax per Tastenkombination ändern, ohne den Code von Hand umzuschreiben.
Mit dieser Kontextaktion erstellen Sie eine Methodenüberladung, die einen Standardwert für den ausgewählten Parameter verwendet. Und all das wieder einmal ohne irgendetwas einzutippen.
Diese Aktion ist auch in C# und TypeScript verfügbar.
In XML-like languages, ReSharper's context actions help you streamline routine editing procedures of expanding/collapsing empty tags, and converting attributes to tags and back. Diese Aktionen sind in XML-, XAML-, ASP.NET-, Buildskript-, HTML- und Resx-Dateien verfügbar.