[libc++] Find a clang-format everybody is happy with
authorNikolas Klauser <nikolasklauser@berlin.de>
Tue, 14 Jun 2022 18:09:03 +0000 (20:09 +0200)
committerNikolas Klauser <nikolasklauser@berlin.de>
Tue, 14 Jun 2022 18:12:33 +0000 (20:12 +0200)
We decided that we want to use clang-format for libc++ but we haven't decided yet how the code should be formatted. We should probably discuss things on discord. This PR is mostly to show how the clang-format would look like and to commit to one once we decided on it. I'll remove the `<string>` diff when I commit this PR.

Reviewed By: ldionne

Spies: EricWF, dschuff, krytarowski, fedor.sergeev, aheejin, mstorsjo, phosek, abrachet, libcxx-commits, arichardson

Differential Revision: https://reviews.llvm.org/D124789

libcxx/.clang-format

index 68f0d65..6dd752a 100644 (file)
@@ -1,5 +1,75 @@
 BasedOnStyle: LLVM
 
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: Consecutive
+AlignConsecutiveBitFields: Consecutive
+AlignEscapedNewlines: Right
+AlignOperands: AlignAfterOperator
+AlignTrailingComments: true
+AllowAllArgumentsOnNextLine: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortFunctionsOnASingleLine: true
+AllowShortLambdasOnASingleLine: All
+AttributeMacros: ['_LIBCPP_HIDE_FROM_ABI',
+                  '_LIBCPP_CONSTEXPR',
+                  '_LIBCPP_CONSTEXPR_AFTER_CXX11',
+                  '_LIBCPP_CONSTEXPR_AFTER_CXX14',
+                  '_LIBCPP_CONSTEXPR_AFTER_CXX17',
+                  '_LIBCPP_CONSTEXPR_AFTER_CXX20',
+                  '_LIBCPP_ALIGNOF',
+                  '_ALIGNAS_TYPE',
+                  '_ALIGNAS',
+                  '_LIBCPP_NORETURN',
+                  '_LIBCPP_ALWAYS_INLINE',
+                  '_LIBCPP_DISABLE_EXTENTSION_WARNING',
+                  '_LIBCPP_HIDDEN',
+                  '_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS',
+                  '_LIBCPP_FUNC_VIS',
+                  '_LIBCPP_TYPE_VIS',
+                  '_LIBCPP_TEMPLATE_VIS',
+                  '_LIBCPP_TEMPLATE_DATA_VIS',
+                  '_LIBCPP_EXPORTED_FROM_ABI',
+                  '_LIBCPP_OVERRIDABLE_FUNC_VIS',
+                  '_LIBCPP_EXCEPTION_ABI',
+                  '_LIBCPP_ENUM_VIS',
+                  '_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS',
+                  '_LIBCPP_INTERNAL_LINKAGE',
+                  '_LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION',
+                  '_LIBCPP_HIDE_FROM_ABI_AFTER_V1',
+                  '_LIBCPP_INLINE_VISIBILITY',
+                  '_LIBCPP_CONSTEVAL',
+                  '_LIBCPP_NOALIAS',
+                  '_LIBCPP_USING_IF_EXISTS',
+                  '_LIBCPP_DEPRECATED',
+                  '_LIBCPP_DEPRECATED_IN_CXX11',
+                  '_LIBCPP_DEPRECATED_IN_CXX14',
+                  '_LIBCPP_DEPRECATED_IN_CXX17',
+                  '_LIBCPP_DEPRECATED_IN_CXX20',
+                  '_LIBCPP_NODISCARD',
+                  '_LIBCPP_NODISCARD_EXT',
+                  '_LIBCPP_NO_DESTROY',
+                  '_LIBCPP_WEAK',
+                  '_LIBCPP_CONSTINIT',
+                  '_LIBCPP_FALLTHROUGH',
+                  '_LIBCPP_STANDALONE_DEBUG',
+                  '_LIBCPP_NO_UNIQUE_ADDRESS',
+                 ]
+BinPackArguments: false
+BinPackParameters: false
+BreakBeforeConceptDeclarations: true
+BreakInheritanceList: BeforeColon
+EmptyLineAfterAccessModifier: Never
+EmptyLineBeforeAccessModifier: Always
+IndentWrappedFunctionNames: false
+IndentRequires: true
+InsertTrailingCommas: Wrapped
+KeepEmptyLinesAtTheStartOfBlocks: false
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: Inner
+PackConstructorInitializers: NextLine
+
+PenaltyIndentedWhitespace: 61
+
 ---
 Language: Cpp
 Standard: c++20