2012-10-15 20 views
6

मैं दृश्य स्टूडियो के लिए एक कस्टम संपादक लिखने की प्रक्रिया में हूं। मैंने नई भाषा के लिए कुछ बुनियादी कार्यक्षमता लागू की है उदा। सिंटैक्स हाइलाइटिंग और मैंने जेनरेट की गई। vsix फ़ाइल का उपयोग करके सफलतापूर्वक था पैकेज स्थापित किया। सभी काम सिर्फ अच्छे हैं, हालांकि मेरे कस्टम संपादक को विभिन्न फ़ाइल एक्सटेंशन से जुड़े होने की आवश्यकता है।दृश्य स्टूडियो संपादक सूची में एक कस्टम संपादक जोड़ना

मैंने सोचा, गलती से, कि जब मैं संपादक स्थापित इसके तहत प्रकट होता

उपकरण> विकल्प ..-> पाठ संपादक> फ़ाइल Extension-> संपादक सूची:

enter image description here

हालांकि यह वहां दिखाई नहीं देता है। तो सवाल यह है कि आप इस सूची में एक कस्टम संपादक कैसे जोड़ते हैं?

किसी भी मदद के लिए धन्यवाद!

उत्तर

8

कम से कम मुझे इस प्रश्न के लिए टम्बलवेड बैज मिला है।

के बाद रिवर्स इंजीनियरिंग का एक बहुत मैं समाधान ... जो दर्ज नहीं किया है .. कहीं ..

चरण संख्या 1 पाया:

सबसे पहले आप सभी की घंटी के साथ एक संपादक कारखाना बनाने की जरूरत और सीटी के साथ आता है - एमएसवीएस के लिए इसका विस्तार है।

चरण संख्या 2: तो फिर तुम इस तरह के एक वर्ग बनाने के लिए

[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] 
    class ProvideFileExtensionMapping : RegistrationAttribute 
    { 
     private readonly string _name, _id, _editorGuid, _package; 
     private readonly int _sortPriority; 

     public ProvideFileExtensionMapping(string id, string name, object editorGuid, string package, int sortPriority) 
     { 
      _id = id; 
      _name = name; 
      if (editorGuid is Type) 
      { 
       _editorGuid = ((Type)editorGuid).GUID.ToString("B"); 
      } 
      else 
      { 
       _editorGuid = editorGuid.ToString(); 
      } 
      _package = package; 
      _sortPriority = sortPriority; 
     } 

     public override void Register(RegistrationContext context) 
     { 
      using (Key mappingKey = context.CreateKey("FileExtensionMapping\\" + _id)) 
      { 
       mappingKey.SetValue("", _name); 
       mappingKey.SetValue("DisplayName", _name); 
       mappingKey.SetValue("EditorGuid", _editorGuid); 
       mappingKey.SetValue("Package", _package); 
       mappingKey.SetValue("SortPriority", _sortPriority); 
      } 
     } 

     public override void Unregister(RegistrationAttribute.RegistrationContext context) 
     { 
     } 
    } 

चरण 3: तो फिर आप अपने संपादक कारखाने के लिए एक विशेषता के रूप में इस वर्ग को जोड़ने की आवश्यकता (जो आप चरण में बनाए गए 1) :

[ProvideFileExtensionMapping("{E23E32ED-3467-4401-A364-1352666A3502}", "RText Editor", typeof(EditorFactory), GuidList.guidRTextEditorPluginEditorFactoryString, 100)] 
public sealed class EditorFactory : IVsEditorFactory, IDisposable{...} 

यही है। अब आप दृश्य स्टूडियो में संपादकों की सूची में अपने संपादक को देखने में सक्षम होना चाहिए।

फ़ाइल मैपिंग सही होने पर आपका संपादक लागू किया जाएगा।

उम्मीद है कि इस पोस्ट किसी और के लिए बहुत समय की बचत होती है ..

+0

केवल ओरेकल उनके संपादक के लिए यह लागू करने के लिए उनके ODT टीम मिलेगा तो – Jay

संबंधित मुद्दे