1
0
mirror of https://github.com/timescale/timescaledb.git synced 2025-05-14 09:37:00 +08:00
timescaledb/.clang-format
Matvey Arye cc52a78b9b Add scripts for clang-format
We are switching from pgindent to clang-format for several
reasons:
1) pgindent is harder to set up and depends on other tools
like gobjdump that differ between OSes making it harder
to set up a proper development environment.
2) clang-format is more standard and works better
with various IDEs and editors.

Our clang-format wrapper script is transactional in that this
version of the script copies all files to a temporary directory,
runs clang-format in the temp dir, and only then copies the files
back. This should prevent mis-formatting when the script is cancled
in the middle of running.

We changes travis to use clang-format instead of pgindent
and thus it uses a different docker image to do the format test.
We also changes travis to use the new clang docker
image for the license check and prefix checks for consistency.
This also paves the way for us to use more clang features for tests
in the future.
2019-02-05 16:55:16 -05:00

120 lines
4.1 KiB
YAML

---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
# AlwaysBreakAfterDefinitionReturnType: None # option is deprecated
AlwaysBreakAfterReturnType: AllDefinitions
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
BinPackArguments: false
BinPackParameters: true
BraceWrapping:
AfterClass: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false # N/A C++
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false # N/A Java
BreakStringLiterals: true
ColumnLimit: 100
CommentPragmas: '^ TS Pragma:' #For future proofing
CompactNamespaces: false # N/A c++
ConstructorInitializerAllOnOneLineOrOnePerLine: false # N/A C++
ConstructorInitializerIndentWidth: 40 # N/A C++
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false # see catalog.c array struct assigns for an example
DerivePointerAlignment: false # always use Right
DisableFormat: false # haha
# ExperimentalAutoDetectBinPacking: false #the docs say not to have this in config file
FixNamespaceComments: true # N/A C++
ForEachMacros:
- foreach
- forboth
- for_each_cell
- for_both_cell
- forthree
IncludeBlocks: Preserve # separate include blocks will not be merged
IncludeCategories: # we want to ensure c.h and postgres.h appear first
- Regex: '.*'
Priority: 1
- Regex: '^<c\.h>'
Priority: -1
- Regex: '^<postgres\.h>'
Priority: -1
IncludeIsMainRegex: '' # filename_<suffix> will be seen as the primary include
IndentCaseLabels: true
IndentPPDirectives: None # do not indent preprocessor directives after the '#'
IndentWidth: 4
IndentWrappedFunctionNames: false # we do not indent the function name in the declaration
JavaScriptQuotes: Double # N/A js
JavaScriptWrapImports: true # N/A js
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: '' # regex of macros that behave like '{'
MacroBlockEnd: '' # regex of macros that behave like '}'
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None # N/A c++
ObjCBinPackProtocolList: Auto # N/A objC
ObjCBlockIndentWidth: 2 # N/A objC
ObjCSpaceAfterProperty: false # N/A objC
ObjCSpaceBeforeProtocolList: true # N/A objC
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 10000
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right # as in char *foo;
ReflowComments: true # break up long comments into multiple lines
SortIncludes: false # keep includes in the same order as we write them
SortUsingDeclarations: false # N/A c++
SpaceAfterCStyleCast: true
SpaceAfterTemplateKeyword: false # N/A c++
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true # N/A c++
SpaceBeforeInheritanceColon: false # N/A c++
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true # N/A C++
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false # N/A c++
SpacesInContainerLiterals: true # N/A c++
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 4
UseTab: Always
...