用于自定义命令的Visual Studio vsix包,类似于“转到定义”(F12)

时间:2017-07-28 14:39:20

标签: visual-studio roslyn vsix roslyn-code-analysis

我的公司希望Visual Studio中的自定义命令与转到定义(F12)功能(来自代码编辑器窗口中的上下文菜单)的行为相似,以便导航到特定的实现解决方案中的方法。

所以我从git hub上的示例创建了一个VSIX包,并添加了一个自定义命令项,并调整.vsct,使其在上下文菜单中显示我的新 Navigation 项目以及其他项目('快速操作和重构''复制''粘贴'等)。这部分还可以。

问题1 :在命令的回调中,如何从代码编辑器窗口下的代码片段中检索语法和符号类? EventArgs ephp artisan config:cache php artisan cache:clear 参数会根据我的需要进行调整。 :/

问题2 :使用代码分析和编译器API功能,我如何分析语义,然后跳转到正确的文件并通过解决方案进行分类?是否有任何代码样本分析与“跳转到”功能?

非常欢迎任何教程,样本或推荐。

1 个答案:

答案 0 :(得分:3)

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

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

Example