Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Cet article fournit une vue d’ensemble de l’outil Visualiseur de syntaxe fourni dans le cadre du SDK .NET Compiler Platform (« Roslyn »). Le visualiseur de syntaxe est une fenêtre d’outil qui vous permet d’inspecter et d’explorer les arborescences de syntaxe. Il s’agit d’un outil essentiel pour comprendre les modèles de code que vous souhaitez analyser. Il s’agit également d’une aide de débogage lorsque vous développez vos propres applications à l’aide du SDK .NET Compiler Platform (« Roslyn »). Ouvrez cet outil lorsque vous créez vos premiers analyseurs. Le visualiseur vous aide à comprendre les modèles utilisés par les API. Vous pouvez également utiliser des outils tels que SharpLab ou LINQPad pour inspecter le code et comprendre les arborescences de syntaxe.
Instructions d’installation - Visual Studio Installer
Il existe deux façons de trouver le Kit de développement logiciel (SDK) de la plateforme du compilateur .NET dans Visual Studio Installer :
Installer à l’aide de l’affichage Visual Studio Installer - Charges de travail
Le Kit de développement logiciel (SDK) de la plateforme du compilateur .NET n’est pas automatiquement sélectionné dans le cadre de la charge de travail de développement d’extension Visual Studio. Vous devez le sélectionner en tant que composant facultatif.
- Exécuter Visual Studio Installer
- Sélectionnez Modifier
- Choisissez la charge de travail Développement d’extensions Visual Studio.
- Ouvrez le nœud de développement d’extension Visual Studio dans l’arborescence récapitulative.
- Cochez la case pour le Kit de développement logiciel (SDK) de la plateforme du compilateur .NET. Vous le trouverez en dernier sous les composants facultatifs.
Si vous le souhaitez, vous souhaiterez également que l’éditeur DGML affiche des graphiques dans le visualiseur :
- Ouvrez le nœud Composants individuels dans l’arborescence récapitulative.
- Cochez la case pour l’éditeur DGML
Installer à l’aide de l’onglet Visual Studio Installer - Composants individuels
- Exécuter Visual Studio Installer
- Sélectionnez Modifier
- Sélectionnez l’onglet Composants individuels
- Cochez la case pour le Kit de développement logiciel (SDK) de la plateforme du compilateur .NET. Vous le trouverez en haut sous la section Compilateurs, outils de génération et runtimes .
Si vous le souhaitez, vous souhaiterez également que l’éditeur DGML affiche des graphiques dans le visualiseur :
- Cochez la case pour l’éditeur DGML. Vous le trouverez sous la section Outils de code .
Familiarisez-vous avec les concepts utilisés dans le Kit de développement logiciel (SDK) .NET Compiler Platform en lisant l’article de vue d’ensemble . Il fournit une introduction aux arborescences de syntaxe, aux nœuds, aux jetons et aux trivia.
Visualiseur de syntaxe
Le visualiseur de syntaxe permet d’inspecter l’arborescence de syntaxe pour le fichier de code C# ou Visual Basic dans la fenêtre d’éditeur active actuelle à l’intérieur de l’IDE Visual Studio. Le visualiseur peut être lancé en cliquant sur Afficher>d’autresvisualiseurs de syntaxe Windows>. Vous pouvez également utiliser la barre d’outils Lancement rapide dans le coin supérieur droit. Tapez « syntaxe », et la commande permettant d’ouvrir le visualiseur de syntaxe doit apparaître.
Cette commande ouvre le visualiseur de syntaxe en tant que fenêtre d’outil flottante. Si vous n’avez pas de fenêtre d’éditeur de code ouverte, l’affichage est vide, comme illustré dans la figure suivante.

