L'indentation de classe de cas d'IntelliJ Scala Plugin est absurde

138

Lorsqu'une classe de cas a de nombreux champs et que leurs noms sont longs, il est souvent judicieux d'écrire chaque champ dans chaque ligne comme:

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

Cela ressemble à la structdéfinition C / C ++ et est totalement lisible même lorsque la classe de cas devient plus grande. Mais le plugin Scala par défaut d'IntelliJ IDEA change automatiquement son indentation:

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

ce qui me semble étrange, mais le Guide de style Scala ne mentionne rien sur l'indentation des classes de cas.

Je n'ai rien trouvé dans les paramètres IDE qui puisse changer ce comportement. Existe-t-il une option pour que l'indentation automatique fonctionne comme je l'ai décrit ci-dessus ou pour désactiver l'indentation automatique pour les classes de cas?

Lyomi
la source
4
Indentation dans les définitions de classe décrites ici: docs.scala-lang.org/style/declarations.html Ils disent que 4 espaces sont nécessaires sur une nouvelle ligne.
red1ynx
@ red1ynx Savez-vous comment faire ça?
Bin Wang
3
Voici un problème qui résout le problème de youtrack.jetbrains.com/issue/SCL-4167 . Allez-y et votez si vous n'aimez pas ce comportement.
kopiczko

Réponses:

196

Essayez le fichier -> Paramètres ... -> Style de code -> Scala

Il existe de nombreux paramètres pour personnaliser la mise en forme de votre code.

Dans l'onglet "Emballage et accolades", sous "Paramètres de déclaration de méthode":

  • cochez "utiliser un retrait normal pour les paramètres"
  • décochez "Aligner lorsque multiligne"

Cela le changera pour l'exemple que vous avez fourni.

Si vous voulez qu'il utilise l'indentation dans "Retrait de continuation" sous "Tabulations et retrait", vous devez décocher les deux options ci-dessus.

Micho
la source
24
Je pense que vous devez également désactiver "Aligner en multiligne".
FrontierPsycho
Et si je veux 4 espaces avant?
Bin Wang
Changez simplement le retrait en 4
Micho
6
@BinWang: décochez "Utiliser le retrait normal pour les paramètres" et "Aligner lorsque multiligne" et réglez "Retrait de continuation" sur 4 sous "Tabulations et retrait"
ingara
7
Si vous voulez un retrait de 4 espaces (selon les guides de style Scala) dans 'Fichier -> Paramètres ... -> Style de code -> Scala -> Autre' cochez 'Autre indentation pour les arguments du constructeur et les déclarations de paramètres' avec 4
Raman Yelianevich