Отступы класса case в плагине IntelliJ Scala абсурдны

139

Когда класс case имеет много полей и их имена длинные, часто рекомендуется записывать каждое поле в каждой строке, например:

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

Это похоже на определение C / C ++ structи полностью читается, даже когда класс case становится больше. Но плагин Scala по умолчанию для IntelliJ IDEA автоматически меняет отступ:

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

что мне кажется странным, но в Scala Style Guide ничего не упоминается об отступе класса case.

Я не смог найти в настройках IDE ничего, что могло бы изменить это поведение. Есть ли возможность заставить автоматический отступ работать так, как я описал выше, или отключить автоматический отступ для классов case?

Lyomi
источник
4
Отступы в определениях классов описаны здесь: docs.scala-lang.org/style/declarations.html Они говорят, что для новой строки требуется 4 пробела.
red1ynx
@ red1ynx Вы знаете, как это сделать?
Бин Ван
3
Вот проблема, касающаяся этого youtrack.jetbrains.com/issue/SCL-4167 . Идите туда и проголосуйте, если вам не нравится такое поведение.
kopiczko

Ответы:

196

Попробуйте Файл -> Настройки ... -> Стиль кода -> Scala

Там есть множество настроек для настройки форматирования вашего кода.

На вкладке «Обтекание и фигурные скобки» в разделе «Параметры объявления метода»:

  • отметьте "использовать нормальный отступ для параметров"
  • снимите флажок "Выровнять при многострочности"

Это изменит его на приведенный вами пример.

Если вы хотите, чтобы использовался отступ в «Отступ продолжения» в разделе «Табуляция и отступ», вам необходимо снять оба флажка выше.

Мичо
источник
24
Думаю, еще надо отключить «Выравнивать при многострочности».
FrontierPsycho
Что, если я хочу поставить перед ним 4 пробела?
Бин Ван
Просто измените отступ на 4
Мичо
6
@BinWang: снимите флажок «использовать нормальный отступ для параметров» и «Выровнять при многострочном» и установите для «Отступ продолжения» значение 4 в разделе «Табуляция и отступ»
ingara
7
Если вы хотите сделать отступ в 4 пробела (согласно руководству по стилю Scala) в 'Файл -> Настройки ... -> Стиль кода -> Scala -> Другое', отметьте 'Альтернативный отступ для аргументов конструктора и объявлений параметров' с 4
Раман Елианевич