Ancrez cette fenêtre d’outil à un emplacement pratique à l’intérieur de Visual Studio, tel que le côté gauche. Le visualiseur affiche des informations sur le fichier de code actuel.
Créez un projet à l’aide de la commande Fichier>nouveau projet . Vous pouvez créer un projet Visual Basic ou C#. Lorsque Visual Studio ouvre le fichier de code principal pour ce projet, le visualiseur affiche l’arborescence de syntaxe pour celle-ci. Vous pouvez ouvrir n’importe quel fichier C# / Visual Basic existant dans cette instance de Visual Studio, et le visualiseur affiche l’arborescence de syntaxe de ce fichier. Si vous avez plusieurs fichiers de code ouverts à l’intérieur de Visual Studio, le visualiseur affiche l’arborescence de syntaxe du fichier de code actuellement actif (fichier de code qui a le focus clavier.)
Comme indiqué dans les images précédentes, la fenêtre de l’outil visualiseur affiche l’arborescence de syntaxe en haut et une grille de propriétés en bas. La grille de propriétés affiche les propriétés de l'élément actuellement sélectionné dans l'arborescence, y compris le Type .NET et le Genre (SyntaxKind) de l'élément.
Les arborescences de syntaxe comprennent trois types d’éléments : nœuds, jetons et trivia. Vous pouvez en savoir plus sur ces types dans l’article Work with syntax . Les éléments de chaque type sont représentés à l’aide d’une couleur différente. Cliquez sur le bouton « Légende » pour obtenir une vue d’ensemble des couleurs utilisées.
Chaque élément de l’arborescence présente également sa propre étendue. L’étendue correspond aux index (position de départ et de fin) de ce nœud dans le fichier texte. Dans le précédent exemple C#, le jeton « UsingKeyword [0..5) » a une étendue de cinq caractères de large, [0..5). La convention « [..) » signifie que l’index de départ fait partie de l’étendue, mais que l’index de fin n’en fait pas partie.
Il existe deux façons de naviguer dans l’arborescence :
- Déroulez ou cliquez sur les éléments de l'arborescence. Le visualiseur sélectionne automatiquement le texte correspondant à l’étendue de cet élément dans l’éditeur de code.
- Cliquez ou sélectionnez du texte dans l’éditeur de code. Dans l’exemple Visual Basic précédent, si vous sélectionnez la ligne contenant « Module Module1 » dans l’éditeur de code, le visualiseur accède automatiquement au nœud ModuleStatement correspondant dans l’arborescence.
Le visualiseur met en surbrillance l’élément de l’arborescence dont l’étendue correspond le mieux à l’étendue du texte sélectionné dans l’éditeur.
Le visualiseur actualise l’arborescence pour qu’elle corresponde aux modifications dans le fichier de code actif. Ajoutez un appel à Console.WriteLine() à l'intérieur de Main(). Pendant la frappe, le visualiseur actualise l’arborescence.
Suspendre la saisie une fois que vous avez tapé Console.. L’arbre a des éléments colorés en rose. À ce stade, il existe des erreurs (également appelées « Diagnostics ») dans le code typé. Ces erreurs sont attachées aux nœuds, aux jetons et aux trivia dans l’arborescence de syntaxe. Le visualiseur vous montre quels éléments ont des erreurs attachées à celles-ci mettant en évidence l’arrière-plan en rose. Vous pouvez inspecter les erreurs sur n’importe quel élément coloré rose en pointant sur l’élément. Le visualiseur affiche uniquement les erreurs syntaxiques (ces erreurs liées à la syntaxe du code typé) ; elle n’affiche aucune erreur sémantique.
Graphes de syntaxe
Cliquez avec le bouton droit sur n’importe quel élément de l’arborescence, puis cliquez sur Afficher le graphique de syntaxe dirigée.
Le visualiseur affiche une représentation graphique de la sous-arborescence enracinée à l’élément sélectionné. Essayez ces étapes pour le nœud MethodDeclaration correspondant à la Main() méthode dans l’exemple C#. Le visualiseur affiche un graphique de syntaxe qui se présente comme suit :

La visionneuse de graphiques de syntaxe a la possibilité d’afficher une légende pour son jeu de couleurs. Vous pouvez également pointer sur des éléments individuels dans le graphique de syntaxe avec la souris pour afficher les propriétés correspondant à cet élément.
Vous pouvez afficher des graphiques de syntaxe pour différents éléments de l’arborescence à plusieurs reprises et les graphiques sont toujours affichés dans la même fenêtre à l’intérieur de Visual Studio. Vous pouvez ancrer cette fenêtre à un emplacement pratique à l’intérieur de Visual Studio afin que vous n’ayez pas à basculer entre les onglets pour afficher un nouveau graphique de syntaxe. La partie inférieure, sous les fenêtres de l’éditeur de code, est souvent pratique.
Voici la disposition d’ancrage à utiliser avec la fenêtre de l’outil visualiseur et la fenêtre de graphe de syntaxe :

Une autre option consiste à placer la fenêtre de graphe de syntaxe sur un deuxième moniteur, dans une configuration double moniteur.
Inspection de la sémantique
Le visualiseur de syntaxe permet une inspection rudimentaire des symboles et des informations sémantiques. Tapez double x = 1 + 1; à l’intérieur de Main() dans l’exemple C#. Sélectionnez ensuite l’expression 1 + 1 dans la fenêtre de l’éditeur de code. Le visualiseur met en surbrillance le nœud AddExpression dans le visualiseur. Cliquez avec le bouton droit sur cet AddExpression, puis cliquez sur Afficher le symbole (le cas échéant). Notez que la plupart des éléments de menu ont le qualificateur « le cas échéant ». Le visualiseur de syntaxe inspecte les propriétés d’un nœud, y compris les propriétés qui peuvent ne pas être présentes pour tous les nœuds.
La grille de propriétés du visualiseur est mise à jour comme indiqué dans la figure suivante : le symbole de l’expression est un SynthesizedIntrinsicOperatorSymbol avec Kind = Method.

