IntelliJ Scalaプラグインのケースクラスインデントはばかげている


138

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

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

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

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

奇妙に見えますが、Scalaスタイルガイドでは、ケースクラスのインデントについては何も触れられていません。

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


4
ここで説明されているクラス定義のインデント:docs.scala-lang.org/style/declarations.html彼らは、改行に 4つのスペースが必要だと言っています。
red1ynx 2014年

@ red1ynxその方法を知っていますか?
Bin Wang

3
youtrack.jetbrains.com/issue/SCL-4167解決するための問題を次に示します。そこに行って、この動作が気に入らない場合は投票してください。
kopiczko

回答:


196

ファイルを試してください->設定...->コードスタイル-> Scala

そこには、コードのフォーマットをカスタマイズするための設定がたくさんあります。

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

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

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

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


24
「複数行に揃える」も無効にする必要があると思います。
FrontierPsycho

その前に4つのスペースが必要な場合はどうなりますか?
Bin Wang

インデントを4に変更してください
Micho

6
@BinWang:[パラメータに通常のインデントを使用]と[複数行に揃える]をオフにし、[タブとインデント]で[継続インデント]を4に設定します
ingara

7
「ファイル->設定
...-
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.