.net 在VisualStudio中开发语言支持的重叠替代方案

.net 在VisualStudio中开发语言支持的重叠替代方案,.net,visual-studio,visual-studio-2012,visual-studio-sdk,.net,Visual Studio,Visual Studio 2012,Visual Studio Sdk,我想在VisualStudio中开发对特定语言的支持。MPF语言服务和MEF编辑器扩展似乎有很多重叠,我还没有得到一个明确的答案,我应该使用哪一个 我只对在Visual Studio 2012及更高版本中开发此语言支持感兴趣。我在C#工作,希望只使用托管API MSDN文档指出,语法突出显示应使用语言服务完成。但是当你看文档的时候,有一个注释可以说是建议使用MEF。但是当您阅读MEF文档时,它并没有真正指定它是为处理完整的文件语法突出显示而设计的;这句话让我觉得它是用来点缀装饰的 然而,与此相反

我想在VisualStudio中开发对特定语言的支持。MPF语言服务和MEF编辑器扩展似乎有很多重叠,我还没有得到一个明确的答案,我应该使用哪一个

我只对在Visual Studio 2012及更高版本中开发此语言支持感兴趣。我在C#工作,希望只使用托管API

MSDN文档指出,语法突出显示应使用语言服务完成。但是当你看文档的时候,有一个注释可以说是建议使用MEF。但是当您阅读MEF文档时,它并没有真正指定它是为处理完整的文件语法突出显示而设计的;这句话让我觉得它是用来点缀装饰的

然而,与此相反,Ook!这个示例演示了我认为是完整文件语法高亮显示的内容,尽管对于这样一个示例,还不清楚它是否真的建议这样使用

MPF语言服务似乎支持在“另存为”对话框中添加过滤器。对于一种仅通过MEF支持的语言,我还没有见过类似的情况,但我可能错过了它。我没有发现任何迹象表明它们都支持在“打开”对话框中添加文件类型筛选器。这对我来说意味着MEF编辑器扩展并不是为了实现完整的语言扩展,而是为了扩展现有的语言扩展

有什么想法吗

编辑:

我希望你能直接回答一些问题:

  • 用于突出显示的MEF编辑器扩展点是用于完整文件语法突出显示实现,还是仅用于点缀装饰

  • 如果我为MEF导出注册了一个文件类型和一个ContentType,那么需要(或者甚至可能?)哪些额外的步骤才能使关联的文件过滤器显示在各种文件对话框中

  • MEF编辑器扩展点是否打算替换MPF语言服务并可能最终弃用


  • 要获得全功能支持,您将无法仅使用一件东西。然而,最终可能会实现MEF接口和实现一些VisualStudio的核心COM接口。你根本不需要使用强积金语言服务软件包

    我认为你的问题比你想的更广泛,这使得我很难写出一个完整的答案

    编辑:对于新问题

  • 您可以使用
    iclassizer
    的实现来突出显示完整的文件语法。我所有更新的基于VisualStudio的IDE都专门使用此功能

  • 您需要导出
    ContentTypeDefinition
    ,但不一定是文件类型。我刚刚发布了一篇博客文章,介绍了我注册文件类型和扩展名的步骤:

  • 也许吧?更重要的是,有些事情是it更擅长的,有些事情是it目前无法做到的,所以您可以选择一个平衡点,以获得最佳的总体生产力


  • 如果可能的话,也许你可以在某个地方记录下这段经历,供其他人参考和使用……请回顾一下我问以下问题的方式,以获得可以直接回答的问题示例:任何MS API似乎都是故意造成痛苦的。我也有同样的想法。在上面的评论中,你链接到了你自己的问题,我相信你是在用强积金注册一个包裹。请参阅[]。当然可以,但我没有使用Microsoft.VisualStudio.Package.LanguageService程序集。@Kelsie我为问题2发表了一篇博客文章。@SamHarwell将MPF与MEF结合使用会导致任何问题吗?我希望在可能的情况下使用MEF,MPF类似乎可以大大减少其他功能的工作量。