我有一个Roslyn代码分析器,需要花费大量的时间来运行,所以在编译开始时运行它或者作为整个树分析是不合适的。
相反,我想在用户点击菜单中的按钮(或工具栏/键盘快捷键)时触发分析。
这可能吗?如果没有,传统的MEF扩展是否有办法访问已打开文档的Roslyn树,并将错误/警告添加到文档中语法节点下的错误列表和相应的波形图中?
答案 0 :(得分:0)
Roslyn分析仪只能由Roslyn触发;你不能这样做。
您可以通过在任何MEF组件中注入VisualStudioWorkspace
来从传统的VS扩展访问Roslyn。
Microsoft.CodeAnalysis.EditorFeatures.Text中有许多扩展方法,用于在Roslyn节点/文档和VS缓冲区/快照之间进行映射。
您可以使用标准VS错误API报告错误;您可能还想查看Roslyn中报告Roslyn错误的代码。