Microsoft.CodeAnalysis.Editing 네임스페이스

클래스

DocumentEditor

문서의 구문 트리를 변경하기 위한 편집기입니다.

ImportAdder
SolutionEditor

솔루션에서 여러 문서를 변경하기 위한 편집기입니다.

SymbolEditor

기호 원본 선언을 변경하기 위한 편집기입니다.

SymbolEditorExtensions
SyntaxEditor

구문 트리를 변경하기 위한 편집기입니다. 편집기는 특정 트리에 순서대로 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 제공됩니다 SyntaxNode . 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용에는 를 사용하여 SyntaxAnnotation지정된 SyntaxNode 변경 내용이 추적되어 모든 변경 내용을 추적하는 '현재' 루트가 생성됩니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그러면 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없으면 작업이 와 함께 ArgumentException실패합니다.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SyntaxEditorExtensions
SyntaxGenerator

구문 노드를 만들기 위한 언어 독립적 팩터리입니다.

이 API를 사용하여 언어 간에 의미상 유사한 언어별 구문 노드를 만들 수 있습니다.

이 API에서 생성된 트리는 가능한 경우 사용자 기본 설정을 준수하려고 합니다. 예를 들어 생성 MemberAccessExpression(SyntaxNode, String) 은 "this." 또는 "Me." 가 사용되는 경우 Simplifier 사용자 기본 설정에 따라 간소화되는 방식으로 수행됩니다.

구조체

DeclarationModifiers

열거형

DeclarationKind
OperatorKind
SpecialTypeConstraintKind

대리자

SymbolEditor.AsyncDeclarationEditAction

내의 선언 노드를 변경하는 작업입니다 SyntaxTree.

SymbolEditor.DeclarationEditAction

내의 선언 노드를 변경하는 작업입니다 SyntaxTree.