# This configuration should work with Clang-Format 6.0 and higher.
---
Language: Cpp
BasedOnStyle: LLVM

AllowShortFunctionsOnASingleLine: None
AlwaysBreakAfterReturnType: AllDefinitions
AlwaysBreakBeforeMultilineStrings: true
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
  AfterClass: true
  AfterFunction: true
  AfterStruct: true
  AfterUnion: true
  SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 2
ContinuationIndentWidth: 2
IncludeBlocks: Regroup
IncludeCategories:
  - Regex: '^"system.hpp"$'
    Priority: 1
  - Regex: '^"third_party/'
    Priority: 3
  - Regex: '^"'
    Priority: 2
  - Regex: '.*'
    Priority: 4
IndentPPDirectives: AfterHash
KeepEmptyLinesAtTheStartOfBlocks: false
PointerAlignment: Left
SpaceAfterTemplateKeyword: false
Standard: Cpp11
