Microsoft.CodeAnalysis.Editing 命名空间

DocumentEditor

用于对文档的语法树进行更改的编辑器。

ImportAdder
SolutionEditor

用于对解决方案中的多个文档进行更改的编辑器。

SymbolEditor

用于对符号源声明进行更改的编辑器。

SymbolEditorExtensions
SyntaxEditor

用于对语法树进行更改的编辑器。 编辑器的工作方式是按 顺序提供要对特定树执行的更改列表。 在为其创建编辑器的原始树中,会提供一个 SyntaxNode 更改。 应用程序的语义如下所示:

  1. 提供的原始根用作所有操作的“当前”根。 此“当前”根将不断更新,成为新的“当前”根。 原始根永远不会更改。
  2. 使用 生成SyntaxNodeSyntaxAnnotation跟踪所有更改的“当前”根来跟踪每个更改。 这允许在应用更改树的先前更改后找到相同的节点。
  3. 然后,每个更改将按添加到编辑器的顺序应用。
  4. 更改首先尝试在“当前”根目录中查找它 SyntaxNode 。 如果找不到该节点,操作将失败并显示 ArgumentException
  5. 特定更改将在该节点上运行,根据更改删除、替换或插入该节点。 如果更改作为其“计算”参数传递了委托,则会为其提供 SyntaxNode 在当前根目录中找到的 。 然后,将通过将当前节点替换为新的计算节点来更新“current”根。
  6. 然后返回“当前”根。
SyntaxEditorExtensions
SyntaxGenerator

用于创建语法节点的与语言无关的工厂。

此 API 可用于创建语言之间语义相似的特定于语言的语法节点。

如果可能,此 API 生成的树将尝试尊重用户首选项。 例如, MemberAccessExpression(SyntaxNode, String) 生成将以“this.”或“Me.”的方式完成,如果使用 Simplifier ,将根据用户首选项进行简化。

结构

DeclarationModifiers

枚举

DeclarationKind
OperatorKind
SpecialTypeConstraintKind

委托

SymbolEditor.AsyncDeclarationEditAction

对 中的声明节点进行更改的操作 SyntaxTree

SymbolEditor.DeclarationEditAction

对 中的声明节点进行更改的操作 SyntaxTree