BasedOnStyle: WebKit
Language: Cpp
Standard: Cpp11

UseTab: Never
IndentWidth: 4
ColumnLimit: 120
PointerAlignment: Left

BreakBeforeBraces: Allman

AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: true
AllowShortLoopsOnASingleLine: false
AlwaysBreakTemplateDeclarations: true
AlignAfterOpenBracket: true
AlignOperands: true
AlignTrailingComments: true
BinPackArguments: false
BinPackParameters: false
BreakBeforeBinaryOperators: None
BreakConstructorInitializersBeforeComma: true
ConstructorInitializerAllOnOneLineOrOnePerLine: true
Cpp11BracedListStyle: true
IndentCaseLabels: true
KeepEmptyLinesAtTheStartOfBlocks: false
NamespaceIndentation: All
ForEachMacros: [TEST_CASE, SECTION]
PenaltyReturnTypeOnItsOwnLine: 1000
SpaceAfterTemplateKeyword: false
SpaceBeforeCpp11BracedList: false
UseCRLF: false

IncludeBlocks: Regroup
IncludeCategories:
  - Regex: '^(<vcpkg/base/system_headers\.h>|"pch\.h")$'
    Priority: -1
  - Regex: '^<catch2/catch\.hpp>$'
    Priority: 1
  - Regex: '^<vcpkg/base/*\.h>$'
    Priority: 2
  - Regex: '^<vcpkg/*\.h>$'
    Priority: 3
  - Regex: '^<[a-z0-9_]*\.h>$'
    Priority: 4
  - Regex: '^<[a-z0-9_]*>$' # C++ standard library
    Priority: 5
