如何从 SyntaxNode 或 SyntaxTree 获取 Document 或 Compilation?

How to get Document or Compilation from SyntaxNode or SyntaxTree?

我正在写一个 SyntaxRewriter,所以我有一个 SyntaxNode 进入我的访问方法(实际上是一个 IdentifierNameSyntax)。

我需要做的是找出标识符呈现的符号,我可以使用 SemanticModel.

据我所知,我可以从 DocumentCompilation 得到 SemanticModel

所以,理想情况下,我想从语法节点导航到 DocumentCompilation

这可能吗?

不,因为不能保证树的单个文档或编译在两个方向上。可能有none,也可能有多个;如果您在编辑器中输入,我们会创建新的编译,并尽可能重用语法树。因此,这棵树可以同时出现在多个地方。