Navigation und Suche

Mit den Navigationsfunktionen von ReSharper ist es ein Leichtes, Ihre gesamte Lösung zu durchsuchen. Springen Sie zu Dateien, Typen oder Membern in Ihrer Codebasis oder navigieren Sie von einem bestimmten Symbol aus zu dessen Verwendungen, Basistypen und abgeleiteten Symbolen oder Implementierungen.

Kontextuelle Navigation in ReSharper

Navigate To ist eine einzelne Tastenkombination für alle möglichen Arten von kontextueller Navigation. Navigate To listet alle Ziele auf, die an der aktuellen Textcursorposition verfügbar sind. Drücken Sie Alt+` für Links zur schnellen Navigation – zur Deklaration, Typdeklaration, Basisklasse, Unterklasse(n) oder Verwendungen des Symbols unter dem Textcursor; zu Implementierungen einer Schnittstelle; zu den Ausstiegspunkten einer Funktion und mehr.

Go to File Member

Go to File Member

Um in der aktuellen Datei schnell zu einer Methode oder einem Feld zu navigieren, verwenden Sie den Befehl Go to File Member (Alt+\). Ähnlich wie bei Go to Type fangen Sie mit dem Tippen des Symbolnamens an und wählen dann in der Liste das passende Element aus. Diese Funktion klappt bei Dateielementen in allen unterstützten Sprachen.

Go to Everything/Type

Dieser Befehl, der mit Strg+T verfügbar ist, kombiniert zwei unterschiedliche Funktionen:

Go to Everything, was als Erstes angezeigt wird, bietet eine schnelle Navigation zu allen möglichen Zielen (Typen, Symbole oder Dateien). Die Liste der Vorschläge erscheint, sobald Sie den Befehl aufrufen, und umfasst anfangs Datei- und Codestandorte, zu denen Sie vor Kurzem navigiert haben. Während Sie tippen, wird die Liste gemäß Ihrer Eingaben aktualisiert. Sie können zum Filtern der Suchergebnisse besondere Inline-Befehle verwenden, die mit / anfangen.

Der Befehl Go to Type, der angezeigt wird, wenn Sie die Tastenkombination noch einmal drücken, erlaubt Ihnen, zu einem beliebigen Typ innerhalb Ihrer Lösung zu navigieren.

Diese und andere „Go to“-Funktionen unterstützen auch Platzhalter: * (Sternchen) steht für null oder mehr Zeichen; bei doppelten Anführungszeichen um die Suchanfrage herum wird eine Suche mit genauer Übereinstimmung ausgeführt; ? (Fragezeichen) in einer Suche mit genauer Übereinstimmung steht für ein einzelnes Zeichen.

Textsuche mit Go to Text

Textsuche mit Go to Text

Diese Navigationsaktion ist über Strg+T,T,T verfügbar und findet schnell jeden Text in Quell- und Textdateien, die in Ihrer Lösung enthalten sind. Ähnlich wie bei anderen Befehlen können Sie + auf der numerischen Tastatur drücken, um die Ergebnisse im Find Results-Fenster zu erkunden, wenn es zu viele Treffer gibt. Sie können außerdem spezielle Inline-Befehle verwenden, um die Suchergebnisse einzuschränken: mit /cp suchen Sie im aktuellen Projekt, mit /ext: in Dateien mit einer bestimmten Erweiterung und mit /fm: geben Sie eine Dateimaske vor.

Go to Implementation und Go to Derived Symbols

Go to Implementation

Diese Navigationsfunktion, die über die Tastenkombination Strg+F12 verfügbar ist, lässt Sie von einem Basistyp oder Member zu jeder beliebigen Endimplementierung springen und dabei Zwischenschritte in der Vererbungskette überspringen.

Das funktioniert ähnlich wie Go to Derived Symbols, aber es spart Ihnen Zeit, wenn Sie eine oder mehrere Ebenen einer Typhierarchie überspringen möchten. Sehen Sie sich die GIF-Sequenz an, um den Unterschied zu sehen.

Zu Aktion navigieren

Go to Action

ReSharper hilft Ihnen beim schnellen Auffinden und Anwenden sämtlicher ReSharper-Aktionen, ohne in Menüs stöbern zu müssen (unter einer Aktion verstehen wir einen ausführbaren Befehl, der für die aktuelle Cursorposition verfügbar ist, oder einen Befehl, der ein Toolfenster öffnet). Um eine Aktion zu finden, drücken Sie einfach Alt+Enter an einer beliebigen Stelle im Editor und beginnen Sie, einen Befehlsnamen oder ähnliche Wörter einzutippen.

Go to Exposing APIs

Go to Exposing APIs

Dieser Befehl, der mit der Tastenkombination Navigate To (Alt+`) verfügbar ist, navigiert von einem Typ zu allen Stellen in Ihrer Lösung, an denen eine Instanz dieses Typs auftreten kann: öffentliche Felder und Eigenschaften, Rückgabewerte von Methoden, out-Parameter usw.

