Naviguer dans le code C++ dans Visual Studio

Visual Studio fournit une suite d’outils qui vous permettent de naviguer dans votre codebase rapidement et efficacement.

Ouvrir un fichier inclus

Cliquez avec le bouton de droite sur une directive #include, puis sélectionnez Atteindre le document. Ou sélectionnez F12 avec le curseur sur cette ligne pour ouvrir le fichier.

Capture d’écran de l’option de menu C++ Atteindre le document dans le contexte de certaines instructions Include.

Afficher ou masquer l’en-tête / le fichier de code

Vous pouvez basculer entre un fichier d’en-tête et son fichier source correspondant. Cliquez avec le bouton de droite n’importe où dans votre fichier, puis sélectionnez Afficher ou masquer l'en-tête / le fichier de code. Ou bien, vous pouvez également sélectionner Ctrl+K, Ctrl+O.

Accéder à la définition/déclaration

Vous pouvez accéder à la définition d’un élément de code en cliquant avec le bouton de droite dans l’éditeur et en sélectionnant Atteindre la définition ou en sélectionnant F12. Vous pouvez accéder à une déclaration de la même façon en cliquant avec le bouton de droite pour ouvrir le menu contextuel ou en sélectionnant Ctrl+F12.

Capture d’écran des options qui s’affichent lorsque vous cliquez avec le bouton droit sur un élément de code. Inclut Atteindre la définition, Aperçu de la définition et Atteindre la déclaration.

Atteindre

Atteindre fait référence à un ensemble de fonctionnalités de navigation qui fournissent chacune un résultat spécifique basé sur des filtres que vous spécifiez.

Vous pouvez ouvrir Atteindre avec Ctrl+,. Cette action crée une zone de recherche au-dessus du document en cours de modification.

Capture d’écran de la zone de recherche qui s’affiche lorsque vous ouvrez Atteindre. Elle comprend une zone de texte pour les termes à rechercher, ainsi que des filtres pour les types, les fichiers récents, etc.

Atteindre inclut les filtres de recherche suivants :

  • Atteindre la ligne (Ctrl+G) : passer rapidement à une autre ligne dans votre document actuel.
  • Atteindre tout (Ctrl+,) ou (Ctrl+T) : les résultats de la recherche incluent tout ce qui suit.
  • Accéder au fichier (Ctrl 1, F) : rechercher des fichiers dans votre solution.
  • Atteindre le type (Ctrl 1, T) : les résultats de la recherche incluent :
    • Classes, structs et énumérations.
    • Interfaces et délégués (code managé uniquement).
  • Atteindre le membre (Ctrl 1, M) : les résultats de la recherche incluent :
    • Variables globales et fonctions globales.
    • Variables membres de classe et fonctions membres.
    • Constantes.
    • Éléments d’énumération.
    • Propriétés et événements.
  • Atteindre le symbole (Ctrl 1, S) : les résultats de la recherche incluent :
    • Résultats issus des recherches Atteindre les types et Atteindre les membres.
    • Toutes les autres constructions de langage C++, y compris les macros.

Quand vous appelez Atteindre avec Ctrl + pour la première fois, Atteindre tout est activé (aucun filtre n’est appliqué aux résultats de la recherche). Vous pouvez ensuite sélectionner le filtre que vous souhaitez en utilisant les boutons près de la zone de recherche. Vous pouvez appeler un filtre spécifique à l’aide de son raccourci clavier. Cette action ouvre la zone de recherche Atteindre avec ce filtre présélectionné. Tous les raccourcis clavier sont configurables.

Pour appliquer un filtre de texte, démarrez votre requête de recherche avec le caractère correspondant du filtre suivi d’un espace. (Atteindre la ligne peut éventuellement omettre l’espace.) Les filtres de texte disponibles sont les suivants :

  • Atteindre tout : (aucun filtre de texte)
  • Atteindre un numéro de ligne spécifié : :
  • Accéder au fichier : f
  • Atteindre le type : t
  • Atteindre le membre : m
  • Atteindre le symbole : #

L’exemple suivant montre les résultats issus d’une opération Atteindre les fichiers utilisant le filtre « f » :

Capture d’écran des résultats d’Atteindre les fichiers. L’utilisateur tapé « f str ». Les chaînes string_utils.cpp et string_utils.h s’affichent parce qu’elles contiennent str dans le nom.

Pour afficher la liste des filtres de texte, tapez un caractère  ? suivi d’un espace. Vous pouvez également accéder aux commandes Atteindre avec le menu Edition. C’est une autre façon de mémoriser les principaux raccourcis clavier Atteindre.

Capture d’écran du menu Atteindre avec des options telles que Atteindre la ligne (Ctrl+G), Atteindre le fichier (Ctrl+1, Ctrl+F), et bien plus encore.

Rechercher ou Rechercher dans les fichiers

