mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-30 00:31:08 +00:00
ac5f5a92ed
Went with version >= 11.0 since it covers most of the major features and should be pretty universally accessibly. There are some issues: 1. indention of preprocessor directives: Unfortunately there doesn't appear to be a switch for a seperate 'IndentWidth' for preprocessor directives vs. normal code so we are stuck either not indenting the directives or over-indenting them. i.e: Desired: ``` #ifndef A # define B #endif ``` Options: ``` #ifndef A # define B /* Two spaces instead of one. */ #endif #ifndef C #define D /* No spaces. */ #endif ``` Chose to over-indent as it generally seems easier to script halving all pre-processor indentations than counting the nested depth and indenting from scratch. 2. concatenation of lines missing semi-colons: Throughout glibc there are macros used to setup aliasing that are outside of functions and don't end in semi-colons i.e: ``` libc_hidden_def (__pthread_self) weak_alias (__pthread_self, pthread_self) ``` clang-format reformats lines like these to: ``` libc_hidden_def (__pthread_self) weak_alias (__pthread_self, pthread_self) ``` which is generally undesirable. Other than those two big concerns there are certainly some questions diffs but for the most part it creates a easy to read and consistent style. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
157 lines
4.8 KiB
YAML
157 lines
4.8 KiB
YAML
# clang-format file for GLIBC
|
|
# Copyright (C) 2022 Free Software Foundation, Inc.
|
|
# This file is part of the GNU C Library.
|
|
#
|
|
# The GNU C Library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
#
|
|
# The GNU C Library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with the GNU C Library; if not, see
|
|
# <https://www.gnu.org/licenses/>.
|
|
#
|
|
# Requires clang-format version >= 11.0
|
|
#
|
|
# For more information, see:
|
|
#
|
|
# https://clang.llvm.org/docs/ClangFormat.html
|
|
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
|
#
|
|
# There are some known cases that this doesn't produce the desired
|
|
# style (i.e Preprocessor Directives are over-indented and not
|
|
# auto-commented). As a result, this is meant to be a utility to make
|
|
# formatting easier, not a definitive standard.
|
|
#
|
|
# To format the current git diff inplace (-i) the follow command can
|
|
# be used:
|
|
# $> git diff -U0 --no-color HEAD^ | clang-format-diff -i -p1
|
|
#
|
|
# To just view the diff clang-format would generate:
|
|
# $> git diff -U0 --no-color HEAD^ | clang-format-diff -p1
|
|
#
|
|
# NB: clang-format-diff, along with other clang-format related tools,
|
|
# can be found at: /path/to/llvm-project/clang/tools/clang-format/
|
|
#
|
|
#
|
|
# Based on autogenerated format from:
|
|
# $> clang-format --style=GNU -dump-config
|
|
---
|
|
AccessModifierOffset: -2
|
|
AlignAfterOpenBracket: Align
|
|
AlignConsecutiveMacros: false
|
|
AlignConsecutiveAssignments: false
|
|
AlignConsecutiveBitFields: false
|
|
AlignConsecutiveDeclarations: false
|
|
AlignEscapedNewlines: Right
|
|
AlignOperands: true
|
|
AlignTrailingComments: true
|
|
AllowAllArgumentsOnNextLine: true
|
|
AllowAllParametersOfDeclarationOnNextLine: true
|
|
AllowShortEnumsOnASingleLine: true
|
|
AllowShortBlocksOnASingleLine: false
|
|
AllowShortCaseLabelsOnASingleLine: false
|
|
AllowShortFunctionsOnASingleLine: All
|
|
AllowShortLambdasOnASingleLine: All
|
|
AllowShortIfStatementsOnASingleLine: Never
|
|
AllowShortLoopsOnASingleLine: false
|
|
AlwaysBreakAfterDefinitionReturnType: All
|
|
AlwaysBreakAfterReturnType: AllDefinitions
|
|
AlwaysBreakBeforeMultilineStrings: false
|
|
BinPackArguments: true
|
|
BinPackParameters: true
|
|
BraceWrapping:
|
|
AfterCaseLabel: true
|
|
AfterClass: true
|
|
AfterControlStatement: true
|
|
AfterEnum: true
|
|
AfterFunction: true
|
|
AfterNamespace: true
|
|
AfterStruct: true
|
|
AfterUnion: true
|
|
AfterExternBlock: true
|
|
BeforeCatch: true
|
|
BeforeElse: true
|
|
BeforeWhile: true
|
|
IndentBraces: true
|
|
SplitEmptyFunction: true
|
|
SplitEmptyRecord: true
|
|
SplitEmptyNamespace: true
|
|
BreakBeforeBinaryOperators: All
|
|
BreakBeforeBraces: GNU
|
|
BreakBeforeInheritanceComma: false
|
|
BreakInheritanceList: BeforeColon
|
|
BreakBeforeTernaryOperators: true
|
|
BreakStringLiterals: true
|
|
ColumnLimit: 79
|
|
CommentPragmas: '^ IWYU pragma:'
|
|
CompactNamespaces: false
|
|
ContinuationIndentWidth: 4
|
|
Cpp11BracedListStyle: false
|
|
DeriveLineEnding: true
|
|
DerivePointerAlignment: false
|
|
DisableFormat: false
|
|
ExperimentalAutoDetectBinPacking: false
|
|
FixNamespaceComments: false
|
|
IncludeBlocks: Preserve
|
|
IncludeCategories:
|
|
- Regex: '.*'
|
|
Priority: 1
|
|
IncludeIsMainRegex: '(Test)?$'
|
|
IndentCaseLabels: false
|
|
IndentCaseBlocks: false
|
|
IndentGotoLabels: true
|
|
IndentWidth: 2
|
|
IndentPPDirectives: AfterHash
|
|
IndentExternBlock: AfterExternBlock
|
|
IndentWrappedFunctionNames: false
|
|
InsertTrailingCommas: None
|
|
KeepEmptyLinesAtTheStartOfBlocks: true
|
|
MacroBlockBegin: ''
|
|
MacroBlockEnd: ''
|
|
MaxEmptyLinesToKeep: 1
|
|
NamespaceIndentation: None
|
|
PenaltyBreakAssignment: 2
|
|
PenaltyBreakBeforeFirstCallParameter: 19
|
|
PenaltyBreakComment: 300
|
|
PenaltyBreakFirstLessLess: 120
|
|
PenaltyBreakString: 1000
|
|
PenaltyExcessCharacter: 1000000
|
|
PenaltyReturnTypeOnItsOwnLine: 60
|
|
PointerAlignment: Right
|
|
ReflowComments: true
|
|
SortIncludes: false
|
|
SortUsingDeclarations: true
|
|
SpaceAfterCStyleCast: true
|
|
SpaceAfterLogicalNot: false
|
|
SpaceBeforeAssignmentOperators: true
|
|
SpaceBeforeCpp11BracedList: false
|
|
SpaceBeforeCtorInitializerColon: true
|
|
SpaceBeforeInheritanceColon: true
|
|
SpaceBeforeParens: Always
|
|
SpaceBeforeRangeBasedForLoopColon: true
|
|
SpaceInEmptyBlock: false
|
|
SpaceInEmptyParentheses: false
|
|
SpacesBeforeTrailingComments: 1
|
|
SpacesInAngles: false
|
|
SpacesInConditionalStatement: false
|
|
SpacesInContainerLiterals: true
|
|
SpacesInCStyleCastParentheses: false
|
|
SpacesInParentheses: false
|
|
SpacesInSquareBrackets: false
|
|
SpaceBeforeSquareBrackets: false
|
|
Standard: Cpp03
|
|
TabWidth: 8
|
|
UseTab: Always
|
|
ForEachMacros:
|
|
- 'FOR_EACH_IMPL'
|
|
- 'list_for_each'
|
|
- 'list_for_each_prev'
|
|
- 'list_for_each_prev_safe'
|
|
...
|