3

我有带有自定义扩展名 .mcsx 的文件,它们确实是 CSharp 文件。我想在 Visual Studio 2012 中完成这些文件的代码,但是当我在 VS 中打开这些文件时,它们会被视为纯文本。

我试图创建一个自定义 MEF 扩展,它允许我将文件视为具有基于 csharp 的内容类型,但我没有获得这些文档的自动完成或代码格式。我可能需要为我的自定义内容类型调用自定义 CSharp 分类器,但我不确定。任何人都可以帮忙吗?

自定义 ContentType 如下:

static class ContentType
{
    public const string Name = "CSScript";

    [Export]
    [Name(Name)]
    [DisplayName("CSharp Script")]
    [BaseDefinition("CSharp")]
    public static ContentTypeDefinition CSharpContentType = null;


    [Export]
    [ContentType(Name)]
    [FileExtension(".mcsx")]
    public static FileExtensionToContentTypeDefinition CSharpFileExtension = null;

}
4

2 回答 2

2

感谢 VS 论坛上的“自我”:

您可以通过以下方式添加自定义扩展文件:

http://blogs.msdn.com/b/zainnab/archive/2010/08/22/using-custom-file-extension-associations-vstipenv0038.aspx

有关注册语言服务的更多信息,请查看:

http://msdn.microsoft.com/en-us/library/vstudio/bb166421(v=vs.110).aspx

于 2013-07-08T10:30:02.860 回答
0

所以在 VS 内部,实际上与编辑器 API 所暗示的有点不同——我们实际上并不使用内容类型(大多数情况下)来确定何时激活。Noah Richards 有一篇很棒的博客文章,展示了如何在现有编辑器下创建一个标记另一个扩展的扩展。

于 2013-06-20T20:14:39.573 回答