Partager via


Microsoft.CodeAnalysis.Editing Espace de noms

Classes

DocumentEditor

Éditeur permettant d’apporter des modifications à l’arborescence de syntaxe d’un document.

ImportAdder
SolutionEditor

Éditeur permettant d’apporter des modifications à plusieurs documents dans une solution.

SymbolEditor

Éditeur pour apporter des modifications aux déclarations sources de symboles.

SymbolEditorExtensions
SyntaxEditor

Éditeur pour apporter des modifications à une arborescence de syntaxe. L’éditeur fonctionne en donnant une liste des modifications à effectuer dans une arborescence particulière dans l’ordre. Les modifications sont indiquées SyntaxNode dans l’arborescence d’origine pour laquelle l’éditeur est créé. La sémantique de l’application est la suivante :

  1. La racine d’origine fournie est utilisée comme racine « actuelle » pour toutes les opérations. Cette racine « actuelle » sera continuellement mise à jour, devenant la nouvelle racine « actuelle ». La racine d’origine n’est jamais modifiée.
  2. Chaque modification a son suivi donné SyntaxNode , à l’aide d’un SyntaxAnnotation, ce qui produit une racine « actuelle » qui les suit toutes. Cela permet de trouver ce même nœud après l’application des modifications précédentes qui mutent l’arborescence.
  3. Chaque modification est ensuite appliquée dans l’ordre dans lequel elle a été ajoutée à l’éditeur.
  4. Une modification tente d’abord de la trouver SyntaxNode dans la racine « actuelle ». Si ce nœud est introuvable, l’opération échoue avec un ArgumentException.
  5. La modification particulière s’exécutera sur ce nœud, en supprimant, en remplaçant ou en insérant autour de celui-ci en fonction de la modification. Si la modification est transmise à un délégué comme argument « compute », il reçoit le SyntaxNode trouvé dans la racine actuelle. La racine « actuelle » sera ensuite mise à jour en remplaçant le nœud actuel par le nouveau nœud calculé.
  6. La racine « actuelle » est ensuite retournée.
SyntaxEditorExtensions
SyntaxGenerator

Fabrique indépendante du langage pour la création de nœuds de syntaxe.

Cette API peut être utilisée pour créer des nœuds de syntaxe spécifiques au langage qui sont sémantiquement similaires entre les langages.

Les arborescences générées par cette API essaient de respecter les préférences utilisateur dans la mesure du possible. Par exemple, la génération MemberAccessExpression(SyntaxNode, String) s’effectue de telle sorte que « this » ou « Me » soit simplifié en fonction de la préférence de l’utilisateur si Simplifier est utilisé.

Structures

DeclarationModifiers

Énumérations

DeclarationKind
OperatorKind
SpecialTypeConstraintKind

Délégués

SymbolEditor.AsyncDeclarationEditAction

Action qui apporte des modifications à un nœud de déclaration dans un SyntaxTree.

SymbolEditor.DeclarationEditAction

Action qui apporte des modifications à un nœud de déclaration dans un SyntaxTree.