---
# We'll use defaults from the LLVM style, but with 4 columns indentation.
BasedOnStyle: LLVM
IndentWidth: 4
---
Language: Cpp
ColumnLimit: 120
ContinuationIndentWidth: 8

ConstructorInitializerIndentWidth: 4
BreakConstructorInitializers: BeforeComma
AllowAllConstructorInitializersOnNextLine: true
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
AlignAfterOpenBracket: AlwaysBreak
AllowAllParametersOfDeclarationOnNextLine: false
AllowAllArgumentsOnNextLine: false

PenaltyReturnTypeOnItsOwnLine: 999999999
AlwaysBreakAfterReturnType: None
AlwaysBreakAfterDefinitionReturnType: None
AllowShortFunctionsOnASingleLine: None
AllowShortEnumsOnASingleLine: false
AllowShortLambdasOnASingleLine: None

BreakBeforeBraces: Custom
BraceWrapping:
  AfterCaseLabel: false
  AfterClass: false
  AfterControlStatement: MultiLine
  AfterEnum: false

BreakBeforeTernaryOperators: true
PointerAlignment: Left
AlignOperands: false
SpaceBeforeRangeBasedForLoopColon: false
SpaceBeforeInheritanceColon: false

PenaltyExcessCharacter: 12 # 3 excess characters are allowed
IndentCaseLabels: true
IndentAccessModifiers: false
AccessModifierOffset: -4

# don't exist right now
# BreakAfterFunction: Multiline
# AllowBreakAfterTernary: true

# waiting for
# AlignAfterOpenBracket: BlockIndent # https://reviews.llvm.org/D109557
---