Vous pouvez exécuter une recherche de texte pour quoi que ce soit dans votre solution avec Rechercher ou (Ctrl+F) ou Rechercher dans les fichiers (Ctrl+Maj+F).

Rechercher peut être étendue à une sélection, au document actuel, à tous les documents ouverts, au projet actuel ou à l’ensemble de la solution. Vous pouvez utiliser des expressions régulières ainsi que du texte brut. En outre, la recherche met en évidence toutes les correspondances automatiquement dans l’IDE.

Capture d’écran de la boîte de dialogue Rechercher. L’utilisateur a recherché Canal. Les mises en évidence de couleur jaune dans le fichier indiquent tous les emplacements où Canal figure.

La fonctionnalité Rechercher dans les fichiers est une version plus puissante de la fonctionnalité Rechercher qui affiche les résultats dans la fenêtre Résultats de la recherche. Vous pouvez, entre autres, effectuer une recherche dans des dépendances de code externes et filtrer par types de fichiers.

Capture d’écran de la boîte de dialogue Rechercher et remplacer. La page Rechercher dans les fichiers est sélectionnée. Des options s’affichent pour la correspondance de la casse, du mot entier, etc.

Vous pouvez organiser les résultats de Rechercher dans les fichiers dans deux fenêtres. Vous pouvez rassembler les résultats de plusieurs recherches. Sélectionnez un résultat pour accéder à l’emplacement concerné dans le fichier.

Capture d’écran montrant un résultat de Rechercher dans les fichiers répertoriant les fichiers contenant du texte correspondant à la chaîne de recherche et un extrait de chaque correspondance.

Pour plus d’informations, consultez Rechercher dans les fichiers dans la documentation de Visual Studio.

Rechercher toutes les références

Pour rechercher toutes les utilisations d’un symbole dans votre codebase, placez le signe insertion dans ou juste après le symbole, puis cliquez avec le bouton de droite et sélectionnez Rechercher toutes les références. Vous pouvez filtrer, trier ou regrouper les résultats de différentes manières. Les résultats se remplissent de façon incrémentielle. Ils sont classés en tant que lectures ou écritures pour vous aider à voir ce que contient votre solution, par opposition aux en-têtes système ou aux autres bibliothèques.

Capture d’écran des résultats de Rechercher toutes les références, montrant la ligne où le symbole a été trouvé, le fichier et le projet dans lesquels il se trouve, et ainsi de suite.

Vous pouvez regrouper les résultats en fonction des catégories suivantes :

  • Projet, puis définition
  • Définition uniquement
  • Définition, puis projet
  • Définition, puis chemin
  • Définition, projet, puis chemin

Filtrer les résultats

Pour filtrer les résultats, placez le curseur sur une colonne, puis sélectionnez l’icône de filtre qui s’affiche. Vous pouvez filtrer les résultats de la première colonne pour masquer des éléments que vous ne souhaitez peut-être pas voir, tels que les références de chaîne et de commentaire.

Capture d’écran des options de filtrage : Confirmés, Non confirmés, En commentaire et Non traités. Chacune d’elles indique le nombre de résultats qui s’appliquent à cette catégorie.

  • Résultats confirmés : références de code réelles au symbole faisant l’objet de la recherche. Par exemple, la recherche d’une fonction membre appelée Size retourne toutes les références à Size qui correspondent à la portée de la classe définissant Size.

  • Résultats non confirmés : ce filtre est désactivé par défaut, car il affiche les symboles dont le nom correspond, mais qui ne sont pas des références réelles au symbole que vous recherchez. Par exemple, si vous avez deux classes qui définissent chacune une fonction membre appelée Size et que vous exécutez une recherche de Size sur une référence à partir d’un objet de Class1, toutes les références à Size à partir de Class2 apparaissent comme étant non confirmées.

  • Résultats non traités : les opérations Rechercher toutes les références peuvent prendre un certain temps sur les codes base plus grands ; ainsi, la liste des résultats affiche les résultats « non traités » ici. Les résultats non traités correspondent au nom du symbole faisant l’objet d’une recherche, mais qui n’ont pas encore été confirmés en tant que références de code réelles. Vous pouvez activer ce filtre pour obtenir des résultats plus rapidement. Certains résultats peuvent ne pas être des références réelles.

Trier les résultats

Vous pouvez trier les résultats en fonction de n’importe quelle colonne en la sélectionnant. Vous pouvez passer de l’ordre croissant à l’ordre décroissant en sélectionnant la colonne à nouveau.

Vous pouvez accéder à la définition d’un type dans un fichier ou à des membres de type, à l’aide de la Barre de navigation située au-dessus de la fenêtre de l’éditeur.

Capture d’écran de la barre de navigation au-dessus de la fenêtre de l’éditeur. Elle affiche cryptlib > ChannelSwitch > ChannelMessageSeriesEnd().

Voir aussi