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?


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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.