diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000000000000000000000000000000000000..c58de4205785545d5822c6435769ce651a4facc0 --- /dev/null +++ b/.clang-format @@ -0,0 +1,204 @@ +--- +BasedOnStyle: LLVM +Language: Cpp + +############################################################## +### ALIGN .... +AlignTrailingComments: + Kind: Always + OverEmptyLines: 2 + +############################################################### +#### ALLOW ALL ... IN ... LINE +AllowAllArgumentsOnNextLine: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortFunctionsOnASingleLine: Empty # Ensure functions aren't packed + +############################################################### +#### BIN PACK ... +BinPackArguments: false +BinPackParameters: false +PackConstructorInitializers: NextLine +PenaltyBreakBeforeFirstCallParameter: 0 # Forces breaking the parameters onto multiple lines + +############################################################### +#### COLUMN WIDTH +ColumnLimit: 79 # More strict column limit to avoid argument packing + +############################################################### +#### TABS ... +UseTab: Never +TabWidth: 4 +IndentWidth: 4 +... + +# ############################################################################ +# ####### OPTIONS IN CASE CLANG-FORMAT NEEDS MODIFICATION +# ############################################################################ +# ############################################################## +# ### ALIGN .... +# AlignAfterOpenBracket: BlockIndent +# AlignArrayOfStructures: Right +# AlignConsecutiveBitFields: +# Enabled: true +# AcrossEmptyLines: true +# AcrossComments: true +# AlignCompound: true +# AlignFunctionPointers: true +# PadOperators: true +# AlignEscapedNewlines: Left +# AlignOperands: AlignAfterOperator + +# ############################################################### +# #### ALLOW ALL ... IN ... LINE +# AllowAllArgumentsOnNextLine: true +# AllowAllParametersOfDeclarationOnNextLine: true +# AllowShortBlocksOnASingleLine: Empty +# AllowShortCaseLabelsOnASingleLine: true +# AllowShortCompoundRequirementOnASingleLine: true +# AllowShortEnumsOnASingleLine: true +# AllowShortFunctionsOnASingleLine: All +# AllowShortIfStatementsOnASingleLine: AllIfsAndElse +# AllowShortLambdasOnASingleLine: All +# AllowShortLoopsOnASingleLine: false + +# ############################################################### +# #### ALWAYS BREAK ... +# AlwaysBreakBeforeMultilineStrings: true +# AlwaysBreakAfterReturnType: None +# AlwaysBreakTemplateDeclarations: MultiLine + + +# ############################################################### +# #### BRACED INITIALIZER INDENT WIDTH +# BracedInitializerIndentWidth: 4 + +# ############################################################### +# #### BREAK BEFORE ... +# BreakBeforeBraces: Custom ############################ THIS ONE IS IMPORTANT +# BraceWrapping: +# AfterCaseLabel: false +# AfterClass: false +# AfterControlStatement: MultiLine +# AfterEnum: false +# AfterFunction: false +# AfterNamespace: false +# AfterStruct: false +# AfterUnion: false +# AfterExternBlock: false +# BeforeCatch: false +# BeforeElse: false +# BeforeLambdaBody: false +# IndentBraces: false +# SplitEmptyFunction: false +# SplitEmptyRecord: false + +# BreakBeforeBinaryOperators: NonAssignment +# BreakStringLiterals: true +# BreakInheritanceList: BeforeComma +# BreakConstructorInitializers: AfterColon +# BreakBeforeTernaryOperators: true +# BreakBeforeInlineASMColon: OnlyMultiline +# BreakBeforeConceptDeclarations: Allowed +# BreakArrays: false +# BreakAfterAttributes: Never +# BreakAdjacentStringLiterals: true + + +# ############################################################### +# #### MISC +# CompactNamespaces: true +# ConstructorInitializerIndentWidth: 4 +# ContinuationIndentWidth: 4 +# Cpp11BracedListStyle: true +# DerivePointerAlignment: false +# DisableFormat: false + +# ############################################################### +# #### ACCESS MODIFIER +# EmptyLineAfterAccessModifier: Never +# EmptyLineBeforeAccessModifier: Always + +# ExperimentalAutoDetectBinPacking: false +# FixNamespaceComments: true +# IncludeBlocks: Preserve + +# ############################################################### +# #### INDENT ... +# IndentAccessModifiers: false +# IndentCaseBlocks: false +# IndentCaseLabels: true +# IndentExternBlock: NoIndent +# IndentGotoLabels: false +# IndentPPDirectives: None +# IndentRequiresClause: false +# IndentWidth: 4 +# IndentWrappedFunctionNames: true +# InsertBraces: true +# InsertNewlineAtEOF: true +# InsertTrailingCommas: Wrapped +# IntegerLiteralSeparator: +# Binary: 4 +# Decimal: 3 +# Hex: 4 +# LambdaBodyIndentation: Signature +# KeepEmptyLinesAtTheStartOfBlocks: false +# KeepEmptyLinesAtEOF: false +# Language: Cpp +# MaxEmptyLinesToKeep: 3 +# NamespaceIndentation: None +# PPIndentWidth: 1 +# PackConstructorInitializers: Never +# PointerAlignment: Right +# QualifierAlignment: Left +# ReferenceAlignment: Right +# ReflowComments: true +# RemoveBracesLLVM: false +# RemoveParentheses: MultipleParentheses +# RemoveSemicolon: true +# RequiresClausePosition: WithPreceding +# RequiresExpressionIndentation: OuterScope +# SeparateDefinitionBlocks: Always +# ShortNamespaceLines: 4 +# SkipMacroDefinitionBody: false +# SortIncludes: CaseSensitive +# SortUsingDeclarations: LexicographicNumeric + +# ############################################################### +# #### SPACE BEFORE / AFTER ... +# SpaceAfterCStyleCast: true +# SpaceAfterTemplateKeyword: false +# SpaceAfterLogicalNot: true +# SpaceAroundPointerQualifiers: After +# SpaceBeforeAssignmentOperators: true +# SpaceBeforeCaseColon: true +# SpaceBeforeCpp11BracedList: true +# SpaceBeforeCtorInitializerColon: false +# SpaceBeforeInheritanceColon: false +# SpaceBeforeParensOptions: +# AfterControlStatements: false +# AfterForeachMacros: false +# AfterFunctionDeclarationName: false +# AfterFunctionDefinitionName: false +# AfterIfMacros: false +# AfterOverloadedOperator: false +# AfterPlacementOperator: true +# AfterRequiresInClause: false +# AfterRequiresInExpression: false +# SpaceBeforeRangeBasedForLoopColon: true +# SpaceBeforeSquareBrackets: false +# SpaceInEmptyBlock: false +# SpacesBeforeTrailingComments: 2 +# SpacesInAngles: Never +# SpacesInContainerLiterals: false +# SpacesInLineCommentPrefix: +# Minimum: 1 +# Maximum: -1 +# SpacesInParensOptions: +# InCStyleCasts: false +# InEmptyParentheses: true +# InConditionalStatements: true +# Other: false +# SpacesInSquareBrackets: false +# Standard: Auto +