---
Language: Cpp
BasedOnStyle: LLVM
Standard: Latest

ColumnLimit: 119
IndentWidth: 4
TabWidth: 4
UseTab: Never
ContinuationIndentWidth: 4
ConstructorInitializerIndentWidth: 4
AccessModifierOffset: -4
NamespaceIndentation: None

PointerAlignment: Left
ReferenceAlignment: Pointer
DerivePointerAlignment: false

BreakBeforeBraces: Allman
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AllowShortLambdasOnASingleLine: All
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: false
AlwaysBreakTemplateDeclarations: Yes

AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: None
AlignConsecutiveDeclarations: None
AlignTrailingComments: true
AlignEscapedNewlines: Left
AlignOperands: Align

BinPackArguments: false
BinPackParameters: false
BreakConstructorInitializers: BeforeColon
PackConstructorInitializers: Never
ConstructorInitializerAllOnOneLineOrOnePerLine: false

EmptyLineBeforeAccessModifier: LogicalBlock
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 2

SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false

IndentCaseLabels: true
IndentPPDirectives: AfterHash
SortIncludes: CaseSensitive
IncludeBlocks: Regroup
IncludeCategories:
  # Project headers first.
  - Regex:    '^"cheshm/'
    Priority: 1
  - Regex:    '^"'
    Priority: 2
  # Standard C / C++ system headers.
  - Regex:    '^<.*\.h>'
    Priority: 3
  - Regex:    '^<.*>'
    Priority: 4

FixNamespaceComments: true
ShortNamespaceLines: 0
ReflowComments: true
