2014-11-12 34 views
110

Kiedy klasa sprawa ma wiele pól i ich nazwy są długie, często jest to dobry pomysł, aby napisać każde pole w każdej linii jak:IntelliJ Scala plugin jest klasa przypadek wcięcie jest absurdem

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

przypomina to C/C++ struct definicja i całkowicie czytelna, nawet gdy klasa sprawy staje się większa. Ale domyślny plugin Scala IntelliJ IDEA automatycznie zmienia swój wcięcia:

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

który wygląda dziwnie mi, ale Scala Style Guide nie wspomina nic o klasie sprawa wcięcia.

Nie mogłem znaleźć niczego w ustawieniach IDE, które mogłyby zmienić to zachowanie. Czy istnieje opcja automatycznego wykonywania wcięć w sposób opisany powyżej lub wyłączania automatycznego wcięcia dla klas przypadków?

+4

Wcięcie w definicjach klas opisanych tutaj: http://docs.scala-lang.org/style/declarations.html Mówi się, że 4 spacje są potrzebne w nowej linii. – red1ynx

+0

@ red1ynx Czy wiesz, jak to zrobić? –

+3

Oto problem dotyczący adresu https://youtrack.jetbrains.com/issue/SCL-4167. Idź tam i zagłosuj, jeśli nie lubisz tego zachowania. – kopiczko

Odpowiedz

143

Spróbuj Plik -> Ustawienia ... -> Code Style -> Scala

Istnieje wiele ustawień, aby dostosować kod formatowania tam.

W "owijania i Braces zakładce" pod "Parametry deklaracji Metoda":

  • check "Użyj wcięcie normalnej dla parametrów"
  • odznacz "Wyrównaj gdy multiline"

ten zmieni go na podany przykład.

Jeśli chcesz użyć wcięcia w "Ciąg dalszy wcięcia" w "Tabulatory i wcięcia", musisz mieć obie powyższe opcje odznaczone.

+19

Myślę, że trzeba również wyłączyć "Wyrównaj, gdy multilinią". – FrontierPsycho

+0

Co jeśli chcę 4 spacje przed nim? –

+0

Po prostu zmień wcięcie na 4 – Micho