web-dev-qa-db-ja.com

IntelliJ Scalaプラグインのケースクラスのインデントは不合理です

ケースクラスに多くのフィールドがあり、その名前が長い場合、各行に各フィールドを次のように記述することをお勧めします。

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

これはC/C++ struct定義に似ており、ケースクラスが大きくなっても完全に読み取り可能です。しかし、IntelliJ IDEAのデフォルトScalaプラグインは自動的にインデントを変更します:

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

私には奇妙に見えますが、 Scala Style Guide はケースクラスのインデントについては何も言及していません。

この動作を変更できるIDE設定には何も見つかりませんでした。上記の方法のように自動インデントを機能させるオプションや、ケースクラスの自動インデントを無効にするオプションはありますか?

130
lyomi

ファイルを試す->設定...->コードスタイル-> Scala

そこには、コードの書式設定をカスタマイズするための多くの設定があります。

「ラッピングとブレース」タブの「メソッド宣言パラメーター」の下:

  • 「パラメータに通常のインデントを使用する」をチェックします
  • 「複数行のときに整列」のチェックを外します

これにより、指定した例に変更されます。

「タブとインデント」の下の「継続インデント」でインデントを使用する場合は、上記のオプションの両方をオフにする必要があります。

186
Micho