Adjusted version with initial chosen settings
This commit is contained in:
parent
5d3e2d4e20
commit
6dc44871f3
260
.clang-format
260
.clang-format
|
@ -0,0 +1,260 @@
|
||||||
|
---
|
||||||
|
IndentWidth: 4
|
||||||
|
---
|
||||||
|
Language: Cpp
|
||||||
|
|
||||||
|
# Access modifiers go to the same
|
||||||
|
# level as braces, as for labels.
|
||||||
|
AccessModifierOffset: -4
|
||||||
|
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
|
||||||
|
# Use table-style alignment
|
||||||
|
# for consistency
|
||||||
|
AlignArrayOfStructures: Right
|
||||||
|
|
||||||
|
AlignConsecutiveAssignments: None
|
||||||
|
|
||||||
|
AlignConsecutiveBitFields: AcrossEmptyLinesAndComments
|
||||||
|
|
||||||
|
AlignConsecutiveDeclarations: AcrossComments
|
||||||
|
|
||||||
|
AlignConsecutiveMacros: AcrossComments
|
||||||
|
|
||||||
|
AlignEscapedNewlines: Left
|
||||||
|
|
||||||
|
AlignOperands: Align
|
||||||
|
|
||||||
|
AlignTrailingComments: false
|
||||||
|
|
||||||
|
AllowAllArgumentsOnNextLine: true
|
||||||
|
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: false
|
||||||
|
|
||||||
|
AllowShortEnumsOnASingleLine: false
|
||||||
|
|
||||||
|
AllowShortBlocksOnASingleLine: Never
|
||||||
|
|
||||||
|
AllowShortCaseLabelsOnASingleLine: false
|
||||||
|
|
||||||
|
AllowShortFunctionsOnASingleLine: Empty
|
||||||
|
|
||||||
|
AllowShortLambdasOnASingleLine: Inline
|
||||||
|
|
||||||
|
AllowShortIfStatementsOnASingleLine: Never
|
||||||
|
|
||||||
|
AllowShortLoopsOnASingleLine: false
|
||||||
|
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
|
||||||
|
AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
|
||||||
|
AlwaysBreakTemplateDeclarations: Yes
|
||||||
|
|
||||||
|
AttributeMacros:
|
||||||
|
- __attribute__
|
||||||
|
- DSO_EXPORT
|
||||||
|
|
||||||
|
BinPackArguments: true
|
||||||
|
|
||||||
|
BinPackParameters: true
|
||||||
|
|
||||||
|
BraceWrapping:
|
||||||
|
AfterCaseLabel: false
|
||||||
|
AfterClass: false
|
||||||
|
AfterControlStatement: Never
|
||||||
|
AfterEnum: false
|
||||||
|
AfterFunction: true
|
||||||
|
AfterNamespace: false
|
||||||
|
AfterStruct: false
|
||||||
|
AfterUnion: false
|
||||||
|
AfterExternBlock: false
|
||||||
|
BeforeCatch: true
|
||||||
|
BeforeElse: true
|
||||||
|
BeforeLambdaBody: true
|
||||||
|
BeforeWhile: true
|
||||||
|
IndentBraces: false
|
||||||
|
SplitEmptyFunction: false
|
||||||
|
SplitEmptyRecord: false
|
||||||
|
SplitEmptyNamespace: false
|
||||||
|
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
|
||||||
|
BreakBeforeConceptDeclarations: true
|
||||||
|
|
||||||
|
BreakBeforeBraces: Attach
|
||||||
|
|
||||||
|
BreakInheritanceList: AfterComma
|
||||||
|
|
||||||
|
BreakBeforeTernaryOperators: true
|
||||||
|
|
||||||
|
BreakConstructorInitializers: BeforeComma
|
||||||
|
|
||||||
|
BreakStringLiterals: true
|
||||||
|
|
||||||
|
# We chose a limit that fits on a
|
||||||
|
# 1080p laptop monitor when doing
|
||||||
|
# diffs.
|
||||||
|
ColumnLimit: 100
|
||||||
|
|
||||||
|
# Allow `xgettext --add-comments` to
|
||||||
|
# extract comments for translators
|
||||||
|
CommentPragmas: '^ TRANSLATORS: '
|
||||||
|
|
||||||
|
QualifierAlignment: Leave
|
||||||
|
|
||||||
|
CompactNamespaces: false
|
||||||
|
|
||||||
|
ConstructorInitializerIndentWidth: 4
|
||||||
|
|
||||||
|
ContinuationIndentWidth: 4
|
||||||
|
|
||||||
|
Cpp11BracedListStyle: false
|
||||||
|
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
|
||||||
|
EmptyLineAfterAccessModifier: Never
|
||||||
|
|
||||||
|
EmptyLineBeforeAccessModifier: Always
|
||||||
|
|
||||||
|
PackConstructorInitializers: Never
|
||||||
|
|
||||||
|
FixNamespaceComments: true
|
||||||
|
|
||||||
|
ForEachMacros:
|
||||||
|
- TAILQ_FOREACH
|
||||||
|
- SLIST_FOREACH
|
||||||
|
|
||||||
|
IfMacros: []
|
||||||
|
|
||||||
|
IncludeBlocks: Regroup
|
||||||
|
|
||||||
|
IncludeCategories:
|
||||||
|
- Regex: '^"'
|
||||||
|
Priority: 1
|
||||||
|
CaseSensitive: false
|
||||||
|
|
||||||
|
- Regex: '^<nlohmann'
|
||||||
|
Priority: 10
|
||||||
|
CaseSensitive: false
|
||||||
|
|
||||||
|
- Regex: '^<grpc'
|
||||||
|
Priority: 11
|
||||||
|
CaseSensitive: false
|
||||||
|
|
||||||
|
- Regex: '^<(doctest|gmock|trompeloeil)'
|
||||||
|
Priority: 50
|
||||||
|
CaseSensitive: false
|
||||||
|
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 99
|
||||||
|
CaseSensitive: false
|
||||||
|
|
||||||
|
IncludeIsMainSourceRegex: ''
|
||||||
|
|
||||||
|
IndentAccessModifiers: false
|
||||||
|
|
||||||
|
IndentCaseLabels: true
|
||||||
|
|
||||||
|
IndentCaseBlocks: false
|
||||||
|
|
||||||
|
IndentGotoLabels: false
|
||||||
|
|
||||||
|
IndentPPDirectives: BeforeHash
|
||||||
|
|
||||||
|
IndentExternBlock: NoIndent
|
||||||
|
|
||||||
|
IndentRequires: true
|
||||||
|
|
||||||
|
IndentWrappedFunctionNames: false
|
||||||
|
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||||
|
|
||||||
|
LambdaBodyIndentation: Signature
|
||||||
|
|
||||||
|
MacroBlockBegin: ''
|
||||||
|
MacroBlockEnd: ''
|
||||||
|
|
||||||
|
MaxEmptyLinesToKeep: 1
|
||||||
|
|
||||||
|
NamespaceIndentation: None
|
||||||
|
|
||||||
|
PenaltyBreakAssignment: 2
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: 19
|
||||||
|
PenaltyBreakComment: 300
|
||||||
|
PenaltyBreakFirstLessLess: 120
|
||||||
|
PenaltyBreakOpenParenthesis: 0
|
||||||
|
PenaltyBreakString: 1000
|
||||||
|
PenaltyBreakTemplateDeclaration: 10
|
||||||
|
PenaltyExcessCharacter: 1000000
|
||||||
|
PenaltyReturnTypeOnItsOwnLine: 60
|
||||||
|
PenaltyIndentedWhitespace: 0
|
||||||
|
|
||||||
|
PointerAlignment: Right
|
||||||
|
|
||||||
|
PPIndentWidth: -1
|
||||||
|
|
||||||
|
ReferenceAlignment: Left
|
||||||
|
|
||||||
|
ReflowComments: true
|
||||||
|
|
||||||
|
SeparateDefinitionBlocks: Always
|
||||||
|
|
||||||
|
ShortNamespaceLines: 0
|
||||||
|
|
||||||
|
SortIncludes: CaseSensitive
|
||||||
|
|
||||||
|
SortUsingDeclarations: true
|
||||||
|
|
||||||
|
SpaceAfterCStyleCast: true
|
||||||
|
|
||||||
|
SpaceAfterLogicalNot: true
|
||||||
|
|
||||||
|
SpaceAfterTemplateKeyword: true
|
||||||
|
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
|
||||||
|
SpaceBeforeCaseColon: false
|
||||||
|
|
||||||
|
SpaceBeforeCpp11BracedList: false
|
||||||
|
|
||||||
|
SpaceBeforeCtorInitializerColon: true
|
||||||
|
|
||||||
|
SpaceBeforeInheritanceColon: true
|
||||||
|
|
||||||
|
SpaceBeforeParensOptions:
|
||||||
|
AfterControlStatements: true
|
||||||
|
AfterForeachMacros: false
|
||||||
|
AfterFunctionDefinitionName: false
|
||||||
|
AfterFunctionDeclarationName: false
|
||||||
|
AfterIfMacros: false
|
||||||
|
AfterOverloadedOperator: false
|
||||||
|
BeforeNonEmptyParentheses: false
|
||||||
|
|
||||||
|
SpaceAroundPointerQualifiers: Before
|
||||||
|
SpaceBeforeRangeBasedForLoopColon: true
|
||||||
|
SpaceInEmptyBlock: false
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: 1
|
||||||
|
SpacesInAngles: Never
|
||||||
|
|
||||||
|
SpacesInContainerLiterals: true
|
||||||
|
SpacesInLineCommentPrefix:
|
||||||
|
Minimum: 1
|
||||||
|
Maximum: -1
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
SpaceBeforeSquareBrackets: false
|
||||||
|
BitFieldColonSpacing: Both
|
||||||
|
|
||||||
|
Standard: c++17
|
||||||
|
|
||||||
|
StatementAttributeLikeMacros: []
|
||||||
|
StatementMacros: []
|
||||||
|
TabWidth: 4
|
||||||
|
UseCRLF: false
|
||||||
|
UseTab: Never
|
||||||
|
WhitespaceSensitiveMacros:
|
||||||
|
- STRINGIZE
|
||||||
|
- PP_STRINGIZE
|
||||||
|
- BOOST_PP_STRINGIZE
|
||||||
|
...
|
186
.clang-tidy
186
.clang-tidy
|
@ -1,28 +1,168 @@
|
||||||
---
|
---
|
||||||
Checks: 'clang-diagnostic-*,clang-analyzer-*'
|
FormatStyle: file
|
||||||
WarningsAsErrors: ''
|
Checks: >-
|
||||||
|
android-cloexec-*
|
||||||
|
, boost-use-to-string
|
||||||
|
, bugprone-assert-side-effect
|
||||||
|
, bugprone-bad-signal-to-kill-thread
|
||||||
|
, bugprone-copy-constructor-init
|
||||||
|
, bugprone-dangling-handle
|
||||||
|
, bugprone-dynamic-static-initializers
|
||||||
|
, bugprone-easily-swappable-parameters
|
||||||
|
, bugprone-exception-escape
|
||||||
|
, bugprone-fold-init-type
|
||||||
|
, bugprone-forward-declaration-namespace
|
||||||
|
, bugprone-forwarding-reference-overload
|
||||||
|
, bugprone-inaccurate-erase
|
||||||
|
, bugprone-incorrect-roundings
|
||||||
|
, bugprone-infinite-loop
|
||||||
|
, bugprone-integer-division
|
||||||
|
, bugprone-lambda-function-name
|
||||||
|
, bugprone-macro-parentheses
|
||||||
|
, bugprone-macro-repeated-side-effects
|
||||||
|
, bugprone-misplaced-operator-in-strlen-in-alloc
|
||||||
|
, bugprone-misplaced-pointer-arithmetic-in-alloc
|
||||||
|
, bugprone-misplaced-widening-cast
|
||||||
|
, bugprone-move-forwarding-reference
|
||||||
|
, bugprone-multiple-statement-macro
|
||||||
|
, bugprone-not-null-terminated-result
|
||||||
|
, bugprone-parent-virtual-call
|
||||||
|
, bugprone-posix-return
|
||||||
|
, bugprone-redundant-branch-condition
|
||||||
|
, bugprone-reserved-identifier
|
||||||
|
, bugprone-signal-handler
|
||||||
|
, bugprone-sizeof-container
|
||||||
|
, bugprone-sizeof-expression
|
||||||
|
, bugprone-spuriously-wake-up-functions
|
||||||
|
, bugprone-string-constructor
|
||||||
|
, bugprone-string-integer-assignment
|
||||||
|
, bugprone-string-literal-with-embedded-nul
|
||||||
|
, bugprone-stringview-nullptr
|
||||||
|
, bugprone-suspicious-enum-usage
|
||||||
|
, bugprone-suspicious-memory-comparison
|
||||||
|
, bugprone-suspicious-memset-usage
|
||||||
|
, bugprone-suspicious-semicolon
|
||||||
|
, bugprone-suspicious-string-compare
|
||||||
|
, bugprone-swapped-arguments
|
||||||
|
, bugprone-throw-keyword-missing
|
||||||
|
, bugprone-undefined-memory-manipulation
|
||||||
|
, bugprone-undelegated-constructor
|
||||||
|
, bugprone-unhandled-self-assignment
|
||||||
|
, bugprone-unused-raii
|
||||||
|
, bugprone-unused-return-value
|
||||||
|
, bugprone-use-after-move
|
||||||
|
, cert-dcl58-cpp
|
||||||
|
, cert-env33-c
|
||||||
|
, cert-err33-c
|
||||||
|
, cert-err34-c
|
||||||
|
, cert-err58-cpp
|
||||||
|
, cert-err60-cpp
|
||||||
|
, cert-flp30-c
|
||||||
|
, cert-msc50-cpp
|
||||||
|
, cert-msc51-cpp
|
||||||
|
, cert-oop57-cpp
|
||||||
|
, cert-oop58-cpp
|
||||||
|
, concurrency-mt-unsafe
|
||||||
|
, cppcoreguidelines-avoid-goto
|
||||||
|
, cppcoreguidelines-avoid-non-const-global-variables
|
||||||
|
, clang-diagnostic-*
|
||||||
|
, clang-analyzer-*
|
||||||
|
, cppcoreguidelines-init-variables
|
||||||
|
, cppcoreguidelines-interfaces-global-init
|
||||||
|
, cppcoreguidelines-macro-usage
|
||||||
|
, cppcoreguidelines-narrowing-conversions
|
||||||
|
, cppcoreguidelines-pro-bounds-constant-array-index
|
||||||
|
, cppcoreguidelines-pro-type-const-cast
|
||||||
|
, cppcoreguidelines-pro-type-cstyle-cast
|
||||||
|
, cppcoreguidelines-slicing
|
||||||
|
, cppcoreguidelines-special-member-functions
|
||||||
|
, cppcoreguidelines-virtual-class-destructor
|
||||||
|
, google-build-namespaces
|
||||||
|
, google-build-using-namespace
|
||||||
|
, google-default-arguments
|
||||||
|
, google-explicit-constructor
|
||||||
|
, google-global-names-in-headers
|
||||||
|
, google-runtime-int
|
||||||
|
, google-runtime-operator
|
||||||
|
, hicpp-exception-baseclass
|
||||||
|
, misc-definitions-in-headers
|
||||||
|
, misc-misleading-bidirectional
|
||||||
|
, misc-misleading-identifier
|
||||||
|
, misc-misplaced-const
|
||||||
|
, misc-non-private-member-variables-in-classes
|
||||||
|
, misc-redundant-expression
|
||||||
|
, misc-static-assert
|
||||||
|
, misc-throw-by-value-catch-by-reference
|
||||||
|
, misc-unconventional-assign-operator
|
||||||
|
, misc-uniqueptr-reset-release
|
||||||
|
, misc-unused-parameters
|
||||||
|
, misc-unused-using-decls
|
||||||
|
, modernize-avoid-c-arrays
|
||||||
|
, modernize-concat-nested-namespaces
|
||||||
|
, modernize-deprecated-headers
|
||||||
|
, modernize-deprecated-ios-base-aliases
|
||||||
|
, modernize-loop-convert
|
||||||
|
, modernize-make-shared
|
||||||
|
, modernize-make-unique
|
||||||
|
, modernize-pass-by-value
|
||||||
|
, modernize-raw-string-literal
|
||||||
|
, modernize-redundant-void-arg
|
||||||
|
, modernize-return-braced-init-list
|
||||||
|
, modernize-shrink-to-fit
|
||||||
|
, modernize-unary-static-assert
|
||||||
|
, modernize-use-auto
|
||||||
|
, modernize-use-bool-literals
|
||||||
|
, modernize-use-default-member-init
|
||||||
|
, modernize-use-emplace
|
||||||
|
, modernize-use-equals-default
|
||||||
|
, modernize-use-equals-delete
|
||||||
|
, modernize-use-nodiscard
|
||||||
|
, modernize-use-noexcept
|
||||||
|
, modernize-use-nullptr
|
||||||
|
, modernize-use-override
|
||||||
|
, modernize-use-trailing-return-type
|
||||||
|
, modernize-use-transparent-functors
|
||||||
|
, modernize-use-uncaught-exceptions
|
||||||
|
, modernize-use-using
|
||||||
|
, readability-braces-around-statements
|
||||||
|
, readability-function-size
|
||||||
|
, readability-non-const-parameter
|
||||||
|
, readability-magic-numbers
|
||||||
|
, readability-redundant-string-init
|
||||||
|
, readability-simplify-boolean-expr
|
||||||
|
, readability-static-accessed-through-instance
|
||||||
|
, readability-string-compare
|
||||||
|
, readability-uniqueptr-delete-release
|
||||||
|
, readability-use-anyofallof
|
||||||
|
|
||||||
|
# - ONE DAY... cppcoreguidelines-avoid-non-const-global-variables
|
||||||
|
WarningsAsErrors: >-
|
||||||
|
cppcoreguidelines-init-variables
|
||||||
|
, cppcoreguidelines-interfaces-global-init
|
||||||
|
, cppcoreguidelines-pro-type-cstyle-cast
|
||||||
|
, cppcoreguidelines-slicing
|
||||||
|
, cppcoreguidelines-virtual-class-destructor
|
||||||
|
, google-explicit-constructor
|
||||||
|
, google-runtime-operator
|
||||||
|
, misc-definitions-in-headers
|
||||||
|
, misc-misleading-bidirectional
|
||||||
|
, misc-misleading-identifier
|
||||||
|
, misc-non-private-member-variables-in-classes
|
||||||
|
, misc-throw-by-value-catch-by-reference
|
||||||
|
, misc-unconventional-assign-operator
|
||||||
|
, readability-braces-around-statements
|
||||||
|
|
||||||
HeaderFilterRegex: ''
|
HeaderFilterRegex: ''
|
||||||
AnalyzeTemporaryDtors: false
|
FormatStyle: file:.clang-format
|
||||||
FormatStyle: none
|
|
||||||
User: matteo
|
|
||||||
CheckOptions:
|
CheckOptions:
|
||||||
llvm-else-after-return.WarnOnConditionVariables: 'false'
|
- key: readability-function-size.StatementThreshold
|
||||||
modernize-loop-convert.MinConfidence: reasonable
|
value: '60'
|
||||||
modernize-replace-auto-ptr.IncludeStyle: llvm
|
- key: readability-function-size.BranchThreshold
|
||||||
cert-str34-c.DiagnoseSignedUnsignedCharComparisons: 'false'
|
value: '15'
|
||||||
google-readability-namespace-comments.ShortNamespaceLines: '10'
|
- key: readability-function-size.VariableThreshold
|
||||||
cert-err33-c.CheckedFunctions: '::aligned_alloc;::asctime_s;::at_quick_exit;::atexit;::bsearch;::bsearch_s;::btowc;::c16rtomb;::c32rtomb;::calloc;::clock;::cnd_broadcast;::cnd_init;::cnd_signal;::cnd_timedwait;::cnd_wait;::ctime_s;::fclose;::fflush;::fgetc;::fgetpos;::fgets;::fgetwc;::fopen;::fopen_s;::fprintf;::fprintf_s;::fputc;::fputs;::fputwc;::fputws;::fread;::freopen;::freopen_s;::fscanf;::fscanf_s;::fseek;::fsetpos;::ftell;::fwprintf;::fwprintf_s;::fwrite;::fwscanf;::fwscanf_s;::getc;::getchar;::getenv;::getenv_s;::gets_s;::getwc;::getwchar;::gmtime;::gmtime_s;::localtime;::localtime_s;::malloc;::mbrtoc16;::mbrtoc32;::mbsrtowcs;::mbsrtowcs_s;::mbstowcs;::mbstowcs_s;::memchr;::mktime;::mtx_init;::mtx_lock;::mtx_timedlock;::mtx_trylock;::mtx_unlock;::printf_s;::putc;::putwc;::raise;::realloc;::remove;::rename;::scanf;::scanf_s;::setlocale;::setvbuf;::signal;::snprintf;::snprintf_s;::sprintf;::sprintf_s;::sscanf;::sscanf_s;::strchr;::strerror_s;::strftime;::strpbrk;::strrchr;::strstr;::strtod;::strtof;::strtoimax;::strtok;::strtok_s;::strtol;::strtold;::strtoll;::strtoul;::strtoull;::strtoumax;::strxfrm;::swprintf;::swprintf_s;::swscanf;::swscanf_s;::thrd_create;::thrd_detach;::thrd_join;::thrd_sleep;::time;::timespec_get;::tmpfile;::tmpfile_s;::tmpnam;::tmpnam_s;::tss_create;::tss_get;::tss_set;::ungetc;::ungetwc;::vfprintf;::vfprintf_s;::vfscanf;::vfscanf_s;::vfwprintf;::vfwprintf_s;::vfwscanf;::vfwscanf_s;::vprintf_s;::vscanf;::vscanf_s;::vsnprintf;::vsnprintf_s;::vsprintf;::vsprintf_s;::vsscanf;::vsscanf_s;::vswprintf;::vswprintf_s;::vswscanf;::vswscanf_s;::vwprintf_s;::vwscanf;::vwscanf_s;::wcrtomb;::wcschr;::wcsftime;::wcspbrk;::wcsrchr;::wcsrtombs;::wcsrtombs_s;::wcsstr;::wcstod;::wcstof;::wcstoimax;::wcstok;::wcstok_s;::wcstol;::wcstold;::wcstoll;::wcstombs;::wcstombs_s;::wcstoul;::wcstoull;::wcstoumax;::wcsxfrm;::wctob;::wctrans;::wctype;::wmemchr;::wprintf_s;::wscanf;::wscanf_s;'
|
value: '15'
|
||||||
cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField: 'false'
|
- key: readability-function-size.ParameterThreshold
|
||||||
cert-dcl16-c.NewSuffixes: 'L;LL;LU;LLU'
|
value: '7'
|
||||||
google-readability-braces-around-statements.ShortStatementLines: '1'
|
|
||||||
cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic: 'true'
|
|
||||||
google-readability-namespace-comments.SpacesBeforeComments: '2'
|
|
||||||
modernize-loop-convert.MaxCopySize: '16'
|
|
||||||
modernize-pass-by-value.IncludeStyle: llvm
|
|
||||||
modernize-use-nullptr.NullMacros: 'NULL'
|
|
||||||
llvm-qualified-auto.AddConstToQualified: 'false'
|
|
||||||
modernize-loop-convert.NamingStyle: CamelCase
|
|
||||||
llvm-else-after-return.WarnOnUnfixable: 'false'
|
|
||||||
google-readability-function-size.StatementThreshold: '800'
|
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,20 @@
|
||||||
"targets": [
|
"targets": [
|
||||||
"format"
|
"format"
|
||||||
],
|
],
|
||||||
"group": "build",
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
"problemMatcher": [],
|
"problemMatcher": [],
|
||||||
"detail": "CMake template build task"
|
"detail": "CMake template build task",
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "never",
|
||||||
|
"focus": false,
|
||||||
|
"panel": "shared",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,17 +2,28 @@ cmake_minimum_required(VERSION 3.22)
|
||||||
|
|
||||||
project(format-demo)
|
project(format-demo)
|
||||||
|
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
|
||||||
add_custom_command(OUTPUT main-formatted.cc
|
add_custom_command(OUTPUT main-formatted.cc
|
||||||
DEPENDS main-unformatted.cc .clang-format .clang-tidy
|
DEPENDS main-unformatted.cc .clang-format .clang-tidy
|
||||||
|
BYPRODUCTS main-previous.cc main-diff.cc
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/main-unformatted.cc main-formatted.cc
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/main-unformatted.cc main-formatted.cc
|
||||||
COMMAND clang-format-16 -i main-formatted.cc
|
COMMAND sh -c "test -f main-formatted.cc && ${CMAKE_COMMAND} -E copy main-formatted.cc main-previous.cc"
|
||||||
COMMAND clang-tidy-16 --fix --fix-notes -fix-errors
|
COMMAND clang-format-14 -i --style=file:${CMAKE_CURRENT_SOURCE_DIR}/.clang-format main-formatted.cc
|
||||||
-fix-errors -p ${CMAKE_CURRENT_BINARY_DIR} main-formatted.cc
|
COMMAND clang-tidy-14 --use-color --fix --fix-notes -fix-errors -p ${CMAKE_CURRENT_BINARY_DIR} main-formatted.cc
|
||||||
|
COMMAND chmod 0444 main-formatted.cc
|
||||||
|
# COMMAND sh -c "test -f main-previous.cc && diff -u main-previous.cc main-formatted.cc > main-diff.cc"
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
|
|
||||||
|
add_executable(output
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/main-formatted.cc)
|
||||||
|
|
||||||
|
|
||||||
add_custom_target(format
|
add_custom_target(format
|
||||||
DEPENDS main-formatted.cc
|
DEPENDS main-formatted.cc
|
||||||
COMMENT "Formatting and linting sources"
|
COMMENT "Formatting and linting sources"
|
||||||
SOURCES main-unformatted.cc ${CMAKE_CURRENT_BINARY_DIR}/main-formatted.cc
|
SOURCES main-unformatted.cc
|
||||||
.clang-format .clang-tidy
|
${CMAKE_CURRENT_BINARY_DIR}/main-formatted.cc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/main-diff.cc
|
||||||
|
.clang-format
|
||||||
|
.clang-tidy
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Extra rules
|
||||||
|
|
||||||
|
These are rules that can't be captured directly
|
||||||
|
by clang-format / clang-tidy.
|
||||||
|
|
||||||
|
* Use .hpp for C++ headers, .cpp for C++ files
|
||||||
|
* \#pragma once
|
||||||
|
* includes:
|
||||||
|
- double-quotes for ebee-developed applications
|
||||||
|
- angular brackets for external projects / system headers
|
||||||
|
- full relative path from src/ folder
|
||||||
|
- for libraries: public includes in a folder separated from private includes
|
||||||
|
- includes ordered by most specific to most generic
|
||||||
|
- for libraries: mark interfaces available externaly with a `DLL_EXPORT` macro for `__attribute__((visibility("default")))`
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
|
||||||
|
- change xgettext parameter to "--add-comments" to TRANSLATORS in CMakeLists.txt
|
||||||
|
- remove bundled doctest.h or trompeloeil from project
|
|
@ -1,31 +1,59 @@
|
||||||
|
// Includes
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <map>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <map>
|
#include <vector>
|
||||||
|
#include "foo.h"
|
||||||
|
#include "main-formatted.hh"
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
#define BIT_MASK 0xDEADBEAF
|
// Macros
|
||||||
|
#define MAGIC_NUMBER 0xdeadbeef
|
||||||
#define MULTILINE_DEF(a,b) if ((a)>2) { \
|
#define MAGIC_FUNCTION(a,b) while ((a) % (b) != 0) { \
|
||||||
auto temp = (b)/2; \
|
(a)--; \
|
||||||
(b)+=10; \
|
|
||||||
someFunctionCall((a),(b));\
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace LevelOneNamespace {
|
namespace ns1 { namespace ns2 {
|
||||||
|
|
||||||
extern auto someFunctionCall(int16_t, float *) -> int;
|
|
||||||
namespace LevelTwoNamespace {
|
|
||||||
|
|
||||||
template <typename T, int size> bool is_sorted(T(&array)[size]) {
|
template <typename T, int size> bool is_sorted(T(&array)[size]) {
|
||||||
return std::adjacent_find(array, array + size, std::greater<T>()) ==
|
return std::adjacent_find(array, array + size, std::greater<T>()) ==
|
||||||
array + size;
|
array + size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C {
|
||||||
|
public:
|
||||||
|
C() : a_(1), _b(2), m_c("3") {}
|
||||||
|
virtual ~C() noexcept {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
auto f() const noexcept -> int {
|
||||||
|
return static_cast<int>(a_);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
double a_;
|
||||||
|
int _b;
|
||||||
|
std::string m_c;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auto someFunctionCall(int8_t a,
|
||||||
|
float *b) -> int {
|
||||||
|
return *b;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct test {
|
||||||
|
int a,b;
|
||||||
|
const char* c;
|
||||||
|
};
|
||||||
|
|
||||||
std::vector<uint32_t> returnVector( uint32_t* LongNameForParameter1,
|
std::vector<uint32_t> returnVector( uint32_t* LongNameForParameter1,
|
||||||
double* LongNameForParameter2,
|
double* LongNameForParameter2,
|
||||||
const float& LongNameForParameter3,
|
const float& LongNameForParameter3,
|
||||||
|
@ -46,10 +74,18 @@ std::vector<uint32_t> returnVector( uint32_t* LongNameForParameter1,
|
||||||
a++;
|
a++;
|
||||||
} while (false);
|
} while (false);
|
||||||
|
|
||||||
return {};
|
test demo[] =
|
||||||
}
|
{
|
||||||
|
{56, 23, "hello"},
|
||||||
|
{-1, 93463, "world"},
|
||||||
|
{7, 5, "!!" }
|
||||||
|
};
|
||||||
|
|
||||||
}
|
auto b = *LongNameForParameter1 > LongNameForParameter3
|
||||||
|
? 1
|
||||||
|
: 2;
|
||||||
|
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
@ -58,11 +94,21 @@ int main() {
|
||||||
int list[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
|
int list[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
|
||||||
|
|
||||||
|
|
||||||
using LevelOneNamespace::LevelTwoNamespace::is_sorted;
|
using ns1::ns2::is_sorted;
|
||||||
do {
|
do {
|
||||||
std::random_shuffle(list, list + 9);
|
std::random_shuffle(list, list + 9);
|
||||||
} while (is_sorted(list));
|
} while (is_sorted(list));
|
||||||
|
|
||||||
|
switch(43) {
|
||||||
|
case 42:
|
||||||
|
{
|
||||||
|
// indented?
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 43:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int score = 0;
|
int score = 0;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
Loading…
Reference in New Issue