การย่อหน้าคลาสของปลั๊กอิน IntelliJ Scala ไม่มีสาระ


138

เมื่อคลาสเคสมีหลายฟิลด์และชื่อมีความยาวมักเป็นความคิดที่ดีที่จะเขียนแต่ละฟิลด์ในแต่ละบรรทัดเช่น:

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

สิ่งนี้คล้ายกับstructนิยามC / C ++ และสามารถอ่านได้ทั้งหมดแม้ว่าคลาสเคสจะใหญ่กว่า แต่ปลั๊กอิน Scala เริ่มต้นของ IntelliJ IDEA จะเปลี่ยนการย่อหน้าโดยอัตโนมัติ:

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

ซึ่งดูแปลกสำหรับฉัน แต่Scala Style Guideไม่ได้พูดถึงการเยื้องของคลาสเคส

ฉันไม่พบสิ่งใดในการตั้งค่า IDE ที่สามารถเปลี่ยนพฤติกรรมนี้ มีตัวเลือกในการทำให้การเยื้องอัตโนมัติทำงานเหมือนกับที่ฉันอธิบายไว้ข้างต้นหรือปิดใช้งานการเยื้องอัตโนมัติสำหรับคลาสเคสหรือไม่?


4
การเยื้องในคำจำกัดความของคลาสที่อธิบายไว้ที่นี่: docs.scala-lang.org/style/declarations.htmlพวกเขาพูดว่าต้องการช่องว่าง 4 บรรทัดบนบรรทัดใหม่
red1ynx

@ red1ynx คุณรู้วิธีการทำเช่นนั้น?
Bin วัง

3
นี่เป็นปัญหาที่อยู่ที่youtrack.jetbrains.com/issue/SCL-4167 ไปที่นั่นและลงคะแนนถ้าคุณไม่ชอบพฤติกรรมนี้
kopiczko

คำตอบ:


196

ลองใช้ไฟล์ -> การตั้งค่า ... -> ลักษณะของรหัส -> Scala

มีการตั้งค่ามากมายเพื่อปรับแต่งการจัดรูปแบบโค้ดของคุณในนั้น

ในแท็บ "การตัดและจัดฟัน" ภายใต้ "พารามิเตอร์ประกาศวิธี":

  • ทำเครื่องหมายที่ "ใช้เยื้องปกติสำหรับพารามิเตอร์"
  • ยกเลิกการเลือก "จัดเรียงเมื่อหลายบรรทัด"

สิ่งนี้จะเปลี่ยนเป็นตัวอย่างที่คุณให้ไว้

หากคุณต้องการให้ใช้การเยื้องใน "การเยื้องต่อเนื่อง" ภายใต้ "แท็บและการเยื้อง" คุณต้องเลือกทั้งสองตัวเลือกข้างต้น


24
ฉันคิดว่าคุณต้องปิดการใช้งาน "จัดเรียงเมื่อหลายบรรทัด"
FrontierPsycho

ถ้าฉันต้องการ 4 ช่องว่างก่อนหน้า
Bin วัง

เพียงแค่เปลี่ยนการเยื้องเป็น 4
Micho

6
@BinWang: ยกเลิกการเลือก "ใช้การเยื้องปกติสำหรับพารามิเตอร์" และ "จัดตำแหน่งเมื่อหลายบรรทัด" และตั้งค่า "การเยื้องต่อเนื่อง" เป็น 4 ภายใต้ "แท็บและเยื้อง"
เวลา 15:08 น.

7
ถ้าคุณต้องการเยื้องช่องว่าง 4 (ตามคำแนะนำสไตล์ Scala) ใน 'ไฟล์ -> การตั้งค่า ... -> สไตล์โค้ด -> สกาล่า -> อื่น ๆ ' ตรวจสอบ 'เยื้องสำรองสำหรับคอนสตรัคต์พารามิเตอร์และการประกาศพารามิเตอร์' กับ 4
Raman Yelianevich
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.