Condividi tramite


SyntaxEditor Classe

Definizione

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
public ref class SyntaxEditor
public class SyntaxEditor
type SyntaxEditor = class
Public Class SyntaxEditor
Ereditarietà
SyntaxEditor
Derivato

Commenti

La strategia di modifica precedente fa sì che un client dell'editor aggiunga una modifica che aggiorna un nodo padre e quindi aggiunge una modifica che aggiorna un nodo figlio (a meno che la modifica padre non sia certa di contenere l'elemento figlio) e il tentativo di generare questa operazione in fase di esecuzione. Se un client deve aggiornare sia un figlio che un padre, deve prima aggiungere la modifica figlio e quindi la modifica padre. E la modifica padre deve passare un callback "compute" appropriato in modo da visualizzare i risultati della modifica figlio.

Se un client vuole eseguire una sostituzione, trovare il valoreSyntaxNode inserito nell'albero, che può essere eseguito aggiungendo un'annotazione dedicata a tale nodo e quindi esaminandolo nel nodo "corrente" passato a un callback "compute".

Costruttori

Nome Descrizione
SyntaxEditor(SyntaxNode, HostWorkspaceServices)

Crea una nuova istanza di SyntaxEditor.

SyntaxEditor(SyntaxNode, SolutionServices)

Crea una nuova istanza di SyntaxEditor.

SyntaxEditor(SyntaxNode, Workspace)
Obsoleti.

Crea una nuova istanza di SyntaxEditor.

Proprietà

Nome Descrizione
Generator

Oggetto SyntaxGenerator da usare per creare e modificare SyntaxNodele proprietà .

OriginalRoot

Oggetto SyntaxNode specificato al momento della costruzione dell'oggetto SyntaxEditor .

Metodi

Nome Descrizione
GetChangedRoot()

Restituisce il nodo radice modificato.

InsertAfter(SyntaxNode, IEnumerable<SyntaxNode>)

Inserire i nuovi nodi dopo il nodo specificato già esistente nell'albero.

InsertAfter(SyntaxNode, SyntaxNode)

Inserire il nuovo nodo dopo il nodo specificato già esistente nell'albero.

InsertBefore(SyntaxNode, IEnumerable<SyntaxNode>)

Inserire i nuovi nodi prima del nodo specificato già esistente nell'albero.

InsertBefore(SyntaxNode, SyntaxNode)

Inserire il nuovo nodo prima del nodo specificato già esistente nell'albero.

RemoveNode(SyntaxNode, SyntaxRemoveOptions)

Rimuovere il nodo dall'albero.

RemoveNode(SyntaxNode)

Rimuovere il nodo dall'albero.

ReplaceNode(SyntaxNode, Func<SyntaxNode,SyntaxGenerator,SyntaxNode>)

Sostituire il nodo specificato con un nodo prodotto dalla funzione .

ReplaceNode(SyntaxNode, SyntaxNode)

Sostituire il nodo specificato con un nodo diverso.

TrackNode(SyntaxNode)

Verifica che il nodo sia monitorato, anche se non viene modificato.

Metodi di estensione

Nome Descrizione
AddAttribute(SyntaxEditor, SyntaxNode, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
AddAttributeArgument(SyntaxEditor, SyntaxNode, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
AddBaseType(SyntaxEditor, SyntaxNode, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
AddInterfaceType(SyntaxEditor, SyntaxNode, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
AddMember(SyntaxEditor, SyntaxNode, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
AddParameter(SyntaxEditor, SyntaxNode, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
AddReturnAttribute(SyntaxEditor, SyntaxNode, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
InsertMembers(SyntaxEditor, SyntaxNode, Int32, IEnumerable<SyntaxNode>)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
InsertParameter(SyntaxEditor, SyntaxNode, Int32, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetAccessibility(SyntaxEditor, SyntaxNode, Accessibility)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetExpression(SyntaxEditor, SyntaxNode, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetGetAccessorStatements(SyntaxEditor, SyntaxNode, IEnumerable<SyntaxNode>)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetModifiers(SyntaxEditor, SyntaxNode, DeclarationModifiers)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetName(SyntaxEditor, SyntaxNode, String)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetSetAccessorStatements(SyntaxEditor, SyntaxNode, IEnumerable<SyntaxNode>)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetStatements(SyntaxEditor, SyntaxNode, IEnumerable<SyntaxNode>)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetType(SyntaxEditor, SyntaxNode, SyntaxNode)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetTypeConstraint(SyntaxEditor, SyntaxNode, String, SpecialTypeConstraintKind, IEnumerable<SyntaxNode>)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.
SetTypeParameters(SyntaxEditor, SyntaxNode, IEnumerable<String>)

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 il relativo SyntaxNode rilevamento, usando un oggetto SyntaxAnnotation, producendo 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 innanzitutto 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'.

Si applica a