जावा के लिए एक्लिप्स में एक अलग लाइन पर जंजीर विधि लपेटकर कॉल करता है


105

मैं यह पता लगाने में सफल नहीं रहा कि प्रत्येक मेथड कॉल को कैसे लपेटा जाए Eclipse। उदाहरण के लिए, मेरे पास यह है:

someObject.A().B().C();

लेकिन मैं वास्तव में यह चाहता हूं:

someObject.A()
          .B()
          .C();

"लाइन रैपिंग" अनुभाग के तहत कुछ भी Eclipseमुझे यह परिणाम देने के लिए नहीं लगता है।

जवाबों:


186

दीपक आजाद के जवाब को लागू करते हुए, आपको वास्तव में क्या चाहिए:

विंडोज़ : विंडो → वरीयताएँ → जावा → कोड शैली
→ प्रारूप → संपादित करें → लाइन रैपिंग (टैब)

Mac OS : ADT → वरीयताएँ → Java → कोड शैली
→ फ़ॉर्मैटर → संपादित करें → लाइन रैपिंग (टैब)

फिर, बाईं ओर की सूची में, चुनें:

समारोह कॉल → योग्य चालान

अब इस सूची के नीचे, रेखा लपेटकर नीति निर्धारित करें:

यदि आवश्यक न हो तो पहले तत्व को छोड़कर सभी तत्वों को लपेटें

जाँच करें :

फोर्स स्पलिट, भले ही लाइन अधिकतम लाइन चौड़ाई से कम हो

अंत में, इंडेंटेशन पॉलिसी को सेट करें (धन्यवाद @ टर्बो ):

कॉलम पर इंडेंट करें

यह आपको आपके द्वारा पूछा गया सटीक व्यवहार देना चाहिए।


बोनस: एंड्रॉयड स्टूडियो / इंटेलीज आइडिया:

मैक ओएस : एंड्रॉइड स्टूडियो → प्राथमिकताएं (Cmd +, ) → संपादक → कोड शैली → जावा → रैपिंग और ब्रेसेस टैब → जंजीर विधि कॉल

चुनते हैं

हमेशा लपेटें

और जाँच करें

मल्टीलाइन करते समय संरेखित करें


2
धन्यवाद। यह return new SomeClass().A().B().C();एक अलग लाइन पर प्रत्येक विधि कॉल के साथ काम नहीं करता है ।
हार्वे

1
महान जवाब के लिए @ ChristianGarcía +1। मुझसे एक अवलोकन (ग्रहण नियॉन): जब मैं सेट करता हूं Indent on column, तो यह कभी-कभी अतिरिक्त स्थान जोड़ देता है; उदाहरण के लिए और इतने पर session.createQueryहो जाता है session .createQuery। डिफ़ॉल्ट विकल्प पर लौटने से मेरे लिए समस्या हल हो गई।
सायन पाल

यह पहले आह्वान के बाद एक टैब सम्मिलित करता है। इससे बचने के लिए, मुझे इंडेंटेशन के तहत "रिक्त स्थान को इंडेंट लिपटे लाइनों का उपयोग करें" की जांच करनी थी।
डैनियल निट्ज़ैन

12

विंडो → वरीयताएँ → जावा → कोड शैली → फ़ॉर्मेटर → संपादित करें → लाइन रैपिंग → कभी भी पहले से लिपटी लाइनों में शामिल न हों


3
मुझे खेद है कि मैंने समझाया नहीं: यह इसे प्रारूपित नहीं करेगा। यह बस इसे गड़बड़ नहीं करेगा, यदि आप इसे मैन्युअल रूप से करते हैं।
ओप डी सिरकेल

मुझे अब समझ आई। ग्रहण वास्तव में जंजीर विधियों को प्रारूपित नहीं कर सकता है लेकिन यह स्वरूपण को बनाए रखेगा जैसा कि मैंने इसे टाइप किया है। धन्यवाद।
जोहान

जंजीर कॉल के लिए कुछ भी विशिष्ट नहीं है। यदि आप फ़ंक्शन कॉल रैपिंग को बाध्य करते हैं, तो यह हर जगह
लपेटेगा

@ जोहान सही नहीं है, ग्रहण जंजीर विधि कॉल को प्रारूपित कर सकता है।
दीपक आज़ाद

@OpDeCirkel आपको उत्तर में ही अपनी टिप्पणी जोड़नी चाहिए। लोगों के लिए इसे नोटिस करना आसान बनाएं: यह टिप्पणीI am sorry i did not explain: It won't format it. It will simply not mess it up, if you do it manually. –
संदीप शुक्ला

7

विंडो> वरीयताएँ> जावा> कोड शैली> फ़ॉर्मेटर> संपादित करें> लाइन रैपिंग> फ़ंक्शन कॉल, 'लाइन रैपिंग पॉलिसी' को 'सभी तत्वों को लपेटें, एक नई लाइन पर प्रत्येक तत्व' के रूप में सेट करें।


यह प्रत्येक फ़ंक्शन कॉल को नई पंक्ति में डाल देगा, भले ही वे जंजीर न हों, और यदि आप अपनी फ़ाइल को Ctrl + Shift + f के साथ स्वरूपित करते हैं, तो यह सब कुछ गड़बड़ कर देगा
Op De Cirkel

1
अन्य नीतियां भी उपलब्ध हैं, जैसे "सभी तत्वों को लपेटें, यदि आवश्यक नहीं है तो पहले तत्व को छोड़कर"। उनमें से एक आपके लिए काम करना चाहिए :)
दीपक आज़ाद

7

उन लोगों के लिए जिनके पास ग्रहण कोड स्वरूपण सेटिंग स्रोत नियंत्रण (पूरी टीम में लगातार कोड स्वरूपण के लिए) में जाँच की गई है, .settings में चेक की गई है फ़ोल्डर की जाँच की जाती है।

संपत्ति है कि आप इस स्वरूपण व्यवहार दे देंगे में है .settings/org.eclipse.jdt.core.prefs फ़ाइल में है।

संपत्ति है:

org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80

3

यदि आप स्वयं उन सेगमेंट का प्रारूपण करने के इच्छुक हैं, तो आप उन सेगमेंट को सुधारने से ग्रहण को रोक सकते हैं:

// @formatter:off
...
// @formatter:on

आपको अपनी प्राथमिकताओं में इसे सक्षम करने की आवश्यकता हो सकती है: http://archive.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/eclipse-news-part2.html#JavaFormatter

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


0

में: विंडो-> प्राथमिकताएं-> जावा-> कोड शैली-> फॉर्मेटर-> संपादन-> लाइन रैपिंग-> फंक्शन कॉल-> योग्य आमंत्रण

कॉलम पर इंडेंट पॉलिसी को इंडेंट के रूप में चुनें


-1

जावा और जावास्क्रिप्ट दोनों में अपने ग्रहण फॉर्मेटर को कस्टमाइज़ करें। अपनी स्क्रीन को फिट करने वाली अधिकतम लाइन बढ़ाएं।विंडोज> प्राथमिकताएँ

संपादित करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.