В 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, чтобы обеспечить наличие одного пробела до и после стрелки =>
.(Таким образом, в основном это должно работать в противоположность тому, что он делает в настоящее время.)
Как мне этого добиться?