java - जावा कोड के कुछ हिस्सों के लिए ग्रहण कोड फ़ॉर्मेटर को कैसे बंद करें?




eclipse code-formatting (8)

@xpmatteo के पास कोड के भाग को अक्षम करने का उत्तर है, लेकिन इसके अतिरिक्त, डिफ़ॉल्ट ग्रहण सेटिंग्स को पूरी फ़ाइल के बजाय कोड की संपादित पंक्तियों को प्रारूपित करने के लिए सेट किया जाना चाहिए।

Preferences->Java->Editor->Save Actions->Format Source Code->Format Edited Lines

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

यदि चालू / बंद टैग विकल्प बंद कर दिया गया है तो यह सुधारण को भी रोक देगा।

मेरे पास जावा स्ट्रिंग्स के रूप में लिखे गए एसक्यूएल कथन के साथ कुछ जावा कोड है (कृपया कोई ओआर / एम ज्वालामुखी नहीं है, एम्बेडेड एसक्यूएल यह है - मेरा निर्णय नहीं)।

मैंने रखरखाव की आसानी के लिए कोड की कई पंक्तियों पर कई समेकित तारों में सैद्धांतिक रूप से SQL कथन को तोड़ दिया है। तो कुछ की तरह:

String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";

मेरे पास कुछ ऐसा है:

String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";

यह शैली एसक्यूएल को विशेष रूप से बड़े प्रश्नों के लिए पढ़ने और बनाए रखने (आईएमएचओ) को अधिक आसान बनाती है। उदाहरण के लिए, मैं अपने संपादक को "ओवरराइट" मोड में डाल सकता हूं और टेक्स्ट को आसानी से आसानी से संशोधित कर सकता हूं।

ध्यान दें कि यह समस्या SQL के विशेष उदाहरण से परे सामान्यीकृत है। किसी भी लंबवत स्वरूपण, विशेष रूप से सारणीबद्ध संरचनाओं के साथ लिखा गया कोई भी कोड, एक सुंदर प्रिंटर द्वारा विनाश के लिए अतिसंवेदनशील है।

अब, कुछ प्रोजेक्ट सदस्य एक्लिप्स संपादक का उपयोग करते हैं और जब वे एक संपूर्ण स्रोत फ़ाइल को प्रारूपित करते हैं तो अर्थात् स्वरूपण अक्सर नष्ट हो जाता है।

क्या ग्रहण के संबंध में स्रोत की कुछ पंक्तियों को अनदेखा करने के लिए ग्रहण को निर्देश देने का कोई तरीका है?

मैं एक विशेष टिप्पणी की तरह कुछ ढूंढ रहा हूं जो ग्रहण फ़ॉर्मेटर को टॉगल करता है। आदर्श रूप में, ऐसी टिप्पणी जो भी हम चुनते हैं, उसके लिए कॉन्फ़िगर करने योग्य हो सकती है, और अन्य स्वरूपकों को भी इसका सम्मान करने के लिए प्रोग्राम किया जा सकता है:

// STOP-ECLIPSE-FORMATTING
String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";
// START-ECLIPSE-FORMATTING

जाहिर है, एक "समाधान" है कि हमारी टीम के सदस्यों को कुछ बाहरी JIndent जैसे JIndent या JIndent , लेकिन यह सवाल यह नहीं है कि (इस परियोजना पर मेरा निर्णय भी नहीं है): मैं विशेष रूप से एक तरीका ढूंढ रहा हूं ग्रहण फॉर्मेटर से विज्ञापन-प्रसार आधार पर बचें।

आदर्श रूप से, एक समाधान मुझे ग्रहण फॉर्मेटर के लिए निर्देशों को डालने की इजाजत देता है, बिना किसी आईडीई पुनर्गठन ( ग्रहण करने वाले अज्ञात कमांड टिप्पणी चुनने के अलावा: STOP-ECLIPSE-FORMATTINGSTOP-FORMATTING ) के अलावा एक्लिप्स का उपयोग करके टीम के सदस्यों की आवश्यकता के बिना


आपको फॉर्मेटर टैग जोड़ने की क्षमता चालू करनी होगी। मेनूबार में जाएं:

