-
Notifications
You must be signed in to change notification settings - Fork 0
/
.scalafmt.conf
108 lines (88 loc) · 2.32 KB
/
.scalafmt.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# See http://scalameta.org/scalafmt/#Configuration for details,
# mostly done by trial and error. But I guess this formatting is "good enough"
#
version = 1.4.0
project {
#if you don't specify that files ending in .scala .sbt with $,
# .scalafmt.conf is included in the formatting attempt
includeFilters = [
".*.\\.scala$"
".*\\..sbt$"
]
}
# Note. Only for the truest vertical aligners. This is a new option,
# feel free to open PR enabling more crazy vertical alignment here.
# Expect changes.
align = most
maxColumn = 120
# If true, the margin character | is aligned with the opening triple quote string literals
assumeStandardLibraryStripMargin = true
includeCurlyBraceInSelectChains = false
align {
openParenCallSite = false
openParenDefnSite = false
tokens = [
# std scala specific
//ensures that => doesn't align anything that's not in a case
{code = "=>", owner = "Case"}
"="
"->"
","
"<-"
//to align type definitions in case classes
//has the nasty side effect, that it shittily
//tries to align types in the definitions of
//defs when you have multiple parameter lists
":"
//sbt specific
"%"
"%%"
"%%%"
":="
"withSources"
//super specific to the libraries we use
//circe
]
arrowEnumeratorGenerator = true
}
continuationIndent {
callSite = 2
defnSite = 2
extendSite = 4
}
danglingParentheses = true
newlines {
alwaysBeforeTopLevelStatements = true
sometimesBeforeColonInMethodReturnType = true
penalizeSingleSelectMultiArgList = false
alwaysBeforeElseAfterCurlyIf = true
neverInResultType = false
}
spaces {
afterKeywordBeforeParen = true
}
binPack {
parentConstructors = true
literalArgumentLists = true
}
optIn {
breaksInsideChains = false
breakChainOnFirstMethodDot = true
configStyleArguments = true
}
runner {
optimizer {
# Set to -1 to disable. Increase number to require bigger argument bodies to trigget flag
# presumably, this number is number of characters.
forceConfigStyleOnOffset = 150
# minimum number of func arguments before config-style (look at top of file) is enabled
forceConfigStyleMinArgCount = 2
}
}
rewrite {
rules = [
SortImports
# if your for has more than one single <- then it gets transformed into a multit-line curly brace one
PreferCurlyFors
]
}