# clang-format is fairly limited, and these rules are approximate: # - array initializers can get terribly mangled with clang-format 12.0, # - sometimes it still aligns with space characters, # - struct name NL { NL ... NL } NL name; is unachievable. BasedOnStyle: GNU ColumnLimit: 80 IndentWidth: 4 TabWidth: 4 UseTab: ForContinuationAndIndentation BreakBeforeBraces: Allman SpaceAfterCStyleCast: true AlignConsecutiveAssignments: true AlignAfterOpenBracket: DontAlign AlignEscapedNewlines: DontAlign AlignOperands: DontAlign AlignConsecutiveMacros: Consecutive AllowAllArgumentsOnNextLine: false AllowAllParametersOfDeclarationOnNextLine: false IndentGotoLabels: false Cpp11BracedListStyle: true MaxEmptyLinesToKeep: 2 # IncludeCategories has some potential, but currently it breaks build. # Note that the documentation says the value should be "Never". SortIncludes: false # Must be kept synchronized with gi18n.h and make-template.sh. WhitespaceSensitiveMacros: ['_', 'Q_', 'N_', 'C_', 'NC_'] # This is a compromise, it generally works out aesthetically better. BinPackArguments: false # Unfortunately, this doesn't work for block comments, used in logdiag. SpacesBeforeTrailingComments: 2 # logdiag-specific function body wrappers. MacroBlockBegin: "LD_LUA_CAIRO_BEGIN" MacroBlockEnd: "LD_LUA_CAIRO_END"