---
Language:        Cpp
# BasedOnStyle:  LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands:   true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
# AlwaysBreakAfterDefinitionReturnType: None # option is deprecated
AlwaysBreakAfterReturnType: AllDefinitions
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
BinPackArguments: false
BinPackParameters: true
BraceWrapping:
  AfterCaseLabel: true
  AfterClass:      true
  AfterControlStatement: true
  AfterEnum:       true
  AfterFunction:   true
  AfterNamespace:  true
  AfterObjCDeclaration: true
  AfterStruct:     true
  AfterUnion:      true
  AfterExternBlock: true
  BeforeCatch:     true
  BeforeElse:      true
  IndentBraces:    false
  SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false # N/A C++
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false # N/A Java
BreakStringLiterals: true
ColumnLimit:     100
CommentPragmas:  '^ TS Pragma:' #For future proofing
CompactNamespaces: false # N/A c++
ConstructorInitializerAllOnOneLineOrOnePerLine: false # N/A C++
ConstructorInitializerIndentWidth: 40 # N/A C++
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false # see catalog.c array struct assigns for an example
DerivePointerAlignment: false # always use Right
DisableFormat:   false # haha
# ExperimentalAutoDetectBinPacking: false #the docs say not to have this in config file
FixNamespaceComments: true # N/A C++
ForEachMacros:
  - foreach
  - forboth
  - for_each_cell
  - for_both_cell
  - forthree
IncludeBlocks:   Preserve # separate include blocks will not be merged
IncludeCategories: # we want to ensure c.h and postgres.h appear first
  - Regex:            '^<(string|unistd)\.h>'
    Priority:        -2
  - Regex:            '^<postgres\.h>'
    Priority:        -1
  - Regex:            '^(<|")compat/compat\.h'
    Priority:        -2
  - Regex:            '^"compat/compat-msvc-enter\.h'
    Priority:        -1 
  - Regex:            '^"compat/compat-msvc-exit\.h'
    Priority:         2000000000
  - Regex:            '.*'
    Priority:         1
IncludeIsMainRegex: '' # filename_<suffix> will be seen as the primary include
IndentCaseLabels: true
IndentPPDirectives: None # do not indent preprocessor directives after the '#'
IndentWidth:     4
IndentWrappedFunctionNames: false # we do not indent the function name in the declaration
JavaScriptQuotes: Double # N/A js
JavaScriptWrapImports: true # N/A js
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: '' # regex of macros that behave like '{'
MacroBlockEnd:   '' # regex of macros that behave like '}'
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None # N/A c++
ObjCBinPackProtocolList: Auto # N/A objC
ObjCBlockIndentWidth: 2 # N/A objC
ObjCSpaceAfterProperty: false # N/A objC
ObjCSpaceBeforeProtocolList: true # N/A objC
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 10000
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right # as in char *foo;
ReflowComments:  true # break up long comments into multiple lines
SortIncludes: CaseInsensitive # sort includes
SortUsingDeclarations: false # N/A c++
SpaceAfterCStyleCast: true
SpaceAfterTemplateKeyword: false # N/A c++
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true # N/A c++
SpaceBeforeInheritanceColon: false # N/A c++
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true # N/A C++
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles:  false # N/A c++
SpacesInContainerLiterals: true # N/A c++
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard:        Cpp11
TabWidth:        4
UseTab:          Always
...
