我正在尝试注册自定义内容类型,类似于MSDN论坛上的this question:我想注册一个基本上是HTML文件的自定义扩展名,例如:
[Export]
[DisplayName("My Custom Markup")]
[Name("mycustom")
[BaseDefinition("html")]
internal static ContentTypeDefinition MyCustomContentType;
[Export]
[FileExtension(".mycustom")]
[ContentType("mycustom")]
internal static FileExtensionToContentTypeDefinition MyCustomFileExtensionDefinition;
因此,通过将BaseDefinition
指定为html
,我可以在.mycustom
文件中获得HTML突出显示,遗憾的是我没有得到任何其他内容,特别是HTML intellisense。从上面的链接看来,让Visual Studio将自定义扩展识别为特定编辑器类型的唯一方法,但是我必须破解注册表(或者更具体地说,通过ProvideEditorExtension
属性提供这个,但它是仅适用于VSPackage)。
所以我的问题是,基本上,是否有另一种方法可以通过编程方式将自定义扩展注册到编辑器,但是没有为它创建自定义VSPackage?当然,除了黑客入侵注册表外?
(我的方法完全错了,在这种情况下,非常感谢你的帮助!)
答案 0 :(得分:2)
最简单的方法是使用此处演示的技术:
http://blogs.msdn.com/b/noahric/archive/2010/03/01/new-extension-css-is-less.aspx
这实际上是“黑客入侵注册表”,但是以受支持的方式。您只需将所需的密钥包装在.pkgdef文件(实际上是.reg文件)中,该文件可以包含在编辑器扩展中。