| # SPDX-License-Identifier: GPL-2.0-only |
| # |
| # clang-format configuration file. Intended for clang-format >= 7. |
| # |
| # For more information, see: |
| # |
| # Documentation/process/clang-format.rst |
| # https://clang.llvm.org/docs/ClangFormat.html |
| # https://clang.llvm.org/docs/ClangFormatStyleOptions.html |
| # |
| --- |
| Language: Cpp |
| AccessModifierOffset: -8 |
| AlignAfterOpenBracket: Align |
| AlignConsecutiveAssignments: false |
| AlignConsecutiveDeclarations: false |
| AlignEscapedNewlines: Right |
| AlignOperands: true |
| AlignTrailingComments: false |
| AllowAllParametersOfDeclarationOnNextLine: false |
| AllowShortBlocksOnASingleLine: false |
| AllowShortCaseLabelsOnASingleLine: false |
| AllowShortFunctionsOnASingleLine: InlineOnly |
| AllowShortIfStatementsOnASingleLine: false |
| AllowShortLoopsOnASingleLine: false |
| AlwaysBreakAfterDefinitionReturnType: None |
| AlwaysBreakAfterReturnType: None |
| AlwaysBreakBeforeMultilineStrings: false |
| AlwaysBreakTemplateDeclarations: MultiLine |
| BinPackArguments: true |
| BinPackParameters: true |
| BraceWrapping: |
| AfterClass: true |
| AfterControlStatement: false |
| AfterEnum: false |
| AfterFunction: true |
| AfterNamespace: false |
| AfterObjCDeclaration: false |
| AfterStruct: false |
| AfterUnion: false |
| AfterExternBlock: false |
| BeforeCatch: false |
| BeforeElse: false |
| IndentBraces: false |
| SplitEmptyFunction: true |
| SplitEmptyRecord: true |
| SplitEmptyNamespace: true |
| BreakBeforeBinaryOperators: None |
| BreakBeforeBraces: Custom |
| BreakBeforeInheritanceComma: false |
| BreakInheritanceList: BeforeColon |
| BreakBeforeTernaryOperators: true |
| BreakConstructorInitializers: BeforeColon |
| BreakAfterJavaFieldAnnotations: false |
| BreakStringLiterals: false |
| ColumnLimit: 0 |
| CommentPragmas: '^ IWYU pragma:' |
| CompactNamespaces: false |
| ConstructorInitializerAllOnOneLineOrOnePerLine: false |
| ConstructorInitializerIndentWidth: 8 |
| ContinuationIndentWidth: 8 |
| Cpp11BracedListStyle: false |
| DerivePointerAlignment: false |
| DisableFormat: false |
| ExperimentalAutoDetectBinPacking: false |
| FixNamespaceComments: true |
| ForEachMacros: |
| - 'udev_list_entry_foreach' |
| SortIncludes: true |
| IncludeBlocks: Regroup |
| IncludeCategories: |
| # Headers matching the name of the component are matched automatically. |
| # Priority 1 |
| # Other library headers (explicit overrides to match before system headers) |
| - Regex: '(<jpeglib.h>|<libudev.h>|<tiffio.h>|<xf86drm.h>|<xf86drmMode.h>|<yaml.h>)' |
| Priority: 9 |
| # Qt includes (match before C++ standard library) |
| - Regex: '<Q([A-Za-z0-9\-_])+>' |
| Priority: 9 |
| CaseSensitive: true |
| # Headers in <> with an extension. (+system libraries) |
| - Regex: '<([A-Za-z0-9\-_])+\.h>' |
| Priority: 2 |
| # System headers |
| - Regex: '<sys/.*>' |
| Priority: 2 |
| # C++ standard library includes (no extension) |
| - Regex: '<([A-Za-z0-9\-_/])+>' |
| Priority: 2 |
| # Linux headers, as a second group/subset of system headers |
| - Regex: '<linux/.*>' |
| Priority: 3 |
| # Headers for libcamera Base support |
| - Regex: '<libcamera/base/private.h>' |
| Priority: 4 |
| - Regex: '<libcamera/base/.*\.h>' |
| Priority: 5 |
| # Public API Headers for libcamera, which are not in a subdir (i.e. ipa/,internal/) |
| - Regex: '<libcamera/([A-Za-z0-9\-_])+.h>' |
| Priority: 6 |
| # IPA Interfaces |
| - Regex: '<libcamera/ipa/.*\.h>' |
| Priority: 7 |
| # libcamera Internal headers in "" |
| - Regex: '"libcamera/internal/.*\.h"' |
| Priority: 8 |
| # Other libraries headers with one group per library (.h or .hpp) |
| - Regex: '<.*/.*\.hp*>' |
| Priority: 9 |
| # local modular includes "path/file.h" (.h or .hpp) |
| - Regex: '"(.*/)+.*\.hp*"' |
| Priority: 10 |
| # Other local headers "file.h" with extension (.h or .hpp) |
| - Regex: '".*.hp*"' |
| Priority: 11 |
| # Any unmatched line, separated from the last group |
| - Regex: '"*"' |
| Priority: 100 |
| |
| IncludeIsMainRegex: '(_test)?$' |
| IndentCaseLabels: false |
| IndentPPDirectives: None |
| IndentWidth: 8 |
| IndentWrappedFunctionNames: false |
| JavaScriptQuotes: Leave |
| JavaScriptWrapImports: true |
| KeepEmptyLinesAtTheStartOfBlocks: false |
| MacroBlockBegin: '' |
| MacroBlockEnd: '' |
| MaxEmptyLinesToKeep: 1 |
| NamespaceIndentation: None |
| ObjCBinPackProtocolList: Auto |
| ObjCBlockIndentWidth: 8 |
| ObjCSpaceAfterProperty: true |
| ObjCSpaceBeforeProtocolList: true |
| |
| # Taken from git's rules |
| PenaltyBreakAssignment: 10 |
| PenaltyBreakBeforeFirstCallParameter: 30 |
| PenaltyBreakComment: 10 |
| PenaltyBreakFirstLessLess: 0 |
| PenaltyBreakString: 10 |
| PenaltyBreakTemplateDeclaration: 10 |
| PenaltyExcessCharacter: 100 |
| PenaltyReturnTypeOnItsOwnLine: 60 |
| |
| PointerAlignment: Right |
| ReflowComments: false |
| SortIncludes: true |
| SortUsingDeclarations: true |
| SpaceAfterCStyleCast: false |
| SpaceAfterTemplateKeyword: false |
| SpaceBeforeAssignmentOperators: true |
| SpaceBeforeCpp11BracedList: false |
| SpaceBeforeCtorInitializerColon: true |
| SpaceBeforeInheritanceColon: true |
| SpaceBeforeParens: ControlStatements |
| SpaceBeforeRangeBasedForLoopColon: true |
| SpaceInEmptyParentheses: false |
| SpacesBeforeTrailingComments: 1 |
| SpacesInAngles: false |
| SpacesInContainerLiterals: false |
| SpacesInCStyleCastParentheses: false |
| SpacesInParentheses: false |
| SpacesInSquareBrackets: false |
| Standard: Cpp11 |
| TabWidth: 8 |
| UseTab: Always |
| ... |