1

我想註冊一個自定義的內容類型,類似於this question在MSDN論壇:我想註冊一個自定義的擴展,本質上是一個HTML文件,如:使用不帶包的HTML編輯器註冊HTML派生的內容類型?

[Export] 
[DisplayName("My Custom Markup")] 
[Name("mycustom") 
[BaseDefinition("html")] 
internal static ContentTypeDefinition MyCustomContentType; 

[Export] 
[FileExtension(".mycustom")] 
[ContentType("mycustom")] 
internal static FileExtensionToContentTypeDefinition MyCustomFileExtensionDefinition; 

所以通過指定BaseDefinitionhtml,我能夠在.mycustom文件中獲得HTML突出顯示,不幸的是我沒有其他任何東西,特別是HTML intellisense。從上面的鏈接看來,讓Visual Studio將自定義擴展識別爲特定編輯器類型是唯一方法,但我必須破解註冊表(或更具體地說,通過ProvideEditorExtension屬性提供此功能,但它僅適用於VSPackage的)。

所以我的問題是,基本上,是否有另一種方法來以編程方式向編輯器註冊自定義擴展,但沒有爲它創建自定義VSPackage?除了黑客註冊表,當然?

(!我可能是完全錯誤的做法,在這種情況下,你的幫助是非常讚賞)

回答

2

最簡單的方法是使用該技術在這裏演示了:

http://blogs.msdn.com/b/noahric/archive/2010/03/01/new-extension-css-is-less.aspx

這實際上是「以黑客方式註冊」,但支持的方式。您只需將所需的密鑰包裝在可包含在編輯器擴展中的.pkgdef文件(基本上是.reg文件)中。

+0

當然!它完全逃脫了我,pkgdef不需要實際的包實現!謝謝! –

+0

嘿,發現這個老嘰嘰喳喳聊天:) https://twitter.com/Schabse/status/390564739081728000 –

+0

是的,這個名字有點誤導。 :-) –

相關問題