La sangría de clase de caso de IntelliJ Scala Plugin es absurda

138

Cuando una clase de caso tiene muchos campos y sus nombres son largos, a menudo es una buena idea escribir cada campo en cada línea como:

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

Esto se asemeja a la structdefinición de C / C ++ y es totalmente legible incluso cuando la clase de caso se hace más grande. Pero el complemento Scala predeterminado de IntelliJ IDEA cambia automáticamente su sangría:

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

lo que me parece extraño, pero la Guía de estilo de Scala no menciona nada sobre la sangría de clase de caso.

No pude encontrar nada en la configuración de IDE que pueda cambiar este comportamiento. ¿Existe alguna opción para hacer que la sangría automática funcione como lo describí anteriormente o deshabilitar la sangría automática para las clases de casos?

lyomi
fuente
44
Sangría en las definiciones de clase descritas aquí: docs.scala-lang.org/style/declarations.html Dicen que se necesitan 4 espacios en la nueva línea.
red1ynx
@ red1ynx ¿Sabes cómo hacer eso?
Bin Wang
3
Aquí hay un problema que trata youtrack.jetbrains.com/issue/SCL-4167 . Ve allí y vota si no te gusta este comportamiento.
kopiczko

Respuestas:

196

Pruebe Archivo -> Configuración ... -> Estilo de código -> Scala

Hay muchas configuraciones para personalizar el formato de código allí.

En la pestaña "Envoltura y llaves", en "Parámetros de declaración de método":

  • marque "usar sangría normal para los parámetros"
  • desmarque "Alinear cuando multilínea"

Esto lo cambiará al ejemplo que proporcionó.

Si desea que use la sangría en "Sangría de continuación" en "Pestañas e sangría", debe desmarcar las dos opciones anteriores.

Micho
fuente
24
Creo que también debe deshabilitar "Alinear cuando multilínea".
FrontierPsycho
¿Qué pasa si quiero 4 espacios antes?
Bin Wang
Simplemente cambie la sangría a 4
Micho
66
@BinWang: Desmarque "usar sangría normal para los parámetros" y "Alinear cuando hay varias líneas" y configure "Continuar sangría" en 4 en "Pestañas e sangría"
ingara
77
Si desea una sangría de 4 espacios (de acuerdo con las guías de estilo Scala) en 'Archivo -> Configuración ... -> Estilo de código -> Scala -> Otro' verificar 'Sangría alternativa para argumentos de constructor y declaraciones de parámetros' con 4
Raman Yelianevich