如何在 VSIX 扩展中集成 Microsoft.CodeAnalysis

How to integrate Microsoft.CodeAnalysis in a VSIX extension

正如标题所说,我想构建一个 VS 扩展,它能够对编辑器上所做的某些更改做出反应 window(针对各种语言)。不一定是装饰品。

为此,我希望能够通过 Roslyn 服务 API 分析编辑器文档(如果我理解得很好,现在是 Microsoft.CodeAnalysis 的一部分)。

有人可以指出一些文档吗? 执行此操作的最佳做​​法是什么?

通过MEF导入的接口是什么?

例如,您可以导出自定义 ISuggestedActionsSourceProvider 以在 灯泡 中添加新功能,您可以使用 ExportCodeRefactoringProviderAttribute 添加新的重构,您还可以导出 IClassifierProviderITagProvider 以在文本编辑器中对元素进行分类,导入 ITextDocumentFactoryService 以检索当前 VS 文档 by ITextBuffer 等等

此外,仅使用 Microsoft.CodeAnalysis 进行某种分析是不够的,因此在这些情况下您需要添加一些额外的包。例如,这些包可以是 Microsoft.CodeAnalysis.EditorFeatures.TextMicrosoft.CodeAnalysis.Workspaces.Common

如果您想从社区获得更具体的答案,您应该具体说明问题中您到底想要什么。

您还可以查看更有用的链接和示例:Roslynator are refactoring and analyzing a code, Getting start editor extensions, Light bulb guide, Classification elements for highlighting