Condividi tramite


Microsoft.CodeAnalysis.Editing Spazio dei nomi

Classi

DocumentEditor

Editor per apportare modifiche all'albero della sintassi di un documento.

ImportAdder
SolutionEditor

Editor per apportare modifiche a più documenti in una soluzione.

SymbolEditor

Editor per apportare modifiche alle dichiarazioni di origine dei simboli.

SymbolEditorExtensions
SyntaxEditor

Editor per apportare modifiche a un albero della sintassi. L'editor funziona assegnando un elenco di modifiche da eseguire a un albero specifico in ordine. Le modifiche vengono applicate SyntaxNode a nell'albero originale per cui viene creato l'editor. La semantica dell'applicazione è la seguente:

  1. La radice originale fornita viene usata come radice "corrente" per tutte le operazioni. Questa radice "corrente" verrà continuamente aggiornata, diventando la nuova radice "corrente". La radice originale non viene mai modificata.
  2. Ogni modifica ha una traccia SyntaxNode , usando un SyntaxAnnotationoggetto , che produce una radice "corrente" che li tiene traccia di tutti. Ciò consente di trovare lo stesso nodo dopo l'applicazione delle modifiche precedenti che modificano l'albero.
  3. Ogni modifica viene quindi applicata nell'ordine in cui è stata aggiunta all'editor.
  4. Una modifica tenta prima di tutto di trovarne SyntaxNode nella radice "corrente". Se non è possibile trovare tale nodo, l'operazione avrà esito negativo con .ArgumentException
  5. La modifica specifica verrà eseguita su tale nodo, rimuovendo, sostituendo o inserendolo in base alla modifica. Se la modifica viene passata a un delegato come argomento di calcolo, verrà assegnato il SyntaxNode valore trovato nella radice corrente. La radice "corrente" verrà quindi aggiornata sostituendo il nodo corrente con il nuovo nodo calcolato.
  6. Viene quindi restituita la radice 'current'.
SyntaxEditorExtensions
SyntaxGenerator

Factory indipendente dal linguaggio per la creazione di nodi della sintassi.

Questa API può essere usata per creare nodi di sintassi specifici del linguaggio semanticamente simili tra i linguaggi.

Gli alberi generati da questa API tenteranno di rispettare le preferenze dell'utente quando possibile. Ad esempio, la generazione MemberAccessExpression(SyntaxNode, String) verrà eseguita in modo che "questo" o "Me". sarà semplificato in base alle preferenze dell'utente se Simplifier viene usato.

Struct

DeclarationModifiers

Enumerazioni

DeclarationKind
OperatorKind
SpecialTypeConstraintKind

Delegati

SymbolEditor.AsyncDeclarationEditAction

Azione che apporta modifiche a un nodo di dichiarazione all'interno di un oggetto SyntaxTree.

SymbolEditor.DeclarationEditAction

Azione che apporta modifiche a un nodo di dichiarazione all'interno di un oggetto SyntaxTree.