Compartir a través de


Microsoft.CodeAnalysis.Editing Espacio de nombres

Clases

DocumentEditor

Editor para realizar cambios en el árbol de sintaxis de un documento.

ImportAdder
SolutionEditor

Editor para realizar cambios en varios documentos de una solución.

SymbolEditor

Editor para realizar cambios en declaraciones de origen de símbolos.

SymbolEditorExtensions
SyntaxEditor

Editor para realizar cambios en un árbol de sintaxis. El editor funciona proporcionando una lista de los cambios que se van a realizar en un árbol determinado en orden. Se proporcionan SyntaxNode cambios a los que se aplicarán en el árbol original para el que se crea el editor. La semántica de la aplicación es la siguiente:

  1. La raíz original proporcionada se usa como raíz "actual" para todas las operaciones. Esta raíz "actual" se actualizará continuamente y se convertirá en la nueva raíz "actual". La raíz original nunca se cambia.
  2. Cada cambio tiene un seguimiento dado SyntaxNode , usando un SyntaxAnnotation, produciendo una raíz "actual" que realiza un seguimiento de todos ellos. Esto permite que se encuentre el mismo nodo después de aplicar los cambios anteriores que mutan el árbol.
  3. A continuación, se aplica cada cambio en orden en que se agregó al editor.
  4. Un cambio primero intenta buscarlo SyntaxNode en la raíz "actual". Si no se encuentra ese nodo, se producirá un error en la operación con .ArgumentException
  5. El cambio concreto se ejecutará en ese nodo, quitarlo, reemplazarlo o insertarlo según el cambio. Si el cambio se pasa a un delegado como su argumento "compute", se le proporcionará el SyntaxNode que se encuentra en la raíz actual. La raíz "actual" se actualizará reemplazando el nodo actual por el nuevo nodo calculado.
  6. A continuación, se devuelve la raíz 'current'.
SyntaxEditorExtensions
SyntaxGenerator

Generador independiente del lenguaje para crear nodos de sintaxis.

Esta API se puede usar para crear nodos de sintaxis específicos del lenguaje que son semánticamente similares entre los lenguajes.

Los árboles generados por esta API intentarán respetar las preferencias del usuario siempre que sea posible. Por ejemplo, la generación MemberAccessExpression(SyntaxNode, String) se realizará de forma que "esto" o "Me" se simplificarán según la preferencia del usuario si Simplifier se usa.

Estructuras

DeclarationModifiers

Enumeraciones

DeclarationKind
OperatorKind
SpecialTypeConstraintKind

Delegados

SymbolEditor.AsyncDeclarationEditAction

Acción que realiza cambios en un nodo de declaración dentro de .SyntaxTree

SymbolEditor.DeclarationEditAction

Acción que realiza cambios en un nodo de declaración dentro de .SyntaxTree