Intellij Scala форматирование определения класса

Как я могу получить Intellij формат моего определения класса Scala следующим образом:

sealed class Traffic(
    private[this] val javaTraffic: Traffic.JavaTraffic,
    private[this] val sanitizer: Sanitizer)
  extends Serializable with Logger {

В основном 4 отступов для объявления участника в каждой строке и 2 отступов для наследования классов.

Ответ 1

Начиная с версии 2016.2 это можно сделать, сделав следующие изменения от значения по умолчанию в Settings > Editor > Code Style > Scala:

  • Снимите отметку Method declaration parameters > Align when multiline под Wrapping and Braces.
  • Отметьте Alternate indentation for constructor args and parameter declarations в разделе Other и установите для него значение 4.

Недостатком является то, что это относится не только к параметрам конструктора, но и к объявлениям нормальных методов, поэтому вы не можете иметь параметры метода, совпадающие с открывающей скобкой. Но я думаю, нам придется жить с этим.