Navigation et recherche

Avec les fonctionnalités de navigation de ReSharper, il est facile de traverser l'intégralité de votre solution. Allez à n'importe quel fichier, type ou membre de votre base de code, ou naviguez d'un symbole spécifique vers ses utilisations, bases et symboles dérivés, ou implémentations.

Navigation contextuelle dans ReSharper

Navigate To est un simple raccourci pour tous les types de navigation contextuelle. Navigate To liste toutes les destinations possibles selon la position actuelle du caret. Appuyez sur Alt+` pour avoir les liens de navigation rapide vers la déclaration, déclaration de type, casse de base, héritier(s) ou utilisation de symbole sous le caret ; l'implémentation d'interface pour une interface ; les sorties de fonction pour une fonction, et plus encore.

Go to File Member

Go to File Member

Pour aller rapidement à une méthode ou champ particulier du fichier en cours, utilisez la commande Go to File Member disponible en appuyant sur Alt+\. Comme pour Go to Type, commencez à écrire le nom du symbole puis sélectionnez dans la liste de membres correspondants. Cette fonctionnalité est utilisable avec les membres de fichier de tous les langages pris en charge.

Go to Everything/Type

Cette commande, disponible via Ctrl+T, combine deux fonctionnalités différentes :

Go to Everything, qui apparaît en premier, fournit une navigation rapide vers toutes les destinations possibles (types, symboles ou fichiers). La liste des suggestions apparaît dès que vous invoquez la commande et comprend initialement les emplacements de fichiers et code vers lesquels vous avez récemment navigué. Pendant que vous tapez, la liste est mise à jour en fonction de votre saisie. Vous pouvez utiliser les commandes inline spéciales qui commencent par / pour mieux filtrer les résultats de la recherche.

Go to Type, qui apparaît quand vous appuyez de nouveau sur le raccourci, vous permet de naviguer vers n'importe quel type de votre solution.

Ces fonctionnalités et les autres 'Go to' prennent également en charge les caractères de remplacement : * (astérisque) représente zéro caractère ou plus ; les guillemets doubles autour de la demande de recherche exécutera une recherche sur le terme exact ; ? (point d'interrogation) dans une recherche de terme exact représente un caractère unique une fois ;

Go to Text pour la recherche textuelle

Go to Text pour la recherche textuelle

Cette action de navigation, disponible via Ctrl+T,T,T, vous permet de rapidement retrouver n'importe quel texte de la source et fichiers texte inclus dans votre solution. À l'instar d'autres commandes de navigation, si la recherche renvoie trop de résultats, vous pouvez appuyer sur + du pavé numérique pour explorer les résultats dans la fenêtre Find Results. Vous pouvez également utiliser les commandes inline spéciales pour réduire les résultats : /cp pour rechercher dans le projet en cours, /ext: pour rechercher dans les fichiers dotés d'une expression spécifique ou /fm: pour appliquer un masque de fichier spécifique.

Go to Implementation vs Go to Derived Symbols

Go to Implementation

Cette fonctionnalité de navigation, disponible via Ctrl+F12, vous permet de passer d'un membre ou type de base à n'importe laquelle de ses implémentations finales, en contournant les étapes intermédiaires de la chaîne d'héritage.

Le fonctionnement est similaire à Go to Derived Symbols, mais vous gagnez du temps si vous avez à contourner un ou plusieurs niveaux d'une hiérarchie de type. Regardez le GIF pour voir la différence.

Navigation vers une action

Go to Action

ReSharper vous aide à rapidement trouver et appliquer n'importe laquelle de ses actions, sans fouiller dans son menu (par action, nous voulons dire une commande à exécuter disponible à la position actuelle du caret ou une commande qui ouvre une fenêtre d'outil). Pour trouver une action, appuyez simplement sur Alt+Entrée n'importe où dans l'éditeur et commencez à saisir un nom de commande ou des mots liés.

Go to Exposing APIs

Go to Exposing APIs

Cette commande, disponible via le raccourci Navigate To (Alt+`), permet de passer d'un type à tous les emplacements de votre solution où vous pouvez récupérer une instance de ce type : champs et propriétés publiques, valeurs de retour de méthode, paramètres out, etc.

Go to Symbol

