Freigeben über


Microsoft.CodeAnalysis.Editing Namespace

Klassen

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 arbeitet, indem er eine Liste der Änderungen an einer bestimmten Struktur in der richtigen Reihenfolge angibt. Änderungen erhalten eine SyntaxNode , für die sie in der ursprünglichen Struktur gelten, für die der Editor erstellt wird. Die Semantik der Anwendung ist wie folgt:

  1. Der ursprüngliche Stamm wird als "aktueller" Stamm für alle Vorgänge verwendet. Dieser "aktuelle" Stamm wird kontinuierlich aktualisiert und wird zum neuen "aktuellen" Stamm. Der ursprüngliche Stamm wird nie geändert.
  2. Jede Änderung ist SyntaxNode mit einem SyntaxAnnotationnachverfolgt und erzeugt einen "aktuellen" Stamm, der alle nachverfolgt. Dadurch kann derselbe Knoten gefunden werden, nachdem vorherige Änderungen angewendet wurden, die die Struktur mutieren.
  3. Jede Änderung wird dann angewendet, damit sie dem Editor hinzugefügt wurde.
  4. Eine Änderung versucht zuerst, sie SyntaxNode im "aktuellen" Stamm zu finden. Wenn dieser Knoten nicht gefunden werden kann, schlägt der Vorgang mit einem ArgumentExceptionfehl.
  5. Die jeweilige Änderung wird auf diesem Knoten ausgeführt und entsprechend der Änderung entfernt, ersetzt oder eingefügt. Wenn die Änderung als "compute"-Argument einen Delegaten übergeben wird, erhält sie das SyntaxNode im aktuellen Stamm gefundene. Der "aktuelle" Stamm wird dann aktualisiert, indem der aktuelle Knoten durch den neuen berechneten Knoten ersetzt wird.
  6. Der "aktuelle" Stamm wird dann zurückgegeben.
SyntaxEditorExtensions
SyntaxGenerator

Eine sprachunabhängige Factory zum Erstellen von Syntaxknoten.

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

Die von dieser API generierten Strukturen versuchen, die Benutzereinstellungen nach Möglichkeit zu respektieren. Die Generierung MemberAccessExpression(SyntaxNode, String) erfolgt beispielsweise so, dass "this." oder "Me." entsprechend der Benutzerpräferenz vereinfacht wird, wenn Simplifier verwendet wird.

Strukturen

DeclarationModifiers

Enumerationen

DeclarationKind
OperatorKind
SpecialTypeConstraintKind

Delegaten

SymbolEditor.AsyncDeclarationEditAction

Eine Aktion, die Änderungen an einem Deklarationsknoten in einem vorgibt SyntaxTree.

SymbolEditor.DeclarationEditAction

Eine Aktion, die Änderungen an einem Deklarationsknoten in einem vorgibt SyntaxTree.