इंटेलीज स्काला प्लगिन का केस क्लास इंडेंटेशन बेतुका है


138

जब किसी केस क्लास में कई फील्ड्स होते हैं और उनके नाम लंबे होते हैं, तो अक्सर प्रत्येक पंक्ति में प्रत्येक फ़ील्ड को लिखना एक अच्छा विचार होता है:

case class Person (
  name: String,
  age: Int
)

यह C / C ++ structपरिभाषा से मिलता जुलता है और केस क्लास बड़ा होने पर भी पूरी तरह से पठनीय है। लेकिन IntelliJ IDEA का डिफ़ॉल्ट स्काला प्लगइन स्वतः ही अपना इंडेंटेशन बदल देता है:

case class Person (
                    name: String,
                    age: Int
                    )

जो मुझे अजीब लगता है, लेकिन स्काला स्टाइल गाइड ने केस क्लास इंडेंटेशन के बारे में कुछ भी उल्लेख नहीं किया है।

मुझे आईडीई सेटिंग्स में कुछ भी नहीं मिला जो इस व्यवहार को बदल सकता है। क्या ऑटो-इंडेंटेशन काम करने का एक विकल्प है जैसे कि मैंने ऊपर वर्णित किया है या केस कक्षाओं के लिए ऑटो-इंडेंटेशन को अक्षम कर दिया है?


4
यहाँ वर्णित कक्षा परिभाषाओं में इंडेंटेशन: docs.scala-lang.org/style/declarations.html वे कहते हैं कि नई लाइन पर आवश्यक 4 रिक्त स्थान हैं।
red1ynx

@ red1ynx क्या आप जानते हैं कि यह कैसे करना है?
बिन वांग

3
यहाँ एक मुद्दा यह है कि Youtrack.jetbrains.com/issue/SCL-4167 संबोधित कर रहा है । अगर आपको यह व्यवहार पसंद नहीं है तो वहां जाएं और वोट करें।
कोपोज़्को

जवाबों:


196

फ़ाइल की कोशिश करें -> सेटिंग्स ... -> कोड शैली -> स्काला

वहाँ अपने कोड स्वरूपण को अनुकूलित करने के लिए बहुत सारी सेटिंग्स हैं।

"रैपिंग एंड ब्रेसेस" टैब में, "मेथड डिक्लेरेशन पैरामीटर" के तहत:

  • "मापदंडों के लिए सामान्य इंडेंट का उपयोग करें" जांचें
  • अनचेक करें "जब बहु-पंक्ति में संरेखित करें"

यह आपके द्वारा दिए गए उदाहरण में बदल जाएगा।

यदि आप चाहते हैं कि यह "टैब्स एंड इंडेंट" के तहत "कंटिन्यूएशन इंडेंट" में इंडेंटिंग का उपयोग करने के लिए आपके पास अनियंत्रित के ऊपर दोनों विकल्प हैं।


24
मुझे लगता है कि आपको "जब मल्टीलाइन होगा तब संरेखित करें"।
फ्रंटियरस्पीको

अगर मुझे इससे पहले 4 स्थान चाहिए तो क्या होगा?
बिन वांग

बस इंडेंट को 4 में बदलें
मिचो

6
@BinWang: "मापदंडों के लिए सामान्य इंडेंट का उपयोग करें" को अनचेक करें और "जब मल्टीलाइन करें" को संरेखित करें और "कंट्स इंडेंट" को "टैब और इंडेंट" के तहत 4 पर सेट करें
इंगारा

7
यदि आप चाहते हैं कि 4 रिक्तियाँ इंडेंट करें (स्केल स्टाइल गाइड्स के अनुसार) तो फाइल -> सेटिंग्स ... -> कोड स्टाइल -> स्काला -> अन्य 'चेक' कंस्ट्रक्टर
आर्ग्स के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.