1. ホーム
  2. scala

[解決済み] IntelliJ Scala Pluginのcase classのインデントが不合理

2022-05-10 18:36:27

質問

caseクラスに多くのフィールドがあり、その名前が長い場合、各フィールドを1行ずつに記述するのがよい場合が多いようです。

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

これはC/C++に似ている struct という定義があり、ケースクラスが大きくなっても全く問題なく読めます。しかし、IntelliJ IDEAのデフォルトのScalaプラグインでは、自動的にインデントが変更されてしまう。

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

というのは、私には変に見えますが Scalaスタイルガイド は、ケースクラスのインデントについて何も言及していません。

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

解決方法は?

トライファイル -> 設定... -> コードスタイル -> Scala

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

Wrapping and Braces" タブの中の "Method declaration parameters" の下にある「Wrapping and Braces"」をクリックします。

  • パラメータに通常のインデントを使用する(quot)」にチェックを入れます。
  • 複数行のときに整列する」のチェックをはずす。

これで、提供された例に変更されます。

タブとインデント」の「quot;継続インデント」のインデントを使用したい場合は、上記のオプションのチェックを両方とも外す必要があります。