如何在 IntelliJ Scala 中的多行参数列表上指定缩进?

ant*_*ian 5 scala intellij-idea

这一直困扰着我一段时间,但我似乎无法弄清楚如何更改此格式。我们以一个case类为例:

我喜欢我的代码格式

我更喜欢换行后的两个选项卡;然而,IntelliJ 似乎强制这种风格:

IntelliJ 如何格式化代码

此行为似乎由 控制Preferences -> Editor -> Code Style -> Scala -> Other -> Alternate indentation for constructor args and parameter declarations,它指定最少 0 个空格,并且只是将 arg 列表与左括号内联。这本身并不是什么大问题,但是每当我复制/粘贴代码块时,它都会重新格式化所有内容,我不得不返回并恶心地切换标签。是否有我在某处丢失的样式字段?

小智 7

有一个 Intellij 唯一的解决方案:

在 下Wrapping and Braces,禁用Method declaration parameters > Use normal indent for parameters

然后,在 下Other,启用Alternate indentation for constructor args and parameter declarations并设置为您要从声明级别缩进的空格数(在您的情况下为 4)。


I S*_*ces 0

您还可以查看scalari-form plugin。它为您提供了更多且独立于 IDE 的功能。您对alignArguments=true特别感兴趣,如果我没记错的话,默认值应该根据您的需要进行缩进。

*请注意,它会在某些 sbt 任务之后格式化代码,例如,而不是当您在 IntelliJ 中sbt test按或 类似时Ctrl+Alt+L