Go to Symbol

Go to Symbol

Der Befehl Go to Symbol sucht per Namen nach Methoden, Feldern und anderen Membern, und zwar über die ganze Lösung hinweg. Der Befehl ist durch das Drücken von Umschalt+Alt+T verfügbar. Beachten Sie, dass alle „Go to“-Befehle von ReSharper, einschließlich Go to Symbol, die Suche nach Teilen von CamelCase-Namen unterstützen. Die Zeichen können dabei in Groß- oder Kleinschreibung eingegeben werden. Das heißt, dass Sie ein Member schneller finden können, indem Sie dessen Anfangszeichen und dann Teile aus dessen Namen eingeben. Zum Beispiel können Sie testFixedSizeBuffer durch die Eingabe von tfixs finden.

Go to Base

Go to Base

Sie können in der Hierarchie zum Basistyp oder zur Basismethode navigieren, indem Sie den Textcursor im Editor auf eine Verwendung oder Deklaration eines Typs oder einer Methode positionieren und Alt+Pos1 drücken.
Sie können übrigens auch sehen, wenn eine Methode eine andere Methode überschreibt, implementiert oder verdeckt, indem Sie einen Blick auf spezielle Randleistensymbole werfen, die links von der Methodendeklaration angezeigt werden. Klicken Sie auf das Icon, um die Methodenhierarchie hoch zu navigieren.

Zur Symboldeklaration navigieren

Go to Declaration

Um zu der Deklaration eines Symbols zu navigieren, positionieren Sie den Textcursor auf einer beliebigen Symbolverwendung und drücken Sie F12 oder halten Sie Strg gedrückt und machen Sie einen Linksklick auf das Symbol. ReSharper springt zur Deklaration des Typs, der Methode, des Feldes oder der lokalen Variable in der entsprechenden Quelldatei. Bei Bibliothekssymbolen wird der entsprechende Eintrag im Objektbrowser von Visual Studio oder im Editor als Metadatenansicht oder dekompilierter Code angezeigt, abhängig von den ReSharper-Einstellungen.

Zwischen Verwendungen navigieren

Zwischen Verwendungen navigieren

Sie können den Befehl Go to Declaration auch aufrufen, wenn sich Ihr Textcursor bereits auf einer Symboldeklaration befindet. Wenn Sie eine Deklaration und eine Verwendung haben, können Sie mit derselben Tastenkombination einfach zwischen ihnen hin- und herschalten. Wenn Sie mehrere Verwendungen eines Symbols haben, führen nachfolgende Aufrufe von Go to Declaration zu weiteren Verwendungen des Symbols führen, eine Verwendung nach der anderen. Die Navigation zwischen Verwendungen wird durch ein Fenster unterstützt, welches dem von Find Usages ähnelt und gefundene Verwendungen aufzählt, das Navigieren zwischen Verwendungen per Mausklick ermöglicht und Ihnen bei Bedarf hilft, alle gefundenen Verwendungen an das reguläre Find-Usages-Fenster weiterzureichen.

Go to related files

