Freigeben über


Microsoft.CodeAnalysis.Editing Namespace

Klassen

Name Beschreibung
DocumentEditor

Ein Editor zum Vornehmen von Änderungen an der Syntaxstruktur eines Dokuments.

ImportAdder
SolutionEditor

Ein Editor zum Vornehmen von Änderungen an mehreren Dokumenten in einer Lösung.

SymbolEditor

Ein Editor zum Vornehmen von Änderungen an Symbolquelldeklarationen.

SymbolEditorExtensions
SyntaxEditor

Ein Editor zum Vornehmen von Änderungen an einer Syntaxstruktur. Der Editor funktioniert, indem eine Liste der Änderungen an einer bestimmten Struktur in der angegebenen Reihenfolge angezeigt wird. Änderungen werden in SyntaxNode der ursprünglichen Struktur angewendet, für die der Editor erstellt wird. Die Semantik der Anwendung lautet wie folgt:

  1. Der ursprüngliche bereitgestellte Stamm wird als "aktueller" Stamm für alle Vorgänge verwendet. Dieser 'aktuelle' Stamm wird ständig aktualisiert und wird zum neuen 'aktuellen' Stamm. Der ursprüngliche Stamm wird nie geändert.
  2. Jede Änderung hat ihre SyntaxNode Überarbeitung unter Verwendung eines SyntaxAnnotation,, die einen "aktuellen" Stamm erzeugt, der alle nachverfolgt. Auf diese Weise kann derselbe Knoten gefunden werden, nachdem vorherige Änderungen angewendet wurden, die die Struktur stummschalten.
  3. Jede Änderung wird dann in der Reihenfolge angewendet, in der sie dem Editor hinzugefügt wurde.
  4. Eine Änderung versucht zuerst, die SyntaxNode Änderung im 'aktuellen' Stamm zu finden. Wenn dieser Knoten nicht gefunden werden kann, schlägt der Vorgang mit einem ArgumentException.
  5. Die jeweilige Änderung wird auf diesem Knoten ausgeführt, entfernt, ersetzt oder entsprechend der Änderung eingefügt. Wenn die Änderung als Argument "compute" an einen Delegaten übergeben wird, erhält sie den SyntaxNode gefundenen im aktuellen Stammverzeichnis. Der Stamm "current" wird dann aktualisiert, indem der aktuelle Knoten durch den neuen berechneten Knoten ersetzt wird.
  6. Der Stamm 'current' wird dann zurückgegeben.
SyntaxEditorExtensions
SyntaxGenerator

Eine sprachagnostische Factory zum Erstellen von Syntaxknoten.

Diese API kann verwendet werden, um sprachspezifische Syntaxknoten zu erstellen, die semantisch zwischen Sprachen ähnlich sind.

Die von dieser API generierten Bäume versuchen, die Benutzereinstellungen nach Möglichkeit zu respektieren. Beispielsweise erfolgt die Generierung MemberAccessExpression(SyntaxNode, String) so, dass "das" oder "Ich" gemäß den Benutzereinstellungen vereinfacht wird, wenn Simplifier sie verwendet wird.

Strukturen

Name Beschreibung
DeclarationModifiers

Enumerationen

Name Beschreibung
DeclarationKind
OperatorKind
SpecialTypeConstraintKind

Delegaten

Name Beschreibung
SymbolEditor.AsyncDeclarationEditAction

Eine Aktion, die Änderungen an einem Deklarationsknoten innerhalb eines Deklarationsknotens SyntaxTreevorgibt.

SymbolEditor.DeclarationEditAction

Eine Aktion, die Änderungen an einem Deklarationsknoten innerhalb eines Deklarationsknotens SyntaxTreevorgibt.