使用 IntelliJ 在 Scala 中格式化部分函数,如匹配函数
Format partial functions like match functions in Scala with IntelliJ
IntelliJ(14.0.3,Scala 插件 1.4)在函数之后格式化常规 case/match 块(这来自一些 HTTP 代码):
get("/work") { x => x match {
case (200, result) => ...
case _ => ...
}
} // I'm not worried about this brace
如果我折叠那个明显的 x => x match
,它的格式如下:
get("/work") {
case (200, result) => ...
case _ => ...
}
如果对 get("/work")
的调用使用更长的 url(就像我在某些地方所做的那样),这种格式会变得混乱。如果我有更多的嵌套东西,情况会变得更糟。
有没有办法让 IntelliJ 格式化 case 语句相对于原始语句缩进一个制表位,而不是相对于左大括号?
事实证明,这是设置正确的代码样式选项的问题。
在设置 -> 编辑器 -> 代码风格 -> Scala,环绕和大括号 -> 方法调用参数中,如果 Align when multiline
开启,Do not align block expression parameters
必须开启。
IntelliJ(14.0.3,Scala 插件 1.4)在函数之后格式化常规 case/match 块(这来自一些 HTTP 代码):
get("/work") { x => x match {
case (200, result) => ...
case _ => ...
}
} // I'm not worried about this brace
如果我折叠那个明显的 x => x match
,它的格式如下:
get("/work") {
case (200, result) => ...
case _ => ...
}
如果对 get("/work")
的调用使用更长的 url(就像我在某些地方所做的那样),这种格式会变得混乱。如果我有更多的嵌套东西,情况会变得更糟。
有没有办法让 IntelliJ 格式化 case 语句相对于原始语句缩进一个制表位,而不是相对于左大括号?
事实证明,这是设置正确的代码样式选项的问题。
在设置 -> 编辑器 -> 代码风格 -> Scala,环绕和大括号 -> 方法调用参数中,如果 Align when multiline
开启,Do not align block expression parameters
必须开启。