aboutsummaryrefslogtreecommitdiff
path: root/.clang-format
diff options
context:
space:
mode:
Diffstat (limited to '.clang-format')
-rw-r--r--.clang-format182
1 files changed, 182 insertions, 0 deletions
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 00000000..d4a3d2cc
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,182 @@
+# SPDX-FileCopyrightText: 2019 Kitsune Ral <Kitsune-Ral@users.sf.net>
+# SPDX-FileCopyrightText: 2019 Marc Deop <marc@marcdeop.com>
+
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+# This is the clang-format configuration style to be used by libQuotient.
+# Inspired by:
+# https://code.qt.io/cgit/qt/qt5.git/plain/_clang-format
+# https://wiki.qt.io/Qt_Coding_Style
+# https://wiki.qt.io/Coding_Conventions
+# Further information: https://clang.llvm.org/docs/ClangFormatStyleOptions.html
+
+# For convenience, the file includes commented out settings that we assume
+# to borrow from the WebKit style. The values for such settings try to but
+# are not guaranteed to coincide with the latest version of the WebKit style.
+
+# This file assumes ClangFormat 12 or newer
+
+---
+Language: Cpp
+BasedOnStyle: WebKit
+#AccessModifierOffset: -4
+AlignAfterOpenBracket: Align
+#AlignArrayOfStructures: None # ClangFormat 13
+#AlignConsecutiveMacros: None
+#AlignConsecutiveAssignments: None
+#AlignConsecutiveDeclarations: None
+AlignEscapedNewlines: Left
+AlignOperands: Align
+#AlignTrailingComments: false
+#AllowAllArgumentsOnNextLine: true
+AllowAllConstructorInitializersOnNextLine: true
+#AllowAllParametersOfDeclarationOnNextLine: true
+#AllowShortEnumsOnASingleLine: true
+#AllowShortBlocksOnASingleLine: Empty
+AllowShortCaseLabelsOnASingleLine: true
+#AllowShortFunctionsOnASingleLine: All
+#AllowShortLambdasOnASingleLine: All
+#AllowShortIfStatementsOnASingleLine: Never
+#AllowShortLoopsOnASingleLine: false
+#AlwaysBreakAfterDefinitionReturnType: None # deprecated
+#AlwaysBreakAfterReturnType: None
+#AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: Yes
+#AttributeMacros:
+# - __capability
+#BinPackArguments: true
+#BinPackParameters: true
+BraceWrapping:
+# AfterCaseLabel: false
+# AfterClass: false
+ AfterControlStatement: Never # Switch to MultiLine with ClangFormat 14 (https://bugs.llvm.org/show_bug.cgi?id=47936)
+# AfterEnum: false
+ AfterFunction: true
+# AfterNamespace: false
+# AfterStruct: false
+# AfterUnion: false
+# AfterExternBlock: false
+# BeforeCatch: false
+# BeforeElse: false
+# BeforeLambdaBody: false # Blows up lambdas vertically, even if they become _very_ readable
+# BeforeWhile: false
+# IndentBraces: false
+ SplitEmptyFunction: false
+ SplitEmptyRecord: false
+ SplitEmptyNamespace: false
+BreakBeforeBinaryOperators: NonAssignment
+#BreakBeforeConceptDeclarations: true
+BreakBeforeBraces: Custom
+#BreakBeforeInheritanceComma: false # deprecated?
+#BreakInheritanceList: BeforeColon
+#BreakBeforeTernaryOperators: true
+#BreakConstructorInitializersBeforeComma: false # deprecated?
+#BreakConstructorInitializers: BeforeComma
+#BreakStringLiterals: true
+ColumnLimit: 80
+#QualifierAlignment: Leave # ClangFormat 14?
+#CompactNamespaces: false
+ConstructorInitializerAllOnOneLineOrOnePerLine: true
+#ConstructorInitializerIndentWidth: 4
+#ContinuationIndentWidth: 4
+#Cpp11BracedListStyle: true
+#DeriveLineEnding: true
+#DerivePointerAlignment: false
+#EmptyLineAfterAccessModifier: Never # ClangFormat 14
+EmptyLineBeforeAccessModifier: LogicalBlock
+#FixNamespaceComments: false # See ShortNamespaces below
+IncludeBlocks: Regroup
+IncludeCategories:
+ - Regex: '^<Qt.+/'
+ Priority: 24
+ - Regex: '^<'
+ Priority: 32
+ - Regex: '"csapi/'
+ Priority: 2
+ - Regex: '"e2ee/'
+ Priority: 3
+ - Regex: '"(events|jobs)/'
+ Priority: 4
+ - Regex: '.*'
+ Priority: 1
+IncludeIsMainRegex: '(_test)?$'
+#IncludeIsMainSourceRegex: ''
+#IndentAccessModifiers: false # ClangFormat 13
+#IndentCaseLabels: false
+#IndentCaseBlocks: false
+IndentGotoLabels: false
+IndentPPDirectives: AfterHash
+#IndentExternBlock: AfterExternBlock
+IndentRequires: true
+#IndentWidth: 4
+#IndentWrappedFunctionNames: false
+KeepEmptyLinesAtTheStartOfBlocks: false
+#LambdaBodyIndentation: Signature # ClangFormat 13
+#MacroBlockBegin: ''
+#MacroBlockEnd: ''
+#MaxEmptyLinesToKeep: 1
+#NamespaceIndentation: Inner
+PenaltyBreakAssignment: 10
+PenaltyBreakBeforeFirstCallParameter: 70
+PenaltyBreakComment: 45
+#PenaltyBreakFirstLessLess: 120
+#PenaltyBreakOpenParenthesis: 0 # ClangFormat 14
+PenaltyBreakString: 200
+#PenaltyBreakTemplateDeclaration: 10
+PenaltyExcessCharacter: 40
+PenaltyReturnTypeOnItsOwnLine: 200
+#PenaltyIndentedWhitespace: 0
+#PointerAlignment: Left
+#PPIndentWidth: -1
+#ReferenceAlignment: Pointer # ClangFormat 13
+#ReflowComments: true
+#ShortNamespaceLines: 1 # ClangFormat 13 - to use with FixNamespaceComments
+#SortIncludes: true
+#SortUsingDeclarations: true
+#SpaceAfterCStyleCast: false
+#SpaceAfterLogicalNot: false
+#SpaceAfterTemplateKeyword: true
+#SpaceBeforeAssignmentOperators: true
+#SpaceBeforeCaseColon: false
+SpaceBeforeCpp11BracedList: false
+#SpaceBeforeCtorInitializerColon: true
+#SpaceBeforeInheritanceColon: true
+#SpaceBeforeParens: ControlStatements
+#SpaceBeforeParensOptions: # ClangFormat 14
+# AfterControlStatements: true
+# AfterForeachMacros: true
+# AfterFunctionDefinitionName: false
+# AfterFunctionDeclarationName: false
+# AfterIfMacros: true
+# AfterOverloadedOperator: false
+# BeforeNonEmptyParentheses: false
+SpaceAroundPointerQualifiers: After
+#SpaceBeforeRangeBasedForLoopColon: true
+SpaceInEmptyBlock: false
+#SpaceInEmptyParentheses: false
+#SpacesBeforeTrailingComments: 1
+#SpacesInAngles: false # 'Never' since ClangFormat 13
+#SpacesInConditionalStatement: false
+SpacesInContainerLiterals: false
+#SpacesInCStyleCastParentheses: false
+#SpacesInLineCommentPrefix: # ClangFormat 13
+# Minimum: 1
+# Maximum: -1
+#SpacesInParentheses: false
+#SpacesInSquareBrackets: false
+#SpaceBeforeSquareBrackets: false
+#BitFieldColonSpacing: Both
+Standard: c++20
+StatementAttributeLikeMacros:
+ - Q_EMIT
+ - emit
+StatementMacros:
+ - Q_UNUSED
+ - QT_REQUIRE_VERSION
+ - DEFINE_EVENT_TYPEID
+TabWidth: 4
+#UseCRLF: false
+#UseTab: Never
+#WhitespaceSensitiveMacros: [] # Whatever's the default, not using it
+...
+