我正在尝试为基于文本的自定义内容类型添加语法突出显示,例如
static class RTextContentType
{
public const string ContentTypeName = Constants.CONTENT_TYPE;
[Export, Name(ContentTypeName), BaseDefinition("text")]
internal static ContentTypeDefinition ContentTypeDefinition = null; // set via MEF
}
然后分类器提供者是这样声明的,
[Export(typeof(IClassifierProvider)), ContentType(Constants.CONTENT_TYPE)]
class RTextClassifierProvider : IClassifierProvider
{
...
}
问题是,提供者的构造函数永远不会被我指定的扩展调用。请注意,我提供了编辑器工厂,并且文件扩展名与工厂相关联。我可以看到通过调试所有相关文件来初始化工厂。
如果我将内容类型更改"text"
为构造函数,则会被调用。
所以问题是,如何将自定义内容类型映射到文件扩展名?
第二个注意事项,使用FileExtensionToContentTypeDefintion
不是一个选项,因为这不允许很多功能..
谢谢您的帮助 :)