Skip to content
Snippets Groups Projects
.clang-format 3.82 KiB
Newer Older
  • Learn to ignore specific revisions
  • rahix's avatar
    rahix committed
    # SPDX-License-Identifier: GPL-2.0
    #
    # (Adapted from the Linux kernel sources)
    #
    # clang-format configuration file. Intended for clang-format >= 4.
    #
    # For more information, see:
    #
    #   Documentation/process/clang-format.rst
    #   https://clang.llvm.org/docs/ClangFormat.html
    #   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
    #
    ---
    AccessModifierOffset: -4
    AlignAfterOpenBracket: AlwaysBreak
    AlignConsecutiveAssignments: true
    AlignConsecutiveDeclarations: false
    #AlignEscapedNewlines: Left # Unknown to clang-format-4.0
    AlignOperands: true
    AlignTrailingComments: true
    AllowAllParametersOfDeclarationOnNextLine: true
    # AllowAllArgumentsOnNextLine: true
    AllowShortBlocksOnASingleLine: false
    AllowShortCaseLabelsOnASingleLine: false
    AllowShortFunctionsOnASingleLine: None
    AllowShortIfStatementsOnASingleLine: false
    AllowShortLoopsOnASingleLine: false
    AlwaysBreakAfterDefinitionReturnType: None
    AlwaysBreakAfterReturnType: None
    AlwaysBreakBeforeMultilineStrings: true
    AlwaysBreakTemplateDeclarations: false
    BinPackArguments: false
    BinPackParameters: false
    BraceWrapping:
      AfterClass: false
      AfterControlStatement: false
      AfterEnum: false
      AfterFunction: true
      AfterNamespace: true
      AfterObjCDeclaration: false
      AfterStruct: false
      AfterUnion: false
      #AfterExternBlock: false # Unknown to clang-format-5.0
      BeforeCatch: false
      BeforeElse: false
      IndentBraces: false
      #SplitEmptyFunction: true # Unknown to clang-format-4.0
      #SplitEmptyRecord: true # Unknown to clang-format-4.0
      #SplitEmptyNamespace: true # Unknown to clang-format-4.0
    BreakBeforeBinaryOperators: None
    BreakBeforeBraces: Custom
    #BreakBeforeInheritanceComma: false # Unknown to clang-format-4.0
    BreakBeforeTernaryOperators: false
    BreakConstructorInitializersBeforeComma: false
    #BreakConstructorInitializers: BeforeComma # Unknown to clang-format-4.0
    BreakAfterJavaFieldAnnotations: false
    BreakStringLiterals: false
    ColumnLimit: 80
    CommentPragmas: '^ IWYU pragma:'
    #CompactNamespaces: false # Unknown to clang-format-4.0
    ConstructorInitializerAllOnOneLineOrOnePerLine: false
    ConstructorInitializerIndentWidth: 8
    ContinuationIndentWidth: 8
    Cpp11BracedListStyle: false
    DerivePointerAlignment: false
    DisableFormat: false
    ExperimentalAutoDetectBinPacking: false
    #FixNamespaceComments: false # Unknown to clang-format-4.0
    
    #IncludeBlocks: Preserve # Unknown to clang-format-5.0
    IncludeCategories:
      - Regex: '.*'
        Priority: 1
    IncludeIsMainRegex: '(Test)?$'
    IndentCaseLabels: false
    #IndentPPDirectives: None # Unknown to clang-format-5.0
    IndentWidth: 8
    IndentWrappedFunctionNames: false
    JavaScriptQuotes: Leave
    JavaScriptWrapImports: true
    KeepEmptyLinesAtTheStartOfBlocks: false
    MacroBlockBegin: ''
    MacroBlockEnd: ''
    MaxEmptyLinesToKeep: 1
    NamespaceIndentation: Inner
    #ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0
    ObjCBlockIndentWidth: 8
    ObjCSpaceAfterProperty: true
    ObjCSpaceBeforeProtocolList: true
    
    # Taken from git's rules
    #PenaltyBreakAssignment: 10 # Unknown to clang-format-4.0
    PenaltyBreakBeforeFirstCallParameter: 30
    PenaltyBreakComment: 10
    PenaltyBreakFirstLessLess: 0
    PenaltyBreakString: 10
    PenaltyExcessCharacter: 100
    PenaltyReturnTypeOnItsOwnLine: 60
    
    PointerAlignment: Right
    ReflowComments: false
    SortIncludes: false
    #SortUsingDeclarations: false # Unknown to clang-format-4.0
    SpaceAfterCStyleCast: false
    SpaceAfterTemplateKeyword: true
    SpaceBeforeAssignmentOperators: true
    #SpaceBeforeCtorInitializerColon: true # Unknown to clang-format-5.0
    #SpaceBeforeInheritanceColon: true # Unknown to clang-format-5.0
    SpaceBeforeParens: ControlStatements
    #SpaceBeforeRangeBasedForLoopColon: true # Unknown to clang-format-5.0
    SpaceInEmptyParentheses: false
    SpacesBeforeTrailingComments: 1
    SpacesInAngles: false
    SpacesInContainerLiterals: false
    SpacesInCStyleCastParentheses: false
    SpacesInParentheses: false
    SpacesInSquareBrackets: false
    Standard: Cpp03
    TabWidth: 8
    UseTab: ForContinuationAndIndentation
    ...