当在Visual Studio扩展的上下文中使用Roslyn时,每个SyntaxNode对象都有一个定义在其中的位置(类型为Microsoft.CodeAnalysis.Location)。
是否有可能让Visual Studio导航到UI中的特定位置?
EditorFeatures包有一些扩展方法来从位置检索TextBuffer和Snapshot,但是在需要时打开文档仍然需要一些手工工作,等等。我有一种感觉,在某个地方有一种方法可以为我做到这一点。
https://github.com/dotnet/roslyn/blob/main/src/EditorFeatures/Text/Extensions.cs
所以如果你手上有一个符号,你只是想做相当于去定义,你可以在MEF导入VisualStudioWorkspace后调用这个方法。不然的话,罗斯林就找不到公共助理了。(当然,我们已经在内部实现了…)