Diese Funktion ist durch Drücken von Strg+Alt+F7 verfügbar und bringt Sie zu einer Datei, die in der aktuellen Datei auf irgendeine Weise referenziert wird. Dies ist am nützlichsten für Websites und -anwendungen: Zum Beispiel ermöglicht es Ihnen, von einem Webformular zu dessen Masterseite, Benutzersteuerelementen, referenzierten Bildern zu springen. In ASP.NET-MVC-Anwendungen vereinfacht diese Funktion die Navigation zwischen Views und Controllern.

Weitere Informationen über die umfangreichen Navigations- und sonstigen Funktionen, die ReSharper Webentwicklern zur Verfügung stellt, finden Sie unter ASP.NET- und ASP.NET-MVC-Tools.

Zu benachbarter Datei navigieren

Go to File Nearby

Diese Funktion steht mit der Tastenkombination Navigate To (Alt+`) zur Verfügung und hilft Ihnen beim schnellen Navigieren in der Projektstruktur der aktuellen Datei. In dem sich öffnenden Popup sehen Sie das Projekt der aktuellen Datei sowie Ordner und Dateien auf derselben Verzeichnisebene. Sie können auf einfache Weise zwischen diesen Dateien hin- und herspringen oder neue Dateien oder Ordner erstellen.

Die Navigationsoption „Sources from Symbol Files'“ für ein Bibliothekssymbol

Zu Bibliothekscode navigieren

Eine Lösung enthält neben ihrem eigenen Quellcode auch Referenzen zu Bibliotheken. Wir fanden, dass es großartig wäre, wenn Sie zu diesen Bibliotheken und innerhalb deren Struktur genauso navigieren könnten wie in Ihrem eigenen Quellcode.

Einige Unternehmen veröffentlichen Teile ihrer Quellen mithilfe der Source-Server-Funktion in Debugging-Informationsdateien (PDB). Andererseits verwendet Microsoft diese Technologie, um Zugriff auf den Quellcode des .NET-Frameworks zu bieten. Wenn Sie PDBs zur Verfügung haben, können Sie mit ReSharper auf derart gespeicherte Quellen genauso zugreifen, als ob sie ein Teil Ihrer Lösung wären. Wenn Sie mehr über den Inhalt einer bestimmten Klasse im .NET Framework erfahren wollen, dann kann Ihnen ReSharper auch dabei helfen.

Selbst wenn kein Quellserver verfügbar ist, kann ReSharper die Struktur des Bibliothekscodes aus Metadaten rekonstruieren.

So funktioniert es, wenn ein Quellserver verfügbar ist:

  1. Sie drücken über einem Bibliothekssymbol Alt+`, um Navigate To mit der Liste der Navigationsoptionen zu öffnen.
  2. Sie wählen eine externe Navigationsoption für das Bibliothekssymbol aus.
  3. ReSharper lädt PDB-Dateien von einem Quellserver herunter.
  4. ReSharper zeigt die Deklaration des ausgewählten Bibliothekssymbols so an, als wäre es in Ihrer Lösung definiert.
Symbolverwendungen finden

Find Usages

Find Usages lokalisiert schnell alle Verwendungen eines Symbols (Typ, Methode, Feld usw.) in Ihrem Code. Positionieren Sie den Textcursor einfach auf das Symbol, dessen Verwendungen Sie finden wollen, und drücken Sie Umschalt+F12. Wenn Sie ein Projekt in verschiedenen Sprachen haben, kann ReSharper Verwendungen sprachübergreifend finden.

Die Suchergebnisse werden im Fenster Find Results angezeigt und in einer Hierarchie organisiert. Sie können von diesem Fenster aus direkt zu jeder Verwendung navigieren, entweder mit der Tastatur oder der Maus. Find Results bietet verschiedene weitere Möglichkeiten für die Suchergebnisse an:

  • Vorschau auf den Quellcode
  • Hervorhebung fehlerhafter oder unvollständiger Verwendungen
  • Filtern nach Lese- oder Schreibverwendungen, Aufrufverwendungen, Attributverwendungen, Verwendungen in der Dokumentation und weiteren Kriterien
  • Gruppieren nach Typ der Verwendung und nach Kategorien
  • Registerkarten mit Suchverlauf und mehr

Bei geöffnetem Find-Results-Fenster können Sie zwischen Verwendungen navigieren, indem Sie Strg+Alt+Bild Auf/Bild Ab drücken (dies funktioniert sogar im Editor).

Verwendungen zugehöriger Symbole finden

Find Usages – erweiterte Suchfunktion

Um den Suchbereich und den Typ der zu findenden Verwendungen anzugeben, verwenden Sie die erweiterte Find-Usages-Suchfunktion, die durch Drücken von Strg+Umschalt+Alt+F12 verfügbar ist.

Abhängig vom Kontext können Sie angeben, welcher Bereich innerhalb der Lösung durchsucht werden soll, ob die Suche referenzierte Bibliotheken umfassen soll, und ob Sie nach Textvorkommen, implementierten Eigenschaften oder gar dynamischen Referenzen auf das aktuelle Symbol suchen möchten.

Dateistrukturansicht

File Structure

Das Fenster File Structure ist für alle unterstützten Sprachen und Dateitypen verfügbar. In C#- oder VB.NET-Dateien können Sie sich ansehen, welche Methoden, Felder, Klassen und Regionen diese enthalten und mit Strg+Alt+F direkt zu den Deklarationen navigieren.

In ASP.NET können Sie mit File Structure Tags, Scriptlets, Steuerelemente und andere strukturelle Elemente einer aktuell geöffneten Datei untersuchen und direkt zu den Deklarationen navigieren. Unter ASP.NET- und ASP.NET-MVC-Tools finden Sie weitere Einzelheiten dazu, wie diese und andere Navigationsfunktionen Webentwicklern helfen.

In Buildskripten zeigt Ihnen File Structure die Eigenschaften und Ziele im aktuellen Skript.

In diesem Fenster können Sie außerdem Elemente innerhalb der Datei mittels einfachem Ziehen und Ablegen neu anordnen, Navigationsaktionen und Refaktorierungen aufrufen oder Regionen erstellen und löschen.

Das Fenster File Structure ist mit dem Editor vollständig synchronisiert. Alle an einer Datei vorgenommenen Änderungen sind sofort in der Dateistruktur sichtbar und umgekehrt.

Strukturelle Navigation mit der Tab-Taste

Strukturelle Navigation mit der Tab-Taste

Mit ReSharper können Sie durch Drücken von Tab und Shift+Tab zwischen logischen Teilen Ihres Codes hin- und herspringen – ähnlich wie bei der Navigation in Ihrem Webbrowser.

Wenn Sie zum Beispiel eine for-Schleife bearbeiten, wählt Tab erst die Initialisierungsanweisung aus, dann die Abbruchbedingung und schließlich die Iteratoranweisung. Umschalt+Tab nimmt diese Auswahl in umgekehrter Reihenfolge vor.

Wenn der Cursor vor dem ersten Textzeichen einer Zeile steht, dann können Sie Tab zum Einrücken verwenden.

Erfahren Sie mehr: Wie ReSharper die Tab-Taste wieder großartig macht

Intermediate-Language-Ansicht in ReSharper

IL-Ansicht

Mit der Intermediate-Language-Ansicht können Sie sowohl Bibliothekscode von Drittanbietern als auch die IL Ihres eigenen Quellcodes untersuchen (beachten Sie, dass Sie zuerst kompilieren müssen).

Um sich anzusehen, wie die IL-Ansicht funktioniert, wählen Sie ReSharper | Windows | IL Viewer aus dem Menü aus.

Stack-Trace-Explorer in ReSharper

Stack Trace Explorer

Wenn Sie einen externen Stack-Trace erhalten (zum Beispiel in einem Fehlerbericht), dann können Sie diesen kopieren und in den Stack Trace Explorer einfügen, um zum Ursprung der Ausnahmen zu navigieren. Die Zeilen innerhalb des Stack-Trace werden als Hyperlinks dargestellt. Um den Stack Trace Explorer zu öffnen, kopieren Sie die Stack-Traces in die Zwischenablage und drücken Sie Strg+E, T.

Go to File

Go to File

Go to File navigiert Sie zu einer beliebigen Datei innerhalb Ihrer Lösung. Die Tastenkombination für diesen Befehl lautet Strg+Umschalt+T. Es werden alle Suchtechniken und Platzhalter unterstützt, die in anderen „Go to“-Befehlen verfügbar sind.

Go to Derived Symbols

Go to Derived Symbols

Dieser Befehl lässt Sie zu einem abgeleiteten Typ oder einer abgeleiteten Methode navigieren, indem Sie Alt+Ende drücken. Unmittelbar abgeleitete Elemente werden fett hervorgehoben.

Go to Generic Substitutions

Go to Generic Substitutions

Dieser Befehl ist mit der Tastenkombination Navigate To verfügbar und zeigt eine Liste aller Typen an, die für einen ausgewählten generischen Typparameter verwendet werden, sowie sämtliche Verwendungsstellen im Code.

Go to Type of Symbol

Go to Type Declaration

Drücken Sie Strg+Umschalt+F11, um zur Typdeklaration einer Variable, eines Felds oder eines Parameters zu navigieren. ReSharper springt zur Deklaration im Quellcode oder zeigt bei Bibliothekstypen das entsprechende Symbol im Objektbrowser oder dekompilierten Code an.

Go to Next Member/Tag

Sie können schnell zu einem Dateimember in C#- oder VB.NET-Codedateien oder zum nächsten Tag in XML- oder XAML-Dateien gehen, indem Sie Alt+Oben drücken.

Go to Previous Member/Tag

Ähnlich wie bei Go to Next Member bringt Sie diese Funktion zum vorherigen Member oder Tag – Sie müssen nur Alt+Unten drücken.

Zur Verwendung eines Symbols navigieren

Go to Usage

Sie können schnell zu Symbolen mit wenigen Verwendungen (z. B. einem privaten Feld) navigieren, wenn Sie Umschalt+Alt+F12 drücken. Anstatt ein ganzes Toolfenster zu öffnen, werden die Verwendungen in einem Popup angezeigt.

Enthält das Popup zu viele Verwendungen, dann klicken Sie einfach auf das Lupensymbol in der oberen rechten Ecke des Popups, um die Liste in das Fenster Find Results zu übertragen.

Verwendungen hervorheben in ReSharper

Verwendungen hervorheben

Um alle Verwendungen eines Symbols innerhalb der aktuellen Datei hervorzuheben, positionieren Sie den Textcursor einfach auf eine beliebige Symbolverwendung und drücken Sie Umschalt+Alt+F11. Sie können außerdem die Verwendungen von Namespace-Importanweisungen und sogar von Ausdrücken hervorheben. In großen Dateien können Sie die Markierungsleiste auf der rechten Seite verwenden, um zwischen hervorgehobenen Verwendungen zu navigieren.
Auch in XAML-Markup und bei Verwendung mehrerer Sprachen kann ReSharper Vorkommen schnell finden und hervorheben.

Such- und Ersetzungsmuster, die im Musterkatalog von ReSharper aufgelistet sind

Strukturelles Suchen und Ersetzen

Mit dieser Funktion können Sie Muster erstellen, um nach Code-Smell oder veraltetem Code zu suchen, die ReSharper nicht standardmäßig erkennt, und diese mit gutem Code zu ersetzen. Mehr noch: Damit es einfacher wird, wiederholt fragwürdigen Code zu entfernen, können Sie benutzerdefinierte Codeinspektionen erstellen und ReSharper so einrichten, dass es Quick-Fixes für diese anbietet.

Es war noch nie so leicht, Muster zu erstellen und bewährte Methoden umzusetzen. Unternehmens- und Teamrichtlinien, benutzerdefinierte Frameworks, bevorzugte Open-Source-Bibliotheken und -Tools – strukturelle Muster können all diese Bereiche abdecken. Zusätzlich können Sie Muster importieren und exportieren, um sie mit Kollegen zu teilen oder zwischen Installationen von ReSharper zu verschieben.

Typhierarchie-Ansicht

Typhierarchie

Mit ReSharper können Sie sich die Vererbungshierarchie eines bestimmten Typs in einem separaten Fenster ansehen. Das Fenster zeigt sowohl Basistypen als auch Untertypen des ausgewählten Typs an und ermöglicht Ihnen, mit einem einzigen Klick zu den einzelnen Typen zu navigieren. Für jeden Knoten in der Hierarchie können Sie alle oder nur polymorphe Mitglieder in einem separaten Vorschaufenster anzeigen.
Um das Fenster Type Hierarchy zu öffnen, positionieren Sie den Textcursor auf einen Typnamen und drücken Sie Strg+Alt+H oder wählen Sie im Menü ReSharper | View | Type Hierarchy aus.

ReSharper-Bookmarks

Bookmarks

Dies ist eine einfache, aber leistungsstarke Funktion: Sie können mit einer einzigen Tastenkombination eine nummerierte Markierung hinterlegen und jederzeit mit einer anderen Tastenkombination dorthin zurückspringen. Sie können bis zu 10 nummerierte Bookmarks erstellen – und unbegrenzt viele ohne Nummerierung. Die vollständige Liste der markierten Stellen wird in einem Popup-Fenster angezeigt, um die Navigation zwischen diesen Codestellen zu beschleunigen.

Zuletzt verwendete Dateien anzeigen mit ReSharper

Zuletzt verwendete Dateien anzeigen

Durch das Drücken von Strg+, öffnen Sie ein Popup-Fenster mit der Liste der kürzlich geöffneten Dateien. Dort können Sie ein beliebiges Element auswählen und dorthin navigieren.

Zuletzt bearbeitete Codestellen mit ReSharper anzeigen

Zuletzt bearbeitete Stellen ansehen (und zur letzten Bearbeitung springen)

Auf die zuletzt bearbeiteten Stellen können Sie auf ähnliche Weise zugreifen wie auf die zuletzt verwendeten Dateien. Es wird ein Popup-Fenster mit den Dateien und Symbolen angezeigt, die Sie zuletzt bearbeitet haben. Wenn Ihre aktuelle Bearbeitungssitzung bereits vor einiger Zeit begonnen wurde, dann grenzen Sie die Liste ein, indem Sie den Namen der Datei, die Sie erneut öffnen möchten, eintippen.

Verwenden Sie alternativ den Befehl Go to Last Edit Location (Strg+Umschalt+Rücktaste), um den Textcursor ohne Popup direkt an der zuletzt geänderten Codestelle zu platzieren. Durch nachfolgende Betätigungen dieser Tastenkombination navigieren Sie weiter zurück in Ihrer Bearbeitungshistorie.

To-do Explorer

To-do Explorer

Der To-do Explorer hilft Ihnen, die Übersicht über alle Codestellen zu behalten, die mit todo-, note- und/oder bug-Tags markiert sind oder an denen NotImplementedException ausgegeben wird. Der To-do Explorer erfasst diese Elemente in allen Dateien Ihrer Lösung und zeigt sie in einem einzelnen Toolfenster an.

Wenn Sie Ihre eigenen Markierungen verwenden, um Notizen in Codekommentaren zu hinterlassen, dann können Sie ein benutzerdefiniertes Muster konfigurieren und der To-do Explorer findet ab sofort auch diese Notizen.

Process Explorer

Process Explorer

Das Fenster Process Explorer zeigt alle aktuell laufenden Prozesse an, erlaubt das Durchsuchen von deren Modulen und das Dekompilieren von .NET-Assemblies.

Sie können sich aussuchen, ob native Prozesse oder Module angezeigt oder versteckt werden sollen, und Sie können die Prozesshierarchie-Ansicht einschalten.

Filtern Sie die Liste, um ein Modul oder einen Prozess zu finden, und fügen Sie dann zur weiteren Untersuchung dessen Assemblies zum Assembly Explorer hinzu.

Hinweis zu Tastenkombinationen

Alle auf dieser Seite angegebenen Tastenkürzel sind in der standardmäßigen "Visual Studio"-Tastaturbelegung von ReSharper verfügbar. Weitere Informationen zu den beiden Tastaturbelegungen von ReSharper finden Sie in der ReSharper-Dokumentation.