如何在 VSIX 扩展中集成 Microsoft.CodeAnalysis
How to integrate Microsoft.CodeAnalysis in a VSIX extension
正如标题所说,我想构建一个 VS 扩展,它能够对编辑器上所做的某些更改做出反应 window(针对各种语言)。不一定是装饰品。
为此,我希望能够通过 Roslyn 服务 API 分析编辑器文档(如果我理解得很好,现在是 Microsoft.CodeAnalysis 的一部分)。
有人可以指出一些文档吗?
执行此操作的最佳做法是什么?
通过MEF导入的接口是什么?
例如,您可以导出自定义 ISuggestedActionsSourceProvider
以在 灯泡 中添加新功能,您可以使用 ExportCodeRefactoringProviderAttribute
添加新的重构,您还可以导出 IClassifierProvider
和 ITagProvider
以在文本编辑器中对元素进行分类,导入 ITextDocumentFactoryService
以检索当前 VS 文档 by ITextBuffer
等等
此外,仅使用 Microsoft.CodeAnalysis
进行某种分析是不够的,因此在这些情况下您需要添加一些额外的包。例如,这些包可以是 Microsoft.CodeAnalysis.EditorFeatures.Text
、Microsoft.CodeAnalysis.Workspaces.Common
等
如果您想从社区获得更具体的答案,您应该具体说明问题中您到底想要什么。
您还可以查看更有用的链接和示例:Roslynator are refactoring and analyzing a code, Getting start editor extensions, Light bulb guide, Classification elements for highlighting
正如标题所说,我想构建一个 VS 扩展,它能够对编辑器上所做的某些更改做出反应 window(针对各种语言)。不一定是装饰品。
为此,我希望能够通过 Roslyn 服务 API 分析编辑器文档(如果我理解得很好,现在是 Microsoft.CodeAnalysis 的一部分)。
有人可以指出一些文档吗? 执行此操作的最佳做法是什么?
通过MEF导入的接口是什么?
例如,您可以导出自定义 ISuggestedActionsSourceProvider
以在 灯泡 中添加新功能,您可以使用 ExportCodeRefactoringProviderAttribute
添加新的重构,您还可以导出 IClassifierProvider
和 ITagProvider
以在文本编辑器中对元素进行分类,导入 ITextDocumentFactoryService
以检索当前 VS 文档 by ITextBuffer
等等
此外,仅使用 Microsoft.CodeAnalysis
进行某种分析是不够的,因此在这些情况下您需要添加一些额外的包。例如,这些包可以是 Microsoft.CodeAnalysis.EditorFeatures.Text
、Microsoft.CodeAnalysis.Workspaces.Common
等
如果您想从社区获得更具体的答案,您应该具体说明问题中您到底想要什么。
您还可以查看更有用的链接和示例:Roslynator are refactoring and analyzing a code, Getting start editor extensions, Light bulb guide, Classification elements for highlighting