---
BasedOnStyle: Google
AccessModifierOffset: -2
ConstructorInitializerIndentWidth: 2
AlignEscapedNewlinesLeft: false
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AlwaysBreakTemplateDeclarations: true
AlwaysBreakBeforeMultilineStrings: false
BreakBeforeBinaryOperators: false
BreakBeforeTernaryOperators: false
BreakConstructorInitializers: BeforeComma
BinPackParameters: true
ColumnLimit: 90
ConstructorInitializerAllOnOneLineOrOnePerLine: true
DerivePointerBinding: false
PointerBindsToType: true
ExperimentalAutoDetectBinPacking: false
IndentCaseLabels: true
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 60
PenaltyBreakString: 1
PenaltyBreakFirstLessLess: 1000
PenaltyExcessCharacter: 1000
PenaltyReturnTypeOnItsOwnLine: 90
SpacesBeforeTrailingComments: 2
Cpp11BracedListStyle: false
Standard: Auto
IndentWidth: 2
TabWidth: 2
UseTab: Never
IndentFunctionDeclarationAfterType: false
SpacesInParentheses: false
SpacesInAngles: false
SpaceInEmptyParentheses: false
SpacesInCStyleCastParentheses: false
SpaceAfterControlStatementKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: Never
ContinuationIndentWidth: 4
SortIncludes: CaseSensitive
IncludeBlocks: Regroup
IncludeCategories:
  # Main header (same name as source file)
  - Regex:           '^"[^/]*\.h(pp)?"$'
    Priority:        1
  # BehaviorTree.CPP project headers
  - Regex:           '^"behaviortree_cpp/.*'
    Priority:        2
  # C++ standard library headers
  - Regex:           '^<[a-z_]+>$'
    Priority:        3
  # System headers with .h extension
  - Regex:           '^<.*\.h>'
    Priority:        4
IncludeIsMainRegex: '(_test)?$'
SpaceAfterCStyleCast: false
ReflowComments: false

# Configure each individual brace in BraceWrapping
BreakBeforeBraces: Custom

# Control of individual brace wrapping cases
BraceWrapping: {
    AfterClass: 'true',
    AfterControlStatement: 'true',
    AfterEnum : 'true',
    AfterFunction : 'true',
    AfterNamespace : 'true',
    AfterStruct : 'true',
    AfterUnion : 'true',
    BeforeCatch : 'true',
    BeforeElse : 'true',
    IndentBraces : 'false',
    SplitEmptyFunction: 'false'
}
...
