xref: /llvm-project/libcxx/.clang-format (revision 90bc60c5a82a596327ddc6956436abf146b44a7a)
1BasedOnStyle: LLVM
2# Note that we don't specify the language in this file because some files are
3# detected as Cpp, but others are detected as ObjC and we want this formatting
4# to apply to all types of files.
5
6AlignAfterOpenBracket: Align
7AlignConsecutiveAssignments: Consecutive
8AlignConsecutiveBitFields: Consecutive
9AlignEscapedNewlines: Right
10AlignOperands: AlignAfterOperator
11AlignTrailingComments: true
12AllowAllArgumentsOnNextLine: true
13AllowAllParametersOfDeclarationOnNextLine: true
14AllowShortFunctionsOnASingleLine: true
15AllowShortLambdasOnASingleLine: All
16AttributeMacros: [
17                  '_ALIGNAS_TYPE',
18                  '_ALIGNAS',
19                  '_LIBCPP_ALIGNOF',
20                  '_LIBCPP_ALWAYS_INLINE',
21                  '_LIBCPP_CONSTEXPR_SINCE_CXX14',
22                  '_LIBCPP_CONSTEXPR_SINCE_CXX17',
23                  '_LIBCPP_CONSTEXPR_SINCE_CXX20',
24                  '_LIBCPP_CONSTEXPR_SINCE_CXX23',
25                  '_LIBCPP_CONSTEXPR',
26                  '_LIBCPP_CONSTINIT',
27                  '_LIBCPP_DEPRECATED_IN_CXX11',
28                  '_LIBCPP_DEPRECATED_IN_CXX14',
29                  '_LIBCPP_DEPRECATED_IN_CXX17',
30                  '_LIBCPP_DEPRECATED_IN_CXX20',
31                  '_LIBCPP_DEPRECATED_IN_CXX23',
32                  '_LIBCPP_DEPRECATED',
33                  '_LIBCPP_DISABLE_EXTENSION_WARNING',
34                  '_LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION',
35                  '_LIBCPP_EXPORTED_FROM_ABI',
36                  '_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS',
37                  '_LIBCPP_FALLTHROUGH',
38                  '_LIBCPP_HIDDEN',
39                  '_LIBCPP_HIDE_FROM_ABI_AFTER_V1',
40                  '_LIBCPP_HIDE_FROM_ABI',
41                  '_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS',
42                  '_LIBCPP_NO_SANITIZE',
43                  '_LIBCPP_NO_UNIQUE_ADDRESS',
44                  '_LIBCPP_NOALIAS',
45                  '_LIBCPP_OVERRIDABLE_FUNC_VIS',
46                  '_LIBCPP_STANDALONE_DEBUG',
47                  '_LIBCPP_TEMPLATE_DATA_VIS',
48                  '_LIBCPP_TEMPLATE_VIS',
49                  '_LIBCPP_THREAD_SAFETY_ANNOTATION',
50                  '_LIBCPP_USING_IF_EXISTS',
51                  '_LIBCPP_WEAK',
52                 ]
53BinPackArguments: false
54BinPackParameters: false
55BreakBeforeConceptDeclarations: true
56BreakInheritanceList: BeforeColon
57EmptyLineAfterAccessModifier: Never
58EmptyLineBeforeAccessModifier: Always
59IndentWrappedFunctionNames: false
60IndentRequires: true
61InsertTrailingCommas: Wrapped
62KeepEmptyLinesAtTheStartOfBlocks: false
63MaxEmptyLinesToKeep: 1
64PackConstructorInitializers: NextLine
65
66PenaltyIndentedWhitespace: 2
67
68Standard: c++20
69SpacesInAngles: Leave
70
71AlwaysBreakTemplateDeclarations: true
72PointerAlignment: Left
73
74
75# libc++'s preferred indentions of preprocessor statements.
76IndentPPDirectives: AfterHash
77
78# libc++ has some long names so we need more than the 80 column limit imposed by LLVM style, for sensible formatting
79ColumnLimit: 120
80