我有自定义扩展名.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;
}
答案 0 :(得分:2)
感谢VS论坛上的'Ego':
您可以通过以下方式添加自定义扩展程序文件:
有关注册语言服务的更多信息,请查看:
http://msdn.microsoft.com/en-us/library/vstudio/bb166421(v=vs.110).aspx
答案 1 :(得分:0)
因此,VS内部实际上与编辑器API有点不同 - 我们实际上并未使用内容类型(大多数情况下)确定何时激活。 Noah Richards有一个great blog post,它显示了如何创建一个扩展,在现有编辑器下标记另一个扩展。