2008-11-16 8 views
7

मैं क्या करना चाहता हूं VS2008 है, जब मैं एक कोड फ़ाइल खोलता हूं, डिफ़ॉल्ट रूप से फ़ाइल में कक्षाओं/इंटरफेस के सभी सदस्यों को संकुचित करता हूं (जिसमें महत्वपूर्ण रूप से, कोई XML दस्तावेज़ और टिप्पणियां शामिल हैं)।क्या विजुअल स्टूडियो 2008 में डिफ़ॉल्ट रूपरेखा निर्दिष्ट करने का कोई तरीका है ताकि फाइल डिफ़ॉल्ट रूप से ध्वस्त सदस्यों के साथ खुलती हो?

मैं क्षेत्रों का उपयोग करना चाहता हूं, बिल्कुल भी।

मैं भी चालू करने के लिए Ctrl + M, Ctrl + L तार उपयोग करने में सक्षम होना चाहते हैं सब सदस्य रूपरेखा (उदाहरण के लिए, अगर सब कुछ ध्वस्त हो गई है, मैं इसे चाहते हैं के सदस्यों के सभी विस्तार करने के लिए है, लेकिन टिप्पणियां या एक्सएमएल दस्तावेज नहीं)।

संभव है? कैसे?

उत्तर

5
भाग 1.

अनिश्चित को

हाँ भाग 2. के बारे में

एक संक्षिप्त रूप में VS2008 स्वचालित रूप से खुला फ़ाइलें करने के लिए आप "Edit.CollapsetoDefinition" जब प्रत्येक चलाने के लिए एक ऐड बनाने की आवश्यकता होगी दस्तावेज़ खुलता है

यह अत्यधिक मुश्किल नहीं है - मुश्किल भागों को लगता है कि दस्तावेज़ को वास्तव में खोले जाने के बाद आपको कुछ मिलीसेकंड कोड चलाने होंगे, इसलिए आपको ऐसा करने के लिए लाल पूल का उपयोग करने की आवश्यकता है।

  1. वीएस 2008 के लिए एक एडिन परियोजना बनाएं।
  2. कनेक्ट क्लास के ऑनकनेक्शन विधि के अंत में यह कोड (निम्न देखें) जोड़ें।

    switch (connectMode) 
    { 
     case ext_ConnectMode.ext_cm_UISetup: 
     case ext_ConnectMode.ext_cm_Startup: 
      //Do nothing OnStartup will be called once IDE is initialised. 
      break; 
     case ext_ConnectMode.ext_cm_AfterStartup: 
      //The addin was started post startup so we need to call its initialisation manually 
      InitialiseHandlers(); 
      break; 
    } 
  1. कनेक्ट वर्ग के लिए इस विधि जोड़ें

    private void InitialiseHandlers() 
    { 
     this._openHandler = new OnOpenHandler(_applicationObject); 
    } 
  1. InitialiseHandlers के लिए एक कॉल जोड़ें() कनेक्ट क्लास की ऑनस्टार्टअप पूर्ण विधि पर।

    public void OnStartupComplete(ref Array custom) 
    { 
     InitialiseHandlers(); 
    } 
  1. परियोजना के लिए इस वर्ग जोड़ें।

    using System; 
    using System.Collections.Generic; 
    using System.Text; 
    using EnvDTE80; 
    using EnvDTE; 
    using System.Threading; 

    namespace Collapser 
    { 
     internal class OnOpenHandler 
     { 
      DTE2 _application = null; 
      EnvDTE.Events events = null; 
      EnvDTE.DocumentEvents docEvents = null; 

      internal OnOpenHandler(DTE2 application) 
      { 
       _application = application; 
       events = _application.Events; 
       docEvents = events.get_DocumentEvents(null); 
       docEvents.DocumentOpened +=new _dispDocumentEvents_DocumentOpenedEventHandler(OnOpenHandler_DocumentOpened); 
      } 

      void OnOpenHandler_DocumentOpened(EnvDTE.Document document) 
      { 
       if (_application.Debugger.CurrentMode != dbgDebugMode.dbgBreakMode) 
       { 
        ThreadPool.QueueUserWorkItem(new WaitCallback(Collapse)); 
       } 
      } 

      private void Collapse(object o) 
      { 
       System.Threading.Thread.Sleep(150); 
       _application.ExecuteCommand("Edit.CollapsetoDefinitions", ""); 
      } 
     } 
    } 

और अब क्योंकि सभी खोला फ़ाइलों को पूरी तरह से ध्वस्त हो गई किया जाना चाहिए।

0

एक ही चीज़ करने के लिए विजुअल स्टूडियो मैक्रोज़ का उपयोग करना बहुत आसान होगा। "EnvironmentEvents" MyMacros में मैक्रो फ़ाइल को संपादित करना और साथ DocumentEvents.DocumentOpened के लिए कोई हैंडलर जोड़ने:
DTE.ExecuteCommand ("Edit.CollapsetoDefinitions")

+0

क्या आप कृपया यह स्पष्ट कर सकते हैं कि आप यह कैसे करेंगे? मैंने एक उत्तर जोड़ा (http://stackoverflow.com/questions/293806/is-there-a-way-to-specify-outlining-defaults-in-visual-studio-so-that-a-file-open/1050267 # 1050267) इस प्रश्न के लिए, लेकिन मेरे मैक्रो कोड को काम करने के लिए नहीं मिल सकता है। –

0

मैं अपने आप को एक मैक्रो के लिए कुछ Visual Basic कोड से काम की कोशिश की थी, उधार विभिन्न स्थानों से, और काम करने के लिए कुछ भी नहीं मिल सका। तो, मैंने क्या किया? क्यों, मैंने StackOverflow पर a question से पूछा! इसका जवाब मिला, मैंने अपने EnvironmentEvents मैक्रो को सुझाए गए कोड को जोड़ा, और अब जब मैं CS फ़ाइलों को खोलता हूं, लगभग एक सेकंड के बाद, मेरी सभी परिभाषाएं ध्वस्त हो जाती हैं।:)

0

एक त्वरित तरीका सभी कार्य-परिभाषाओं को रूपरेखा संक्षिप्त करने के लिए प्रेस करने के लिए है: ContextMenu बटन * (अगले अपने अधिकार खिड़कियों बटन करने के लिए) *, एल, ओ

मैं इसका इस्तेमाल पुरे समय। अगर इसके लिए एक असली हॉटकी है तो कृपया मुझे बताएं :)

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