---
#
# Note: This has custom commands that must be used with clang-format-custom.exe in shared\metafmt\tools
#			Built from https://gitlab.ct.activision.com/llvm/llvm-project
#
Language:        Cpp
# BasedOnStyle:  WebKit
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlinesLeft: true
AlignConsecutiveBitFields : true
AlignOperands:   false
AlignTrailingComments: true
AlignConsecutiveMacros: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: InlineOnly
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
AllowShortLambdasOnASingleLine: Inline
Cpp11BracedListStyle : false
BinPackArguments: false
BinPackParameters: false
BraceWrapping:   
  AfterClass:      true
  AfterControlStatement: true
  AfterEnum:       true
  AfterFunction:   true
  AfterNamespace:  true
  AfterObjCDeclaration: true
  AfterStruct:     true
  AfterUnion:      true
  BeforeCatch:     true
  BeforeElse:      true
  IndentBraces:    false
  BeforeLambdaBody: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: false
BreakConstructorInitializers: BeforeColon
ColumnLimit:     0
CommentPragmas:  '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
DerivePointerAlignment: false
DisableFormat:   false
ExperimentalAutoDetectBinPacking: false
ForEachMacros:   [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeCategories: 
  - Regex:           '^"(llvm|llvm-c|clang|clang-c)/'
    Priority:        2
  - Regex:           '^(<|"(gtest|isl|json)/)'
    Priority:        3
  - Regex:           '.*'
    Priority:        1
IndentCaseLabels: false
IndentWidth:     4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: true
MaxEmptyLinesToKeep: 2
NamespaceIndentation: None
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 100000
PenaltyBreakComment: 201
PenaltyBreakFirstLessLess: 50
PenaltyBreakString: 500
PenaltyExcessCharacter: 10
PenaltyReturnTypeOnItsOwnLine: 5000
PointerAlignment: Right
ReflowComments:  false
SortIncludes:    false
SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles:  false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: true
SpacesInSquareBrackets: false
SpacesInCStyleCastParentheses: false
Standard:        Cpp11
TabWidth:        4
UseTab:          Always
SortUsingDeclarations: false
# Macros used by the game
WhitespaceSensitiveMacros: [ MSC_DISABLE_WARNING_PRE, CLANG_DISABLE_WARNING_PRE]
StatementMacros: [
DvarBool, DvarInt, DvarInt64, DvarUInt64, DvarFloat, DvarVec2, DvarVec3, DvarVec4, DvarString, DvarColor, DvarEnum,
DconstBool, DconstInt, DconstInt64, DconstUInt64, DconstFloat, DconstVec2, DconstVec3, DconstVec4, DconstString, DconstColor, DconstEnum, 
DconstMPBool, DconstMPInt, DconstMPInt64, DconstMPUInt64, DconstMPFloat, DconstMPVec2, DconstMPVec3, DconstMPVec4, DconstMPString, DconstMPColor, DconstMPEnum, 
DconstMPSPBool, DconstMPSPInt, DconstMPSPInt64, DconstMPSPUInt64, DconstMPSPFloat, DconstMPSPEnum, DconstMPSPString, 
DconstModeFloat, DconstModeBool,
BUILTIN_FUNC, BUILTIN_METH, BUILTIN_FUNC_DEV, BUILTIN_METH_DEV, BUILTIN_CLIENT_FUNC, BUILTIN_CLIENT_METH, BUILTIN_CLIENT_FUNC_DEV, BUILTIN_CLIENT_METH_DEV, AISCR_BUILTIN_METH,
COLOR_TARGET, COLOR_TARGET_TEMPORAL, COLOR_TARGET_TEMPORAL_SALTED, COLOR_TARGET_MIP_SALTED, COLOR_TARGET_SALTED, COLOR_TARGET_CREATE, COLOR_TARGET_CREATE_CLEAR, COLOR_TARGET_CREATE_TEMPORAL, COLOR_TARGET_CREATE_PERSISTENT, 
DEPTH_TARGET, DEPTH_TARGET_SALTED, DEPTH_TARGET_SLICE, DEPTH_TARGET_SLICE_SALTED, DEPTH_TARGET_READ, DEPTH_TARGET_READ_SALTED, DEPTH_TARGET_READ_SLICE, 
DEPTH_TARGET_CREATE, DEPTH_TARGET_CREATE_CLEAR, DEPTH_TARGET_CREATE_ACCESS, DEPTH_TARGET_CREATE_PERSISTENT, 
VARIABLE_RATE_SHADING_MASK_READ, 
TEXTURE_REFERENCE, 
TEXTURE_READ, TEXTURE_READ_SALTED, TEXTURE_READ_SALTED_ACCESS, TEXTURE_READ_MIP, TEXTURE_READ_MIP_ACCESS, TEXTURE_READ_SLICE, TEXTURE_READ_SLICE_ACCESS, TEXTURE_READ_ACCESS, TEXTURE_READ_TEMPORAL, 
TEXTURE_READ_WRITE, TEXTURE_READ_WRITE_TEMPORAL, TEXTURE_READ_WRITE_SALTED, TEXTURE_READ_WRITE_MIP_SALTED, TEXTURE_READ_WRITE_SALTED_ACCESS, TEXTURE_READ_WRITE_TEMPORAL_SALTED, 
TEXTURE_CREATE, TEXTURE_CREATE_INTERNAL_READ_STATE, TEXTURE_CREATE_INTERNAL_WRITE_STATE, TEXTURE_CREATE_PERSISTENT, TEXTURE_CREATE_TEMPORAL, 
BUFFER_READ, BUFFER_READ_SEGMENT, BUFFER_READ_ACCESS_SEGMENT, BUFFER_READ_TEMPORAL, BUFFER_READ_ACCESS, BUFFER_READ_SEGMENT_ACCESS, 
BUFFER_READ_TEMPORAL, 
BUFFER_READ_WRITE, BUFFER_READ_WRITE_SEGMENT, BUFFER_READ_WRITE_TEMPORAL, BUFFER_READ_WRITE_ACCESS, BUFFER_READ_WRITE_SALTED, BUFFER_READ_WRITE_SALTED_ACCESS, 
BUFFER_CREATE, BUFFER_CREATE_PERSISTENT, BUFFER_CREATE_TEMPORAL, 
CUSTOM_CREATE, CUSTOM_READ, 
TG_ORDER_HINT, TG_DATA, TG_GPU_TIMER, TG_FLAGS, TG_CONDITION, TG_CONDITION_LIGHT, TG_EXTERNAL_WRITE, TG_ASYNC
]
MacroBlockBegin: 'BEGIN_TASK[A-Z_]*|BEGIN_[A-Z]+_TASK[A-Z_]*|BUILTIN_FUNC_TABLE_BEGIN|BUILTIN_FUNC_TABLE_BEGIN_EMPTY|BUILTIN_METH_TABLE_BEGIN|BUILTIN_METH_TABLE_BEGIN_EMPTY'
MacroBlockEnd: 'END_TASK|BUILTIN_FUNC_TABLE_END|BUILTIN_FUNC_TABLE_END_EMPTY|BUILTIN_METH_TABLE_END|BUILTIN_METH_TABLE_END_EMPTY'
# Custom options, only supported in clang-format-custom
BreakTrailingBrace: true
StopAlignConsecutiveFunctionDefinitions: false
StopAlignConsecutiveVariableAssignments: false
StopAlignTrailingIfdefComments: true
FixCommentEscapingAfterIfdef: true
FixIncludeSlashes: false
EmptyLinesBetweenFunctions: 2
FixIfdefComments: true
FixIfBraces: true
AllowStatementMacroTrailingComma: true
LineBreakColumn: 275
MaxFormatPasses: 10