Cliquez avec le bouton droit sur le même nœud AddExpression et sélectionnez View TypeSymbol (le cas échéant). La grille de propriétés dans le visualiseur est mise à jour comme indiqué dans la figure suivante, indiquant que le type de l’expression sélectionnée est Int32.

Cliquez avec le bouton droit sur le même nœud AddExpression et sélectionnez Afficher le typeSymbol converti (le cas échéant). La grille de propriétés est mise à jour indiquant que bien que le type de l’expression soit Int32, le type converti de l’expression est Double tel qu’illustré dans la figure suivante. Ce nœud inclut des informations de symbole de type converties, car l’expression Int32 se produit dans un contexte où elle doit être convertie en un Double. Cette conversion satisfait le Double type spécifié pour la variable x sur le côté gauche de l’opérateur d’affectation.

Enfin, cliquez avec le bouton droit sur le même nœud AddExpression et sélectionnez Afficher la valeur constante (le cas échéant). La grille de propriétés indique que la valeur de l’expression est une constante de temps de compilation avec valeur 2.

L’exemple précédent peut également être répliqué en Visual Basic. Tapez Dim x As Double = 1 + 1 dans un fichier Visual Basic. Sélectionnez l’expression 1 + 1 dans la fenêtre de l’éditeur de code. Le visualiseur met en surbrillance le nœud AddExpression correspondant dans le visualiseur. Répétez les étapes précédentes pour cet AddExpression et vous devriez voir des résultats identiques.
Examinez plus de code dans Visual Basic. Mettez à jour votre fichier Visual Basic principal avec le code suivant :
Imports C = System.Console
Module Program
Sub Main(args As String())
C.WriteLine()
End Sub
End Module
Ce code introduit un alias nommé C qui est mappé au type System.Console en haut du fichier et utilise cet alias à l’intérieur Main(). Sélectionnez l’utilisation de cet alias, le C dans C.WriteLine(), à l’intérieur de la méthode Main(). Le visualiseur sélectionne le nœud IdentifierName correspondant dans le visualiseur. Cliquez avec le bouton droit sur ce nœud, puis cliquez sur Afficher le symbole (le cas échéant). La grille de propriétés indique que cet identificateur est lié au type System.Console , comme illustré dans la figure suivante :

Cliquez avec le bouton droit sur le même nœud IdentifierName et sélectionnez Afficher aliasSymbol (le cas échéant). La grille de propriétés indique que l’identificateur est un alias portant le nom C lié à la System.Console cible. En d’autres termes, la grille de propriétés fournit des informations sur l’AliasSymbol correspondant à l’identificateur C.

Inspectez le symbole correspondant à n’importe quel type déclaré, méthode, propriété. Sélectionnez le nœud correspondant dans le visualiseur et cliquez avec le bouton droit pour accéder au symbole d’affichage (le cas échéant). Sélectionnez la méthode Sub Main(), y compris le corps de la méthode. Cliquez avec le bouton droit sur le nœud SubBlock correspondant dans le visualiseur, puis sélectionnez Afficher le symbole (le cas échéant). La grille des propriétés montre que le MethodSymbol de ce SubBlock porte le nom Main avec un type de retour Void.

Les exemples Visual Basic ci-dessus peuvent être facilement répliqués en C#. Tapez using C = System.Console; à la place de l’alias Imports C = System.Console. Les étapes précédentes en C# produisent des résultats identiques dans la fenêtre du visualiseur.
Les opérations d’inspection sémantique sont disponibles uniquement sur les nœuds. Ils ne sont pas disponibles sur des jetons ou des trivia. Tous les nœuds n’ont pas d’informations sémantiques intéressantes à inspecter. Lorsqu’un nœud n’a pas d’informations sémantiques intéressantes, cliquez avec le bouton droit et sélectionnez Afficher * Symbole (le cas échéant) affiche une grille de propriétés vide.
Vous pouvez en savoir plus sur les API pour effectuer une analyse sémantique dans le document de présentation de Work with semantics.
Fermeture du visualiseur de syntaxe
Vous pouvez fermer la fenêtre du visualiseur lorsque vous ne l’utilisez pas pour examiner le code source. Le visualiseur de syntaxe met à jour son affichage lorsque vous parcourez le code, modifiez et modifiez la source. Il peut se distraire lorsque vous ne l’utilisez pas.


