Lekukan kelas kasus IntelliJ Scala Plugin tidak masuk akal

138

Ketika kelas kasus memiliki banyak bidang dan namanya panjang, sering kali ide yang baik untuk menulis setiap bidang di setiap baris seperti:

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

Ini menyerupai structdefinisi C / C ++ dan benar-benar dapat dibaca bahkan ketika kelas kasus menjadi lebih besar. Tetapi plugin Scala standar IntelliJ IDEA secara otomatis mengubah indentasinya:

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

yang terlihat aneh bagi saya, tetapi Panduan Gaya Scala tidak menyebutkan apa-apa tentang lekukan kelas kasus.

Saya tidak dapat menemukan apa pun di pengaturan IDE yang dapat mengubah perilaku ini. Apakah ada opsi untuk membuat indentasi otomatis berfungsi seperti cara yang saya jelaskan di atas atau menonaktifkan indentasi otomatis untuk kelas kasus?

lyomi
sumber
4
Lekukan dalam definisi kelas yang dijelaskan di sini: docs.scala-lang.org/style/declarations.html Mereka mengatakan 4 spasi diperlukan pada baris baru.
red1ynx
@ red1ynx Apakah Anda tahu cara melakukannya?
Bin Wang
3
Ini adalah masalah yang berhubungan dengan youtrack.jetbrains.com/issue/SCL-4167 . Pergi ke sana dan pilih jika Anda tidak menyukai perilaku ini.
kopiczko

Jawaban:

196

Coba File -> Pengaturan ... -> Gaya Kode -> Scala

Ada banyak pengaturan untuk menyesuaikan pemformatan kode Anda di sana.

Di tab "Wrapping and Braces", di bawah "Parameter pernyataan metode":

  • centang "gunakan indentasi normal untuk parameter"
  • hapus centang "Luruskan saat multiline"

Ini akan mengubahnya menjadi contoh yang Anda berikan.

Jika Anda ingin menggunakan indentasi dalam "Indentasi lanjutan" di bawah "Tab dan Indent" Anda harus memiliki kedua opsi di atas tidak dicentang.

Micho
sumber
24
Saya pikir Anda juga harus menonaktifkan "Align when multiline".
FrontierPsycho
Bagaimana jika saya ingin 4 spasi sebelumnya?
Bin Wang
Ubah saja Indent ke 4
Micho
6
@BinWang: Hapus centang "gunakan indentasi normal untuk parameter" dan "Sejajarkan saat multiline" dan setel "Indentasi lanjutan" ke 4 di bawah "Tabs and Indent"
ingara
7
Jika Anda ingin 4 spasi indent (sesuai dengan panduan gaya Scala) di 'File -> Settings ... -> Style Code -> Scala -> Other' check '
Indentasi