BasedOnStyle: Google
Language: Cpp
Standard: c++17
UseTab: Never
DerivePointerAlignment: false
PointerAlignment: Left
ColumnLimit: 120

AllowShortLambdasOnASingleLine: None
AllowShortFunctionsOnASingleLine: None
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: true # if false then enums would be formatted as Allman braces style
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowAllArgumentsOnNextLine: false
LambdaBodyIndentation: Signature
BraceWrapping:
  BeforeLambdaBody: true
AlignEscapedNewlines: Right
ContinuationIndentWidth: 2
ConstructorInitializerIndentWidth: 2
AlignAfterOpenBracket: Align # TODO(MBkkt) Try BlockIndent clang-format 15

IncludeCategories:
  - Regex: '^".*"$'              # relative includes
    Priority: 10
  - Regex: '^<yaclib\/.*>$'      # our library public includes
    Priority: 30
  - Regex: '^<[[:alpha:]_\/]+>$' # STL
    Priority: 40
  - Regex: '^<.*\.hpp>$'         # our library private includes
    Priority: 20
  - Regex: '.*'                  # other libraries (system headers in our case)
    Priority: 50
IncludeBlocks: Regroup
IndentPPDirectives: AfterHash
