2013-06-20 20 views
2

我使用的是自定義擴展名爲.mcsx的文件,它們確實是CSharp文件。我想在Visual Studio 2012中的這些文件上獲得代碼完成,但是當我在VS中打開它們時,這些文件將被視爲純文本。Visual Studio將自定義擴展名視爲CSharp

我試過創建一個自定義的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

所以VS裏面的東西實際上是一個有點不同比編輯API的暗示 - 我們不實際使用的內容類型(大部分),以確定何時啓動。諾亞理查茲有一個great blog post,它顯示瞭如何創建一個擴展,在現有編輯器下標記另一個擴展。

+0

Jason,感謝您的聯繫。我已經按照這篇博文上的指示,但無濟於事。這篇文章是爲VS2010編寫的。你覺得VS2012的這個改變了嗎? –

+0

您可以將.pkgdef文件發佈到某處,以便我可以看一下嗎? –