BasedOnStyle: LLVM

ColumnLimit: 80

AccessModifierOffset: -4
ConstructorInitializerIndentWidth: 8
ContinuationIndentWidth: 8
IndentCaseLabels: false
IndentPPDirectives: None
IndentWidth: 4
IndentWrappedFunctionNames: false
UseTab: Never

NamespaceIndentation: None
CompactNamespaces: false
FixNamespaceComments: true

MaxEmptyLinesToKeep: 2
KeepEmptyLinesAtTheStartOfBlocks: false

AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: false
AlignOperands: true
AlignTrailingComments: false

AlignAfterOpenBracket: AlwaysBreak
# AllowAllArgumentsOnNextLine: true
# AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: false

AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: false
# AllowShortLambdasOnASingleLine: Always
AllowShortLoopsOnASingleLine: false

AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes

BinPackArguments: false
BinPackParameters: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true

BreakBeforeBraces: Custom
# BrakeBeforeBraces: Attach
BraceWrapping:
#  AfterCaseLabel: false
  AfterClass: false
  AfterControlStatement: false
  AfterEnum: false
  AfterFunction: false
  AfterNamespace: false
  AfterStruct: false
  AfterUnion: false
  AfterExternBlock: false
  BeforeCatch: true
  BeforeElse: true
  SplitEmptyFunction: false
  SplitEmptyRecord: false
  SplitEmptyNamespace: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma

BreakStringLiterals: true

Cpp11BracedListStyle: true
SpaceBeforeCpp11BracedList: false

PointerAlignment: Left

ForEachMacros: ['traverse']

IncludeBlocks: Preserve
# IncludeCategories
# IncludeIsMainRegex
SortIncludes: true
SortUsingDeclarations: true

ReflowComments: true

SpaceAfterCStyleCast: true
# SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false

Standard: Cpp11

PenaltyBreakBeforeFirstCallParameter: 0
PenaltyReturnTypeOnItsOwnLine: 300
PenaltyBreakFirstLessLess: 0
