# 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: Always #FixNamespaceComments: false # See ShortNamespaces below IncludeBlocks: Regroup IncludeCategories: - Regex: '^<Qt.+/' Priority: 24 - Regex: '^<' Priority: 32 - Regex: '"csapi/' Priority: 2 - 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 ...