विंडोज प्राथमिकता जावा कोड शैली फॉर्मेटर

संपादन बटन दबाएं। अंतिम टैब चुनें। ऑन / ऑफ बॉक्स पर ध्यान दें और उन्हें चेकबॉक्स के साथ सक्षम करें।


डबल स्लैश "//" वाली प्रत्येक पंक्ति को समाप्त करें। यह ग्रहण को सभी को एक ही पंक्ति पर ले जाने से रोक देगा।


प्रेत टिप्पणियां, // जहां आप नई लाइनें चाहते हैं, जोड़ रहे हैं!

  1. @formatter: off कोड से संपादक को संदर्भ जोड़ता है। कोड, मेरी राय में, इस तरह के संदर्भ कभी नहीं होना चाहिए।

  2. प्रेत टिप्पणियां (//) प्रयुक्त प्रारूपण उपकरण के बावजूद काम करेगी। ग्रहण या इंटेलिज या जो भी संपादक आप उपयोग करते हैं, भले ही। यह भी बहुत अच्छा Google जावा प्रारूप के साथ काम करता है

  3. प्रेत टिप्पणियां (//) आपके पूरे एप्लिकेशन पर काम करेगी। यदि आपके पास जावास्क्रिप्ट भी है और शायद JSBeautifier जैसे कुछ का उपयोग करें। जावास्क्रिप्ट में आपके पास समान कोड शैली भी हो सकती है।

  4. असल में, आप शायद स्वरूपण सही करना चाहते हैं ? आप मिश्रित टैब / स्पेस और पीछे की जगहों को हटाना चाहते हैं। आप कोड मानक के अनुसार लाइनों को इंडेंट करना चाहते हैं। आप जो चाहते हैं वह एक लंबी रेखा है। वह, और केवल यही है, प्रेत टिप्पणी आपको क्या देती है!


मैं अपने एसक्यूएल स्ट्रिंग इंडेंटेशन को फॉर्मेटर गड़बड़ करने से बचने के लिए निश्चित चौड़ाई स्ट्रिंग-पार्ट्स (व्हाइटस्पेस के साथ गद्देदार) का उपयोग कर रहा हूं। यह आपको मिश्रित परिणाम देता है, और काम नहीं करेगा जहां व्हाइटस्पेस को एसक्यूएल में अनदेखा नहीं किया जाता है, लेकिन यह सहायक हो सकता है।

    final String sql = "SELECT v.value FROM properties p               "
            + "JOIN property_values v ON p.property_id = v.property_id "
            + "WHERE p.product_id = ?                                  "
            + "AND v.value        IS NOT NULL                          ";

यदि आप लाइन की शुरुआत पर प्लस साइन डालते हैं, तो यह अलग-अलग प्रारूपित करता है:

String query = 
    "SELECT FOO, BAR, BAZ" 
    +    "  FROM ABC"           
    +    " WHERE BAR > 4";

वैकल्पिक विधि: ग्रहण 3.6 में, "लाइन रैपिंग" के तहत "सामान्य सेटिंग्स" के लिए "पहले से ही लिपटे लाइनों में शामिल न हों" का विकल्प है। इसका मतलब यह है कि फ़ॉर्मेटर लंबी लाइनों को लपेट लेगा लेकिन आपके पास पहले से मौजूद किसी भी रैपिंग को पूर्ववत नहीं करेगा।


स्वरूपण को बंद करने के बजाय, आप इसे पहले से लिपटे लाइनों में शामिल न होने के लिए कॉन्फ़िगर कर सकते हैं। जिटर की प्रतिक्रिया के समान, यहां ग्रहण एसटीएस के लिए है:

गुण → जावा कोड स्टाइल → फॉर्मेटर → प्रोजेक्ट विशिष्ट सेटिंग्स सक्षम करें या वर्कस्पेस सेटिंग्स कॉन्फ़िगर करें → संपादित करें → लाइन रैपिंग (टैब) → "पहले से लिपटे लाइनों में शामिल न हों"

सहेजें, आवेदन करें।






eclipse-formatter