我的公司希望Visual Studio中的自定义命令与转到定义(F12)功能(来自代码编辑器窗口中的上下文菜单)的行为相似,以便导航到特定的实现解决方案中的方法。
所以我从git hub上的示例创建了一个VSIX包,并添加了一个自定义命令项,并调整.vsct,使其在上下文菜单中显示我的新 Navigation 项目以及其他项目('快速操作和重构','复制','粘贴'等)。这部分还可以。
问题1 :在命令的回调中,如何从代码编辑器窗口下的代码片段中检索语法和符号类? EventArgs e
和php artisan config:cache
php artisan cache:clear
参数会根据我的需要进行调整。 :/
问题2 :使用代码分析和编译器API功能,我如何分析语义,然后跳转到正确的文件并通过解决方案进行分类?是否有任何代码样本分析与“跳转到”功能?
非常欢迎任何教程,样本或推荐。
答案 0 :(得分:3)
在ITextSnapshot
上调用GetOpenDocumentInCurrentContextWithChanges()
extension method(在Microsoft.CodeAnalysis.EditorFeatures.Text.dll中)以获取Roslyn Document
。
然后,您可以使用普通的Roslyn API来获取语义模型,解析符号,检查语法树等。