#
# aGrUM clang-format specification (version clang-format-3.8)
# Pierre-Henri Wuillemin - 2016-2018
#
BasedOnStyle: LLVM

Standard: Cpp11

ColumnLimit: 83
MaxEmptyLinesToKeep: 2
KeepEmptyLinesAtTheStartOfBlocks: false
ReflowComments: true
CommentPragmas: "\\@headerfile"

IndentPPDirectives: AfterHash
BreakBeforeBraces: Attach
AlwaysBreakTemplateDeclarations: true
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeInheritanceComma: true
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: true
BreakStringLiterals: true
BreakConstructorInitializers: AfterColon
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true

IndentWidth: 2
ContinuationIndentWidth: 3
UseTab: Never
AccessModifierOffset: 0
IndentCaseLabels: true
IndentWrappedFunctionNames: true
NamespaceIndentation: All

SpacesBeforeTrailingComments: 2
SpacesInAngles: true
Cpp11BracedListStyle: true
SpacesInParentheses: false
SpaceInEmptyParentheses: false
SpacesInSquareBrackets: false
SpaceAfterCStyleCast: false
SpacesInCStyleCastParentheses: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 3
SpacesInContainerLiterals: false


PointerAlignment: Left
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignOperands: true
AlignEscapedNewlinesLeft: true
AlignTrailingComments: true
AlignConsecutiveDeclarations: true
AllowAllParametersOfDeclarationOnNextLine: true

BinPackArguments: false
BinPackParameters: false

AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: true
AllowShortLoopsOnASingleLine: false
AllowShortBlocksOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: true

SortIncludes: false
SortUsingDeclarations: false
