1# clang-format file for GLIBC 2# Copyright (C) 2022 Free Software Foundation, Inc. 3# This file is part of the GNU C Library. 4# 5# The GNU C Library is free software; you can redistribute it and/or 6# modify it under the terms of the GNU Lesser General Public 7# License as published by the Free Software Foundation; either 8# version 2.1 of the License, or (at your option) any later version. 9# 10# The GNU C Library is distributed in the hope that it will be useful, 11# but WITHOUT ANY WARRANTY; without even the implied warranty of 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13# Lesser General Public License for more details. 14# 15# You should have received a copy of the GNU Lesser General Public 16# License along with the GNU C Library; if not, see 17# <https://www.gnu.org/licenses/>. 18# 19# Requires clang-format version >= 11.0 20# 21# For more information, see: 22# 23# https://clang.llvm.org/docs/ClangFormat.html 24# https://clang.llvm.org/docs/ClangFormatStyleOptions.html 25# 26# There are some known cases that this doesn't produce the desired 27# style (i.e Preprocessor Directives are over-indented and not 28# auto-commented). As a result, this is meant to be a utility to make 29# formatting easier, not a definitive standard. 30# 31# To format the current git diff inplace (-i) the follow command can 32# be used: 33# $> git diff -U0 --no-color HEAD^ | clang-format-diff -i -p1 34# 35# To just view the diff clang-format would generate: 36# $> git diff -U0 --no-color HEAD^ | clang-format-diff -p1 37# 38# NB: clang-format-diff, along with other clang-format related tools, 39# can be found at: /path/to/llvm-project/clang/tools/clang-format/ 40# 41# 42# Based on autogenerated format from: 43# $> clang-format --style=GNU -dump-config 44--- 45AccessModifierOffset: -2 46AlignAfterOpenBracket: Align 47AlignConsecutiveMacros: false 48AlignConsecutiveAssignments: false 49AlignConsecutiveBitFields: false 50AlignConsecutiveDeclarations: false 51AlignEscapedNewlines: Right 52AlignOperands: true 53AlignTrailingComments: true 54AllowAllArgumentsOnNextLine: true 55AllowAllParametersOfDeclarationOnNextLine: true 56AllowShortEnumsOnASingleLine: true 57AllowShortBlocksOnASingleLine: false 58AllowShortCaseLabelsOnASingleLine: false 59AllowShortFunctionsOnASingleLine: All 60AllowShortLambdasOnASingleLine: All 61AllowShortIfStatementsOnASingleLine: Never 62AllowShortLoopsOnASingleLine: false 63AlwaysBreakAfterDefinitionReturnType: All 64AlwaysBreakAfterReturnType: AllDefinitions 65AlwaysBreakBeforeMultilineStrings: false 66BinPackArguments: true 67BinPackParameters: true 68BraceWrapping: 69 AfterCaseLabel: true 70 AfterClass: true 71 AfterControlStatement: true 72 AfterEnum: true 73 AfterFunction: true 74 AfterNamespace: true 75 AfterStruct: true 76 AfterUnion: true 77 AfterExternBlock: true 78 BeforeCatch: true 79 BeforeElse: true 80 BeforeWhile: true 81 IndentBraces: true 82 SplitEmptyFunction: true 83 SplitEmptyRecord: true 84 SplitEmptyNamespace: true 85BreakBeforeBinaryOperators: All 86BreakBeforeBraces: GNU 87BreakBeforeInheritanceComma: false 88BreakInheritanceList: BeforeColon 89BreakBeforeTernaryOperators: true 90BreakStringLiterals: true 91ColumnLimit: 79 92CommentPragmas: '^ IWYU pragma:' 93CompactNamespaces: false 94ContinuationIndentWidth: 4 95Cpp11BracedListStyle: false 96DeriveLineEnding: true 97DerivePointerAlignment: false 98DisableFormat: false 99ExperimentalAutoDetectBinPacking: false 100FixNamespaceComments: false 101IncludeBlocks: Preserve 102IncludeCategories: 103 - Regex: '.*' 104 Priority: 1 105IncludeIsMainRegex: '(Test)?$' 106IndentCaseLabels: false 107IndentCaseBlocks: false 108IndentGotoLabels: true 109IndentWidth: 2 110IndentPPDirectives: AfterHash 111IndentExternBlock: AfterExternBlock 112IndentWrappedFunctionNames: false 113InsertTrailingCommas: None 114KeepEmptyLinesAtTheStartOfBlocks: true 115MacroBlockBegin: '' 116MacroBlockEnd: '' 117MaxEmptyLinesToKeep: 1 118NamespaceIndentation: None 119PenaltyBreakAssignment: 2 120PenaltyBreakBeforeFirstCallParameter: 19 121PenaltyBreakComment: 300 122PenaltyBreakFirstLessLess: 120 123PenaltyBreakString: 1000 124PenaltyExcessCharacter: 1000000 125PenaltyReturnTypeOnItsOwnLine: 60 126PointerAlignment: Right 127ReflowComments: true 128SortIncludes: false 129SortUsingDeclarations: true 130SpaceAfterCStyleCast: true 131SpaceAfterLogicalNot: false 132SpaceBeforeAssignmentOperators: true 133SpaceBeforeCpp11BracedList: false 134SpaceBeforeCtorInitializerColon: true 135SpaceBeforeInheritanceColon: true 136SpaceBeforeParens: Always 137SpaceBeforeRangeBasedForLoopColon: true 138SpaceInEmptyBlock: false 139SpaceInEmptyParentheses: false 140SpacesBeforeTrailingComments: 1 141SpacesInAngles: false 142SpacesInConditionalStatement: false 143SpacesInContainerLiterals: true 144SpacesInCStyleCastParentheses: false 145SpacesInParentheses: false 146SpacesInSquareBrackets: false 147SpaceBeforeSquareBrackets: false 148Standard: Cpp03 149TabWidth: 8 150UseTab: Always 151ForEachMacros: 152 - 'FOR_EACH_IMPL' 153 - 'list_for_each' 154 - 'list_for_each_prev' 155 - 'list_for_each_prev_safe' 156... 157