Visual Studio 自定义命令的 vsix 包,类似于 "Go To Definition" (F12)

Visual Studio vsix package for custom command, similar to "Go To Definition" (F12)

我的公司想要 Visual Studio 中的自定义命令,其行为类似于 Go To Definition (F12) 功能(来自代码编辑器的上下文菜单 window),以便导航到解决方案中方法的特定实现。

所以我从 git 集线器上的示例创建了一个 VSIX 包并添加了一个自定义命令项,并调整了 .vsct 以显示我的新 Navigation 项在上下文菜单中以及其他项目('Quick Actions and Refactorings''Copy''Paste',等等)。这部分还可以。

问题 1 : 在命令的回调中,如何从下面的代码段中检索语法和符号 classes代码编辑器 window ? object senderEventArgs e 参数看起来不符合我的需要。 :/

问题2 : 使用代码分析和编译器API特性,我将如何分析语义然后跳转到正确的文件并class通过解决方案 ?是否有具有 "jump to" 功能的代码分析示例?

非常欢迎任何教程、样本或建议。

ITextSnapshot 上调用 GetOpenDocumentInCurrentContextWithChanges() extension method(在 Microsoft.CodeAnalysis.EditorFeatures.Text.dll 中)以获得 Roslyn Document

然后您可以使用普通的 Roslyn API 来获取语义模型、解析符号、检查语法树等。

Example