ColumnLimit: 100
BasedOnStyle: LLVM
SortIncludes: CaseSensitive
IncludeBlocks: Regroup

SpaceAfterCStyleCast: true
SpaceAfterTemplateKeyword: true
SpaceAfterCtorInitializerColon: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: true
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpacesInAngles: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false

AllowShortBlocksOnASingleLine: Empty
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false

BreakBeforeConceptDeclarations: Always
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: AfterComma
BreakInheritanceList: BeforeColon

AlignArrayOfStructures: Right
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true

AlignConsecutiveDeclarations:
  Enabled: true
  AcrossEmptyLines: false
  AcrossComments: false
  AlignCompound: true
  
AlignConsecutiveMacros: true
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments: true

AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None

AllowAllParametersOfDeclarationOnNextLine: true

BinPackParameters: false

NamespaceIndentation: All
CompactNamespaces: false
FixNamespaceComments: true
ShortNamespaceLines: 1

MaxEmptyLinesToKeep: 2
KeepEmptyLinesAtTheStartOfBlocks: true

SeparateDefinitionBlocks: Always
EmptyLineBeforeAccessModifier: Always

PackConstructorInitializers: Never

IndentCaseLabels: true

PenaltyReturnTypeOnItsOwnLine: 1000
PenaltyExcessCharacter: 10
PenaltyBreakAssignment: 2

IndentWidth: 4
UseTab: Never
AccessModifierOffset: -4
