Die Einrückung der Fallklasse des IntelliJ Scala Plugins ist absurd

138

Wenn eine Fallklasse viele Felder hat und ihre Namen lang sind, ist es oft eine gute Idee, jedes Feld in jede Zeile wie folgt zu schreiben:

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

Dies ähnelt der C / C ++ - structDefinition und ist auch dann vollständig lesbar, wenn die Fallklasse größer wird. Das Standard-Scala-Plugin von IntelliJ IDEA ändert jedoch automatisch den Einzug:

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

Das sieht für mich komisch aus, aber der Scala Style Guide erwähnt nichts über das Einrücken von Fallklassen.

Ich konnte in den IDE-Einstellungen nichts finden, was dieses Verhalten ändern könnte. Gibt es eine Option, mit der die automatische Einrückung wie oben beschrieben funktioniert oder die automatische Einrückung für Fallklassen deaktiviert wird?

Lyomi
quelle
4
Einzug in die hier beschriebenen Klassendefinitionen : docs.scala-lang.org/style/declarations.html In einer neuen Zeile werden 4 Leerzeichen benötigt.
Red1ynx
@ red1ynx Weißt du wie das geht?
Bin Wang
3
Hier ist ein Problem, das sich mit youtrack.jetbrains.com/issue/SCL-4167 befasst . Gehen Sie dorthin und stimmen Sie ab, wenn Ihnen dieses Verhalten nicht gefällt.
kopiczko

Antworten:

196

Versuchen Sie Datei -> Einstellungen ... -> Codestil -> Scala

Es gibt viele Einstellungen, um Ihre Code-Formatierung dort anzupassen.

Auf der Registerkarte "Wrapping and Braces" unter "Methodendeklarationsparameter":

  • Aktivieren Sie "Normalen Einzug für Parameter verwenden".
  • Deaktivieren Sie "Bei Mehrzeiligkeit ausrichten".

Dadurch wird das von Ihnen angegebene Beispiel geändert.

Wenn Sie möchten, dass der Einzug in "Fortsetzungseinzug" unter "Tabulatoren und Einzug" verwendet wird, müssen beide oben genannten Optionen deaktiviert sein.

Micho
quelle
24
Ich denke, Sie müssen auch "Ausrichten, wenn mehrzeilig" deaktivieren.
FrontierPsycho
Was ist, wenn ich 4 Leerzeichen davor haben möchte?
Bin Wang
Ändern Sie einfach den Einzug auf 4
Micho
6
@ BinWang: Deaktivieren Sie "Normalen Einzug für Parameter verwenden" und "Bei Mehrzeiligkeit ausrichten" und setzen Sie "Fortsetzungseinzug" unter "Tabulatoren und Einzug" auf 4
ingara
7
Wenn Sie möchten, dass 4 Leerzeichen (gemäß Scala-Stilrichtlinien) in 'Datei -> Einstellungen ... -> Codestil -> Scala -> Andere'
eingerückt werden, aktivieren