IntelliJ Scala插件的案例类缩进是荒谬的


138

当case类具有许多字段并且它们的名称很长时,通常最好在每一行中编写每个字段,例如:

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

这类似于C / C ++的struct定义,即使case类变大也完全可读。但是IntelliJ IDEA的默认Scala插件会自动更改其缩进:

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

在我看来,这很奇怪,但是《Scala风格指南》并未提及有关案例类缩进的任何内容。

我在IDE设置中找不到任何可以更改此行为的内容。是否可以选择使自动缩进像我上面描述的那样工作,或者对案例类禁用自动缩进?


4
类定义的缩进在这里描述:docs.scala-lang.org/style/declarations.html他们说在新行中需要4个空格。
red1ynx 2014年

@ red1ynx你知道怎么做吗?
王斌

3
这是一个解决youtrack.jetbrains.com/issue/SCL-4167的问题。如果您不喜欢这种行为,请去那里投票。
kopiczko

Answers:


196

试试File-> Settings ...-> Code Style-> Scala

有很多设置可以在其中自定义代码格式。

在“包装和花括号”选项卡的“方法声明参数”下:

  • 选中“对参数使用普通缩进”
  • 取消选中“多行时对齐”

这会将其更改为您提供的示例。

如果希望它使用“制表符和缩进”下的“继续缩进”中的缩进,则必须取消选中以上两个选项。


24
我认为您还必须禁用“多行时对齐”。
FrontierPsycho 2014年

如果我想在它之前增加4个空格怎么办?
王斌

只需将缩进更改为4
Micho

6
@BinWang:取消选中“对参数使用常规缩进”和“在多行时对齐”,然后在“制表符和缩进”下将“继续缩进”设置为4
ingara

7
如果要在“文件->设置...->代码样式-> Scala->其他”中缩进4个空格(根据Scala样式指南),请使用4
Raman Yelianevich
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.