我想在 Visual Studio 中开发对特定语言的支持。MPF 语言服务和 MEF 编辑器扩展似乎有很多重叠,我无法明确回答我应该使用哪一个。
我只对在 Visual Studio 2012 及更高版本中开发这种语言支持感兴趣。我正在使用 C# 并希望仅使用托管 API。
MSDN 文档指出语法高亮应该使用语言服务来完成。但是当你去那里的文档时,有一个注释可以说是建议使用 MEF。但是,当您阅读 MEF 文档时,它并没有真正说明它旨在处理全文件语法突出显示。措辞让我觉得它是用于穿插突出装饰的。
然而,与此相反,Ok!sample 演示了我认为是完整文件语法突出显示的内容,尽管使用这种规模的示例,它是否真的建议应该以这种方式使用它并不是很清楚。
MPF 语言服务似乎支持向“另存为”对话框添加过滤器。对于仅通过 MEF 支持的语言,我还没有看到类似的东西,但我可能错过了它。我没有发现任何迹象表明它们中的任何一个都支持向“打开”对话框添加文件类型过滤器。这向我表明,MEF 编辑器扩展并非旨在实现全面的语言扩展,而是旨在扩展现有语言扩展。
请问有什么想法吗?
编辑:
我希望你能直接回答的一些问题:
用于突出显示的 MEF 编辑器扩展点是用于完整文件语法突出显示实现,还是仅用于散布装饰?
如果我为 MEF 导出注册了 FileType 和 ContentType,需要哪些额外步骤(或者甚至可能?)以使相关文件过滤器显示在各种文件对话框中?
MEF 编辑器扩展点是否旨在替换并可能最终弃用 MPF 语言服务?