Wcięcie klasy przypadku IntelliJ Scala Plugin jest absurdalne

138

Gdy klasa case ma wiele pól, a ich nazwy są długie, często dobrym pomysłem jest zapisanie każdego pola w każdym wierszu, na przykład:

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

Przypomina to structdefinicję C / C ++ i jest całkowicie czytelny, nawet gdy klasa przypadku staje się większa. Ale domyślna wtyczka Scala IntelliJ IDEA automatycznie zmienia swoje wcięcie:

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

co dla mnie wygląda dziwnie, ale przewodnik po stylu Scala nie wspomina nic o wcięciach klas przypadków.

Nie udało mi się znaleźć w ustawieniach IDE niczego, co mogłoby zmienić to zachowanie. Czy istnieje opcja, aby automatyczne wcięcie działało tak, jak opisałem powyżej, lub wyłączyć automatyczne wcięcie dla klas przypadków?

lyomi
źródło
4
Wcięcia w definicjach klas opisane tutaj: docs.scala-lang.org/style/declarations.html Mówią, że potrzebne są 4 spacje w nowej linii.
red1ynx
@ red1ynx Czy wiesz, jak to zrobić?
Bin Wang,
3
Oto problem dotyczący tego youtrack.jetbrains.com/issue/SCL-4167 . Udaj się tam i zagłosuj, jeśli nie podoba ci się to zachowanie.
kopiczko

Odpowiedzi:

196

Wypróbuj Plik -> Ustawienia ... -> Styl kodu -> Scala

Jest tam wiele ustawień umożliwiających dostosowanie formatowania kodu.

Na karcie „Zawijanie i klamry”, w sekcji „Parametry deklaracji metody”:

  • zaznacz "użyj normalnego wcięcia dla parametrów"
  • odznacz „Wyrównaj, gdy jest wielowierszowy”

Spowoduje to zmianę na podany przykład.

Jeśli chcesz, aby używał wcięcia w opcji „Wcięcie kontynuacyjne” w sekcji „Tabulatory i wcięcie”, musisz mieć odznaczone obie powyższe opcje.

Micho
źródło
24
Myślę, że musisz również wyłączyć opcję „Wyrównaj, gdy jest wielowierszowa”.
FrontierPsycho
A jeśli chcę mieć 4 spacje przed nim?
Bin Wang
Po prostu zmień wcięcie na 4
Micho
6
@BinWang: Odznacz „użyj normalnego wcięcia dla parametrów” i „Wyrównaj, gdy jest wielowierszowy” i ustaw „Wcięcie kontynuacyjne” na 4 w „Tabulatory i wcięcie”
ingara
7
Jeśli chcesz wcięcia 4 spacje (zgodnie z przewodnikami po stylu Scala) w 'Plik -> Ustawienia ... -> Styl kodu -> Scala -> Inne' zaznacz 'Alternatywne wcięcie dla argumentów konstruktora i deklaracji parametrów' z 4
Raman Yelianevich