在 scala 中使用 scalafmt 并在我的.scalafmt.conf
文件中包含以下内容:
style = default
maxColumn = 120
continuationIndent.callSite = 2
continuationIndent.defnSite = 2
align.openParenDefnSite = false
align.openParenCallSite = false
danglingParentheses = true
indentOperator = spray
project.excludeFilters = [".*\\.sbt"]
rewrite.rules = [RedundantBraces, RedundantParens, SortModifiers, prefercurlyfors]
unindentTopLevelOperators = true
importSelectors = singleLine
spaces.afterKeywordBeforeParen = true
lineEndings = unix
newlines.penalizeSingleSelectMultiArgList = false
newlines.alwaysBeforeElseAfterCurlyIf = false
binPack.literalArgumentLists = false
runner.optimizer.forceConfigStyleMinArgCount = 1
它目前从以下位置对齐大小写箭头标记:
object Object {
def f(s: String): Int = s match {
case "a" => 1
case "b" | "c" | "d" => 2
case "e"=> 3
case _ => 4
}
}
对此:
object Object {
def f(s: String): Int = s match {
case "a" => 1
case "b" | "c" | "d" => 2
case "e" => 3
case _ => 4
}
}
我不希望代码在箭头上对齐,以最大限度地减少拉取请求中的空白噪音,尤其是在重命名一行时,这会改变整个块的缩进级别。
阅读scalafmt 文档我只发现了默认情况:
align.tokens默认值:
[caseArrow]
对齐标记是一对代码,它是标记运算符和所有者的字符串文字,所有者是拥有该标记的最近树节点的类型。如果没有提供所有者,则将匹配所有树种。
x match { case 1 => 1 -> 2 case 11 => 11 -> 22 }
此示例的配置
align.tokens = [{code = "=>", owner = "Case"}]
我不仅要禁用对齐,还希望 scalafmt 确保=>
箭头前后各有一个空格。(所以它基本上应该与它目前正在做的相反。)
我怎样才能做到这一点?