ReSharper
# ReSharper

ReSharper [ˈɹiːˌʃɑːɹpɚ], auch R#, (engl.: Synthese aus den Worten Re und Sharper) ist eine von JetBrains herausgegebene Erweiterung für Microsofts Entwicklungsumgebung Visual Studio. Aktuell unterstützt ReSharper die Versionen Visual Studio 2010, 2012, 2013, 2015, 2017, 2019 und 2022.

ReSharper wertet die Visual-Studio-Entwicklungsumgebung um diverse Funktionen auf, die vor allem beim Entwickeln hilfreich sind. ReSharper ist also eine Möglichkeit, Visual Studio an die Features vergleichbarer Produkte wie etwa IntelliJ IDEA, Eclipse oder X-develop anzupassen. ReSharper unterstützt derzeit die Sprachen C#, C++, Visual Basic .NET, XAML, JavaScript, TypeScript, CSS, HTML und XML sowie die Technologien ASP.NET und ASP.NET MVC. Die Code-Analyse erfolgt parallel zum Programmieren und bietet dadurch sofort Verbesserungsvorschläge an. Diese können mit einem Klick übernommen werden. Die Code-Analyse bezieht selbsterstellbare Regeln des Programmierstils mit ein. Ähnlich wie Visual Studio selbst findet ReSharper unbenutzten/unerreichbaren Code und bietet Codegenerierung und Refaktorierung an.

ReSharper ist zusammen mit ReSharperC++ als einzelne Lizenz oder zusammen mit der .NET IDE Rider und weiteren .NET Tools als Teil der dotUltimate Lizenz enthalten.

## Eigenschaften

Einige der im Folgenden genannten Funktionen sind bereits in der IDE Visual Studio vorhanden. In ReSharper sind diese jedoch bereits deutlich früher implementiert gewesen und verfügen auch noch heute über einen größeren Funktionsumfang. Bsp: Beim Umbenennen von Member werden nicht nur die Referenzen geändert, sondern ebenfalls die Kommentare dazu.

* Refactoring – Extrahieren von Methoden/Properties/Klassen
* Erstellung eines eigenen Programmierstils
   * Bestimmung über Schreibweise von Variablen/Eigenschaften und Methoden
   * Regelung zur Setzung von Klammern und Einrückungen
   * Reihenfolge der Member festlegen
   * Bevorzugung von var
   * Zuwiderhandlungen können als Warnung oder als Fehler eingestuft werden
   * Semi-automatisches Aufräumen des Codes nach dem festgelegten Programmierstil
* Code-Smells werden durch Warnungen angezeigt
   * Problem mit Closure in paralleler Programmierung
   * Doppeltes Durchlaufen von Collections
   * Bevorzugung von LINQ in manchen Schleifen
   * Redundante Teile im Code
   * Hinweise zu Membern, die konstant oder statisch sein sollten
   * Hinweise zu Codestruktur (Einrückung)
   * über 2.200 Inspizierungsregeln werden hier verwendet
* Erweiterte Navigationsmöglichkeiten
   * Gehe zu Implementierung (eines Interfaces)
   * Gehe zu Typ, Member, Datei
   * Ermöglicht das Inspizieren von externem Code, bei Bedarf wird dazu nicht im Original vorliegender Quellcode aus den DLLs erzeugt (dekompiliert)

Für die 1.200 Regeln, die definiert und geprüft werden, bietet ReSharper auch eine Quick-Fix Aktion an, um den Code an der Stelle entsprechend den Regeln zu formatieren/strukturieren.

