如何从 SyntaxNode 或 SyntaxTree 获取 Document 或 Compilation?
How to get Document or Compilation from SyntaxNode or SyntaxTree?
我正在写一个 SyntaxRewriter
,所以我有一个 SyntaxNode
进入我的访问方法(实际上是一个 IdentifierNameSyntax
)。
我需要做的是找出标识符呈现的符号,我可以使用 SemanticModel
.
据我所知,我可以从 Document
或 Compilation
得到 SemanticModel
。
所以,理想情况下,我想从语法节点导航到 Document
或 Compilation
。
这可能吗?
不,因为不能保证树的单个文档或编译在两个方向上。可能有none,也可能有多个;如果您在编辑器中输入,我们会创建新的编译,并尽可能重用语法树。因此,这棵树可以同时出现在多个地方。
我正在写一个 SyntaxRewriter
,所以我有一个 SyntaxNode
进入我的访问方法(实际上是一个 IdentifierNameSyntax
)。
我需要做的是找出标识符呈现的符号,我可以使用 SemanticModel
.
据我所知,我可以从 Document
或 Compilation
得到 SemanticModel
。
所以,理想情况下,我想从语法节点导航到 Document
或 Compilation
。
这可能吗?
不,因为不能保证树的单个文档或编译在两个方向上。可能有none,也可能有多个;如果您在编辑器中输入,我们会创建新的编译,并尽可能重用语法树。因此,这棵树可以同时出现在多个地方。