Go to Symbol

La commande Go to Symbol recherche des méthodes, champs et autres membres de fichier par nom, et ce dans toute la solution. Cette commande est disponible en appuyant sur Maj+Alt+T. Notez que toutes les commandes « Go to » de ReSharper, y compris Go to Symbol, prennent en charge les CamelHumps qui ne tiennent pas compte des majuscules/minuscules. C'est-à-dire que vous pouvez trouver plus rapidement un membre en saisissant son premier caractère suivi d'autres caractère de son nom. Par exemple, vous pouvez trouver testFixedSizeBuffer en saisissant tfixs.

Go to Base

Go to Base

Vous pouvez remonter la hiérarchie jusqu'à la méthode ou type de base en positionnant le caret dans l'éditeur, sur une utilisation ou déclaration d'un type ou d'une méthode, et en appuyant sur Alt+Home.
Au passage, vous pouvez également voir quand une méthode force, implémente ou masque une autre méthode simplement en regardant les icônes spéciales de la gouttière qui apparaissent à gauche d'une déclaration de méthode. Cliquez sur l'icône pour remonter dans la hiérarchie des méthodes.

Navigation vers une déclaration de symbole

Go to Declaration

Pour naviguer vers la déclaration d'un symbole, mettez le caret sur l'utilisation d'un symbole et appuyez sur F12, ou maintenez Ctrl et cliquez avec le bouton gauche sur le symbole. ReSharper ira à la déclaration du type, méthode, champ ou variable locale correspondant dans le fichier source pertinent. Pour les symboles de bibliothèque, l'entité correspondante sera affichée dans l'Object Browser de Visual Studio ou dans l'éditeur, sous la forme vue de métadonnée ou de code décompilé, en fonction des paramètres de ReSharper.

Navigation entre les utilisations

Naviguer entre les utilisations

Vous pouvez également invoquer la commande Go to Declaration quand votre caret est déjà sur une déclaration de symbole. Si vous avez une déclaration et une utilisation, vous pouvez simplement passer de l'une à l'autre en utilisant un raccourci. Si vous avez plusieurs utilisations d'un symbole, les autres Go to Declaration vous enverront sur les autres utilisations trouvées du symbole, une à la fois. La navigation entre les utilisations est aidée par un panneau du même genre que Find Usages. Il énumère les utilisations trouvées, contient des contrôles supplémentaires pour vous déplacer d'un clic entre les utilisations et vous aide à envoyer toutes les utilisations trouvées dans une fenêtre Find Results classique, si vous le désirez.

Go to Related Files

Cette fonction, disponible en appuyant sur Ctrl+Alt+F7, peut vous envoyer vers n'importe quel fichier référencé d'une manière ou d'une autre dans le fichier actuel. Elle est particulièrement pratique pour les sites et les applications : par exemple, elle vous permet de passer d'un formulaire web à sa page maître, aux contrôles utilisateur ou aux images référencées. Dans les applications ASP.NET MVC, cette fonction simplifie la navigation des vues aux contrôleurs, et inversement.

Pour plus d'informations sur la navigation avancées et les autres fonctionnalités que ReSharper met à disposition des développeurs web, consultez Outils ASP.NET et ASP.NET MVC.

Naviguer vers un fichier proche

Go to File Nearby

