BasedOnStyle: LLVM
IndentWidth: 4
UseTab: Never

# Allman brace style
BreakBeforeBraces: Allman
AllowShortBlocksOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortLoopsOnASingleLine: false

# Pointer alignment
PointerAlignment: Left

# Column limit
ColumnLimit: 100

# Case labels
IndentCaseLabels: true

# Include sorting
SortIncludes: CaseSensitive
IncludeBlocks: Regroup

ContinuationIndentWidth: 4
AlignArrayOfStructures: Left
PackConstructorInitializers: Never

SpaceBeforeParens: Custom
SpaceBeforeParensOptions:
  AfterControlStatements: true
  AfterFunctionDefinitionName: false

AlignOperands: AlignAfterOperator
BreakBeforeBinaryOperators: None

IndentPPDirectives: None
AlignConsecutiveMacros: Consecutive

BinPackArguments: false
BinPackParameters: false

AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AlignAfterOpenBracket: BlockIndent
PenaltyBreakBeforeFirstCallParameter: 0

ReflowComments: true
SpacesInLineCommentPrefix:
  Minimum: 1
  Maximum: 1

PenaltyReturnTypeOnItsOwnLine: 99999999
AlignEscapedNewlines: Left

BracedInitializerIndentWidth: 0