2012-05-17 20 views
8

:रोकें दृश्य स्टूडियो संपादक #endif

void Func() { 
    int i=3; 

    #if DEBUG 
    ... 
    #endif 

    for (int j=0;j<i;j++) { 
     ... 
    } 
} 

अगर मैं Edit->Advanced->Format document उपयोग करें, यह यह करने के लिए पुन: स्वरूपित हो जाता है (मेरे वर्तमान कोड प्रारूपण सेटिंग का उपयोग करके) :

void Func() 
{ 
    int i = 3; 

#if DEBUG 
    ... 
#endif 

    for (int j = 0; j < i; j++) 
    { 
     ... 
    } 
} 

वहाँ के लिए सबसे बाईं ओर ले जाया जा रहा से #if और #endif लाइनों को रोकने के लिए कोई तरीका है? मुझे इनके लिए कोई सेटिंग नहीं मिली लेकिन मुझे उम्मीद है कि एक रजिस्ट्री सेटिंग है जो यह नियंत्रित करती है कि यह कैसे काम करता है।

किसी भी सलाह की सराहना की जाएगी - यह व्यवहार मुझे पागल बनाता है क्योंकि मेरे कोड में कई सौ ऐसे ब्लॉक हैं, वे वीएस द्वारा तोड़ते रहते हैं।

+11

यह पूरी तरह से ठीक प्रारूपित करता है :) #statements कोड का हिस्सा नहीं हैं इसलिए उन्हें इंडेंट नहीं किया जाना चाहिए। –

+3

यह आपकी वरीयता है। जब आपके पास इनमें से सैकड़ों (औसत पर 5-9 प्रति फ़ंक्शन) होते हैं तो यह कोड को पढ़ने में बहुत मुश्किल बनाता है। कार्यों की शुरुआत/अंत को खोजने के लिए असंभव है। – xxbbcc

+5

यहां एक सुझाव है - http://msmvps.com/blogs/peterritchie/archive/2011/11/24/if-you-re-using-if-debug-you-re-doing-it-wrong.aspx – hatchet

उत्तर

0

उपकरण/विकल्प के तहत, टेक्स्ट संपादक/सी #/टैब पर ड्रिल करें। उस सेटिंग पेज पर, स्मार्ट से ब्लॉक में इंडेंटिंग बदलें। यह अन्य सुविधाओं को खोने के व्यापार बंद होने के साथ प्रीप्रोसेसर लाइनों के इंडेंटिंग को रोक देगा। मैं उस सेटिंग पर पर्याप्त विशेषज्ञ नहीं हूं जो आपको बताएगा कि आप कौन सी अन्य स्वरूपण चीजें खो देंगे, लेकिन यह सामान्य विचार देता है: http://www.blackwasp.co.uk/VSTabs.aspx

+0

धन्यवाद, मैं पहले से ही टैब के लिए ब्लॉक स्वरूपण का उपयोग कर रहा हूं। यह अभी भी हो रहा है। – xxbbcc

+0

@xxbbcc मैं देख रहा हूं कि आप क्या कह रहे हैं। ब्लॉक इसे छोड़ देगा जहां आप इसे टाइप करेंगे, लेकिन यदि आप विशेष रूप से एक सुधार करते हैं, तो वे किसी भी इंडेंट को खो देते हैं। – hatchet

+0

हां, दुर्भाग्य से, मैं इसे कभी होने से रोकने में सक्षम नहीं रहा हूं। – xxbbcc

2

एक शैली जिसे मैं उपयोग कर रहा हूं वह इस तरह के # टैग में स्थान जोड़ रहा है

void Func() 
{ 
    int i = 3; 

# if DEBUG 
    ... 
# endif 

    for (int j = 0; j < i; j++) 
    { 
     ... 
    } 
} 

..the ब्लॉक इसकी सही ढंग से कोड के साथ खड़े हैं और फिर से स्वरूपण कोड नहीं ले पूर्वप्रक्रमक टैग की तरह लग रहा है।

+0

@ com3lius: मैंने केवल आपके सुझाव को देखा, धन्यवाद - मैं इसे आज़मा दूंगा। मुझे यकीन नहीं है कि मुझे यह पसंद है लेकिन यह अभी भी लेआउट को कम करने वाले वीएस से बेहतर दिखता है। – xxbbcc

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