Compartilhar via


Microsoft.CodeAnalysis.Editing Namespace

Classes

DocumentEditor

Um editor para fazer alterações na árvore de sintaxe de um documento.

ImportAdder
SolutionEditor

Um editor para fazer alterações em vários documentos em uma solução.

SymbolEditor

Um editor para fazer alterações nas declarações de origem do símbolo.

SymbolEditorExtensions
SyntaxEditor

Um editor para fazer alterações em uma árvore de sintaxe. O editor funciona fornecendo uma lista de alterações a serem executadas em uma árvore específica na ordem. As alterações recebem um SyntaxNode a que serão aplicadas na árvore original para a qual o editor é criado. A semântica do aplicativo é a seguinte:

  1. A raiz original fornecida é usada como a raiz "atual" para todas as operações. Essa raiz "atual" será atualizada continuamente, tornando-se a nova raiz "atual". A raiz original nunca é alterada.
  2. Cada alteração tem seu determinado SyntaxNode controle, usando um SyntaxAnnotation, produzindo uma raiz "atual" que rastreia todas elas. Isso permite que esse mesmo nó seja encontrado após a aplicação de alterações anteriores que modificam a árvore.
  3. Cada alteração é então aplicada para que ela seja adicionada ao editor.
  4. Uma alteração primeiro tenta encontrá-lo SyntaxNode na raiz "atual". Se esse nó não puder ser encontrado, a operação falhará com um ArgumentException.
  5. A alteração específica será executada nesse nó, removendo, substituindo ou inserindo-a de acordo com a alteração. Se a alteração for passada a um delegado como seu argumento de "computação", ela receberá o SyntaxNode encontrado na raiz atual. A raiz "atual" será atualizada substituindo o nó atual pelo novo nó computado.
  6. A raiz 'atual' é retornada.
SyntaxEditorExtensions
SyntaxGenerator

Uma fábrica independente de linguagem para criar nós de sintaxe.

Essa API pode ser usada para criar nós de sintaxe específicos da linguagem que são semanticamente semelhantes entre idiomas.

As árvores geradas por essa API tentarão respeitar as preferências do usuário quando possível. Por exemplo, a geração MemberAccessExpression(SyntaxNode, String) será feita de forma que "isso". ou "Eu" seja simplificado de acordo com a preferência do usuário, se Simplifier for usado.

Estruturas

DeclarationModifiers

Enumerações

DeclarationKind
OperatorKind
SpecialTypeConstraintKind

Delegados

SymbolEditor.AsyncDeclarationEditAction

Uma ação que faz alterações em um nó de declaração em um SyntaxTree.

SymbolEditor.DeclarationEditAction

Uma ação que faz alterações em um nó de declaração em um SyntaxTree.