Compartir a través de


Microsoft.CodeAnalysis.Editing Espacio de nombres

Clases

Nombre Description
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 las declaraciones de origen de símbolos.

SymbolEditorExtensions
SyntaxEditor

Editor para realizar cambios en un árbol de sintaxis. El editor funciona proporcionando una lista de cambios que se van a realizar en un árbol determinado en orden. Se proporcionan cambios a SyntaxNode 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, convirtiéndose en la nueva raíz "actual". La raíz original nunca se cambia.
  2. Cada cambio tiene un seguimiento dado SyntaxNode , utilizando 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 encontrar su 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 que SyntaxNode 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 MemberAccessExpression(SyntaxNode, String) generación se realizará de forma que "this" o "Me" se simplificarán según la preferencia del usuario si Simplifier se usa.

Estructuras

Nombre Description
DeclarationModifiers

Enumeraciones

Nombre Description
DeclarationKind
OperatorKind
SpecialTypeConstraintKind

Delegados

Nombre Description
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