Cette fonctionnalité, disponible via le raccourci Navigate To (Alt+`), vous aide à parcourir rapidement la structure du projet autour du fichier actuel. Dans la fenêtre contextuelle ouverte, vous pouvez voir le projet auquel appartient le fichier actuel, ainsi que les dossiers et fichiers au même niveau de répertoire. Vous pouvez facilement parcourir ces fichiers, ou en créer un nouveau ou un nouveau dossier.

Sélectionner l'option de navigation 'Sources from Symbol Files' pour un symbole de bibliothèque

Navigation to Library Code

Toute solution contient à la fois son propre code source et des références à des bibliothèques. Nous avons pensé qu'il serait intéressant de vous permettre de naviguer vers et dans ces bibliothèques, comme vous le faites avec le code source.

Certaines sociétés publient des parties de leurs sources grâce à la fonctionnalité Source Server des fichiers d'information de débogage (PDB). D'un autre côté, Microsoft utilise cette technologie pour fournir un accès au code source du framework .NET. Si vous avez des PDB disponibles et ReSharper installé, vous pouvez accéder de cette manière aux sources stockées, comme si elles faisaient partie de votre solution. Si vous voulez découvrir ce qu'une classe de framework .NET particulière contient, ReSharper vous le montre également.

Même si le serveur source n'est pas disponible, ne vous inquiétez pas : ReSharper est en mesure de reconstruire la structure du code de la bibliothèque à partir des métadonnées.

Voici le fonctionnement quand un serveur source est disponible :

  1. Vous cliquez sur Alt+` sur un symbole de bibliothèque pour ouvrir Navigate To avec la liste des options de navigation.
  2. Vous sélectionnez l'option navigation externe pour un symbole de bibliothèque.
  3. ReSharper télécharge les fichiers PDB depuis un serveur source.
  4. ReSharper affiche la déclaration du symbole de bibliothèque sélectionné, comme s'il était défini dans votre solution.
Découverte d'utilisations de symbole

Find Usages

Find Usages repère rapidement les utilisations d'un symbole (type, méthode, champ, etc.) dans votre code. Positionnez simplement le caret sur le symbole dont vous voulez trouver les utilisations et appuyez sur Maj+F12. Si votre projet compte plusieurs langages, les utilisations trouvées par ReSharper peuvent être de plusieurs langages.

Les résultats de la recherche sont affichés dans la fenêtre Find Results, et organisés en hiérarchie. À partir de cette fenêtre, vous pouvez utiliser votre clavier ou votre souris naviguer directement vers n'importe quelle utilisation. Une autre fonctionnalité de Find Results fournit plusieurs moyens de travailler avec les résultats des recherches, dont :

  • l'aperçu du code source
  • la mise en évidence des utilisations cassées ou inachevées
  • le filtrage par utilisations lecture ou écriture, utilisations d'invocation, utilisations d'attributs, utilisations dans la documentation, et bien d'autres critères
  • le regroupement par type d'utilisation et par catégorie
  • les onglets des recherches d'utilisations récentes, et plus encore.

Vous pouvez naviguer entre les utilisations, quand la fenêtre Find Results est ouverte, en appuyant sur Ctrl+Alt+Pg.Préc/Pg.Suiv (même depuis l'éditeur).

Découverte d'utilisations de symboles liés

Find Usages Advanced

Pour spécifier la portée d'une recherche et le type d'utilisation à trouver, utilisez Find Usages Advanced, disponible en appuyant sur Ctrl+Maj+Alt+F12.

En fonction du contexte, vous serez en mesure de spécifier la portée exacte de la recherche dans votre solution, si vous voulez ou non rechercher dans les bibliothèques référencées, et si vous voulez chercher les occurrences textuelles, les propriétés d'implémentation ou même les références dynamiques au symbole que vous cherchez.

Vue File Structure

File Structure

La fenêtre File Structure est disponible pour tous les langages pris en charge et types de fichier. Dans les fichiers C# ou VB.NET, vous pouvez voir quelles méthodes, champs, classes et régions ils contiennent, et vous pouvez passer directement sur leurs déclarations. Appuyez simplement sur Ctrl+Alt+F.

En ASP.NET, File Structure vous permet d'examiner les balises, scriptlets, contrôles et autres éléments structurels d'un fichier ouvert, et d'aller directement sur leurs déclarations. Consultez Outils ASP.NET et ASP.NET MVC pour obtenir plus d'informations sur l'aide apportée aux développeurs web par les fonctionnalités de navigation et notamment celle-ci.

Dans les scripts de build, File Structure vous permet de voir les propriétés et cibles contenues dans le script actuel.

La fenêtre vous permet également de réorganiser les éléments d'un fichier en les faisant simplement glisser, d'appeler des actions de navigation et des refactorisations, et de créer et supprimer des régions.

La fenêtre File Structure est entièrement synchronisée avec l'éditeur. Toutes les modifications apportées à un fichier sont immédiatement affichées dans File Structure, et vice versa.

Navigation dans la structure avec Tab

Navigation dans la structure avec Tab

ReSharper permet l'utilisation de Tab et Maj+Tab pour parcourir les éléments logiques de votre code, comme vous pourriez parcourir votre navigateur web.

Par exemple, quand vous éditez une déclaration for, Tab sélectionnera la déclaration d'initialisation, puis la condition de fin, et enfin la déclaration de l'itérateur. Maj+Tab opère ces sélections dans l'ordre inverse.

Quand le curseur se trouve avant le premier caractère d'une ligne, autre qu'espace, vous pouvez toujours utiliser Tab pour l'indentation.

Plus d'informations : comment ReSharper rend Tab meilleur

Intermediate Language viewer dans ReSharper

IL Viewer

Avec l'Intermediate Language Viewer, vous pouvez à la fois analyser en profondeur le code d'une bibliothèque tierce et afficher le langage intermédiaire qui correspond à votre propre code source (notez que vous devez d'abord le compiler).

Pour voir comment fonctionne IL Viewer, choisissez ReSharper | Windows | IL Viewer depuis le menu.

Stack Trace Explorer dans ReSharper

Stack Trace Explorer

Quand vous recevez une trace de pile externe (par exemple, d'un rapport de bogue), vous pouvez la copier-coller dans le Stack Trace Explorer pour aller directement à l'origine de l'exception. Les lignes d'une trace de pile seront représentées par des hyperliens. Pour ouvrir Stack Trace Explorer, copiez les traces de pile dans le Presse-papiers et appuyez sur Ctrl+E, T.

Go to File

Go to File

Go to File vous envoie sur n'importe quel fichier de votre solution. Le raccourci de la commande est Ctrl+Maj+T, et cette dernière prend en charge toutes les techniques de recherche et caractères de substitution utilisés dans les autres commandes 'Go to'.

Go to Derived Symbols

Go to Derived Symbols

Cette commande vous permet de retrouver une méthode ou un type dérivé en appuyant sur Alt+Fin. Les héritiers immédiats sont mis en gras.

Go to Generic Substitutions

Go to Generic Substitutions

Cette commande, disponible via le raccourci Navigate To, affiche la liste de tous les types qui remplacent un paramètre de type générique sélectionné, ainsi que tous les emplacements de code où chaque substitution a été utilisée.

Go to Type of Symbol

Go to Type Declaration

Appuyez sur Ctrl+Maj+F11 pour aller à la déclaration d'un type auquel une variable, un champ ou un paramètre appartient. ReSharper passera sur la déclaration dans le code source ou, pour les types de bibliothèques, affichera le symbole correspondant dans l'Object Browser ou le code décompilé.

Go to Next Member/Tag

Vous pouvez rapidement aller au prochain membre de fichier de fichiers de code C# ou VB.NET, ou aller à la prochaine balise de fichiers XML ou XAML, simplement en appuyant sur Alt+Haut.

Go to Previous Member/Tag

À l'instar de Go to Next Member, cette fonction vous envoie au précédent membre ou à la précédente balise. Il vous suffit juste d'appuyer sur Alt+Bas.

Navigation vers l'utilisation d'un symbole

Go to Usage

Vous pouvez facilement accéder à des symboles avec peu d'utilisations (par ex : avec un champ privé) en appuyant sur Maj+Alt+F12. Au lieu d'ouvrir une nouvelle fenêtre d'outil, une fenêtre contextuelle affichera les utilisations.

Cependant, si la fenêtre contextuelle contenant la liste des utilisations de symboles contient trop d'élément, cliquez simplement sur l'icône loupe en haut à droite pour transférer la liste des utilisations vers la fenêtre Find Results.

Mise en évidence des utilisations dans ReSharper

Mise en évidence des utilisations

Pour mettre en évidence les utilisations d'un symbole dans le fichier actuel, positionnez simplement le caret sur une utilisation de symbole et appuyez sur Maj+Alt+F11. Vous pouvez également mettre en évidence les utilisations des directives d'importation d'espace de nom, et même des expressions. Dans les fichiers volumineux, vous pouvez utiliser la barre de balisage à droite pour naviguer entre les utilisations mises en évidence.
ReSharper trouve et met rapidement en évidence les utilisations de symboles dans les balisages XAML, ainsi que dans les langages.

Rechercher et remplacer les schémas listés dans ReSharper Pattern Catalog

Recherche structurelle et remplacement

Cette fonctionnalité vous permet de créer des schémas pour rechercher des code smells et du code hérité que ReSharper ne détecte pas naturellement, puis de les remplacer par du bon code. Plus encore, pour faciliter la suppression régulière de code douteux, vous pouvez créer des inspections de code personnalisées et configurer Resharper pour qu'il s'occupe de correctifs rapides dans ce sens.

Construire des modèles et veiller au respect des bonnes pratiques n'a jamais été aussi simple. Politiques d'entreprise et d'équipe, frameworks personnalisés, bibliothèques et outils open source préférés, les schémas structurés sont en mesure de tous les couvrir. En bonus, vous pouvez importer et exporter les meilleurs schémas pour les partager avec vos collègues ou les déplacer d'une installation ReSharper à une autre.

Vue Type Hierarchy

Type Hierarchy

Avec ReSharper, vous pouvez voir la hiérarchie d'héritage d'un certain type dans une fenêtre dédiée. Cette fenêtre affiche les types de base et les héritiers du type sélectionné, et vous permet de les parcourir d'un seul clic. Pour les nœuds de la hiérarchie, vous pouvez tout afficher ou seulement les membres polymorphiques dans un écran d'aperçu séparé.
Pour ouvrir la fenêtre Type Hierarchy d'un type, positionnez le caret sur le nom de type et appuyez sur Ctrl+Alt+H, ou sélectionnez ReSharper | View | Type Hierarchy.

Marque-pages ReSharper

Marque-pages

Voici une fonctionnalité simple, mais puissante : un simple raccourci vous permet de laisser un marqueur numéroté, et un autre vous permet de retourner à tout moment à ce marqueur. Vous pouvez créer jusqu'à 10 marqueurs numérotés, et un nombre illimité de marque-pages sans numéro. La liste complète des emplacements marqués est affichée dans une seule fenêtre contextuelle pour accélérer la navigation entre les points de code.

Afficher les fichiers récents avec ReSharper

View Recent Files

Appuyez sur Ctrl+, pour ouvrir une fenêtre contextuelle contenant la liste des fichiers récemment ouverts. Vous pouvez alors sélectionner n'importe quel élément pour le retrouver immédiatement.

Afficher les emplacements de code récemment édités, avec ReSharper

View Recent Edits (et Go to Last Edit Location)

Recent Edits fonctionne comme Recent Files et vous permet d'afficher dans une fenêtre contextuelle la liste des fichiers et symboles récemment modifiés. Si vous avez démarré votre session d'édition actuelle depuis un moment, réduisez la liste en saisissez le nom du fichier que vous cherchez à rouvrir.

Vous pouvez aussi utiliser Go to Last Edit Location, Ctrl+Maj+Retour pour rapidement positionner le caret sur le dernier endroit où vous avez modifié votre code, sans avoir à afficher de fenêtre contextuelle. Si vous appuyez à nouveau sur ce raccourci, vous irez plus loin dans l'historique de vos éditions.

To-do Explorer

To-do Explorer

To-do Explorer vous aide à suivre tous vos éléments de rappel marqués des balises todo, note et/ou bug, mais également les emplacements du code où NotImplementedException a été utilisé. To-do Explorer récupère tous les éléments de tous les fichiers de votre solution et les affiche dans une même fenêtre d'outil.

Si vous utilisez vos propres marqueurs pour créer des notes dans les commentaires de votre note, vous pouvez configurer un schéma personnaliser que To-do Explorer retrouvera.

Process Explorer

Process Explorer

La fenêtre Process Explorer affiche tous les processus en cours d'exécution, et permet d'en explorer les modules et de décomposer ceux qui se trouvent être des assemblies .NET.

Vous pouvez choisir d'afficher ou de masquer les processus et modules natifs, ou d'activer la vue de la hiérarchie des processus.

Filtrez la liste pour trouver le module ou processus que vous cherchez, puis ajoutez ses assemblies à Assembly Explorer pour mieux les étudier.

Remarque sur les raccourcis

Tous les raccourcis clavier indiqués sur cette page sont disponibles dans la configuration clavier "Visual Studio" par défaut de ReSharper . Pour en savoir plus sur les deux configurations clavier de ReSharper, consultez la Documentation ReSharper.