# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.

#Scalariform formatter preferences
#Wed Apr 20 09:26:25 EDT 2016
alignParameters=true
formatXml=true
preserveDanglingCloseParenthesis=false
spaceInsideBrackets=false
indentWithTabs=false
spaceInsideParentheses=false
multilineScaladocCommentsStartOnFirstLine=false
alignSingleLineCaseStatements=true
compactStringConcatenation=false
placeScaladocAsterisksBeneathSecondAsterisk=false
indentPackageBlocks=true
compactControlReadability=false
spacesWithinPatternBinders=true
alignSingleLineCaseStatements.maxArrowIndent=40
doubleIndentClassDeclaration=false
preserveSpaceBeforeArguments=false
spaceBeforeColon=false
rewriteArrowSymbols=false
indentLocalDefs=false
indentSpaces=4
