0

我有一個Roslyn代碼分析器,需要很長時間才能運行,所以在編譯開始或整個樹分析時運行它都不合適。按鈕啓動Roslyn分析儀?

相反,我希望在用戶點擊菜單(或工具欄/鍵盤快捷鍵)中的按鈕時觸發分析。

這可能嗎?如果不是,傳統的MEF擴展是否有辦法訪問已打開文檔的Roslyn樹,並將錯誤/警告添加到文檔中語法節點下的錯誤列表和相應的縮略圖中?

回答

0

Roslyn分析儀只能由Roslyn觸發;你不能那樣做。

您可以通過在任何MEF組件中注入VisualStudioWorkspace來從傳統VS擴展訪問Roslyn。 Microsoft.CodeAnalysis.EditorFeatures.Text中有許多擴展方法可用於在Roslyn節點/文檔和VS緩衝區/快照之間進行映射。

您可以使用標準VS錯誤API報告錯誤;您可能還想看看Roslyn中的代碼,該代碼報告了Roslyn錯誤。