Partager via


outils de prise en charge de Symbole-Navigation

Les outils d'Explorateur d'objets, d' Affichage de classes, d' Explorateur d'appels et de Résultats de la recherche de symbole fournissent des fonctionnalités de navigation de symbole dans Visual Studio. Ces outils affichent des arborescences hiérarchiques des symboles et affichent les relations entre les symboles dans l'arborescence. Les symboles peuvent représenter des espaces de noms, des objets, des classes, des membres de la classe, et d'autres éléments de langage contenus dans différents composants. Les composants incluent les projets Visual Studio, les composants externes de .NET Framework et des bibliothèques de types (.tlb). Pour plus d'informations, consultez Affichage de la structure du code.

bibliothèques de Symbole-Navigation

En tant qu'implémenteur de langage, vous pouvez étendre les fonctions de symbole-navigation Visual Studio en créant des bibliothèques qui suivent les symboles dans les composants et fournissent des listes de symboles dans le gestionnaire d'objets de Visual Studio via un jeu d'interfaces. Une bibliothèque est représentée par l'interface d' IVsSimpleLibrary2 . Le gestionnaire d'objets Visual Studio répond aux demandes de nouvelles données des outils de symbole-navigation en obtenant les données des bibliothèques et en les organisant. Il ensuite remplit ou met à jour outils avec les données demandées. Pour obtenir une référence au gestionnaire d'objets de Visual Studio, IVsObjectManager2, passez l'ID de service d' SVsObjectManager à la méthode d' GetService .

Chaque bibliothèque doit s'inscrire le gestionnaire d'objets Visual Studio, qui collecte les informations sur toutes les bibliothèques. Pour inscrire une bibliothèque, appelez la méthode d' RegisterSimpleLibrary . Selon l'outil initialise la demande, le gestionnaire d'objets Visual Studio recherche la bibliothèque appropriée et demande de données. L'itinéraire de données entre les bibliothèques et le gestionnaire d'objets de Visual Studiodans les listes de symboles décrits par IVsSimpleObjectList2 interface.

Le gestionnaire d'objets de Visual Studioest chargé d'actualiser régulièrement des outils de symbole-navigation pour refléter les données les plus récentes contenues dans les bibliothèques.

Le diagramme ci-dessous contient un exemple des éléments clés des requêtes par le processus d'échange de données entre une bibliothèque et le gestionnaire d'objets de Visual Studio. les interfaces dans le diagramme font partie d'une application de code managé.

Flux de données entre une bibliothèque et le gestionnaire d'objets

Pour fournir les listes de symboles dans le gestionnaire d'objets de Visual Studio, vous devez d'abord enregistrer la bibliothèque avec le gestionnaire d'objets Visual Studio en appelant la méthode d' RegisterSimpleLibrary . Une fois la bibliothèque peut être enregistrée, le gestionnaire d'objets Visual Studio demande certaines informations sur les fonctions de la bibliothèque. Par exemple, il demande des balises de bibliothèque et les catégories prend en charge en appelant les méthodes d' GetLibFlags2 et d' GetSupportedCategoryFields2 . À un moment donné, lorsque l'un des outils demande de données de cette bibliothèque, le gestionnaire d'objets demande la liste de niveau supérieur de symboles en appelant la méthode d' GetList2 . En réponse, la bibliothèque fabrique une liste de symboles et l'expose au gestionnaire d'objets de Visual Studio via l'interface d' IVsSimpleObjectList2 . Le gestionnaire d'objets de Visual Studiodétermine le nombre d'éléments sont dans la liste en appelant la méthode d' GetItemCount . Toutes les demandes suivantes mettent en relation avec un élément donné dans la liste et fournissent l'index d'élément dans chaque demande. Le gestionnaire d'objets Visual Studio continue à collecter des informations sur le type, l'accessibilité, et d'autres propriétés de l'élément en appelant la méthode d' GetCategoryField2 .

Il détermine le nom de l'élément en appelant la méthode d' GetTextWithOwnership et demander des informations d'icône en appelant la méthode d' GetDisplayData . L'icône est affichée à gauche du nom de l'élément et représente le type de l'élément, de l'accessibilité, et d'autres propriétés.

Le gestionnaire d'objets de Visual Studio appelle la méthode d' GetExpandable3 pour déterminer si un élément de liste donné peut être développé et a des éléments enfants. Si l'interface utilisateur envoie une requête de développer un élément, le gestionnaire d'objets demande la liste enfant de symboles en appelant la méthode d' GetList2 . Le processus se poursuit différentes parties de l'arborescence en cours de génération à la demande.

Notes

Pour implémenter un fournisseur de symbole de code natif, utilisez les interfaces d' IVsLibrary2 et d' IVsObjectList2 .

Voir aussi

Tâches

Comment : enregistrez une bibliothèque avec le gestionnaire d'objets

Comment : listes d'exposition de symboles fournis par la bibliothèque au gestionnaire d'objets

Comment : Identifiez les symboles dans une bibliothèque