web-dev-qa-db-fra.com

IntelliJ Scala L'indentation de la classe de cas du plugin est absurde

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

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

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

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

ce qui me semble bizarre, mais le Scala Style Guide ne mentionne rien au sujet de l'indentation de classe de cas.

Je n'ai rien trouvé dans les paramètres IDE pouvant modifier ce comportement. Existe-t-il une option permettant de faire en sorte que l'auto-indentation fonctionne comme décrit ci-dessus ou de désactiver l'auto-indentation pour les classes de cas?

130
lyomi

Essayez Fichier -> Paramètres ... -> Style de code -> Scala

Il y a beaucoup de paramètres pour personnaliser la mise en forme de votre code ici.

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

  • check "utiliser un retrait normal pour les paramètres"
  • décocher "Aligner quand multiligne"

Cela changera à l'exemple que vous avez fourni.

Si vous souhaitez utiliser l'indentation dans "Retrait de continuation" sous "Onglets et retrait", vous devez désactiver les deux options ci-dessus.

186
Micho