Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
328a37c
feat: suppress bogus `-Wnon-virtual-dtor` warning
BurningEnlightenment May 26, 2025
1f40447
fix: catch2 v3.7.0 compatibility
BurningEnlightenment May 26, 2025
9b4e15e
fix: fmt v11 compatibility
BurningEnlightenment May 26, 2025
dc685b5
test: workaround some `-Wmaybe-uninitialized`
BurningEnlightenment Jun 2, 2025
1194bfc
test: fix `readability-redundant-inline-specifier`
BurningEnlightenment Jun 2, 2025
f645c66
test: fix `cppcoreguidelines-use-default-member-init`
BurningEnlightenment Jun 2, 2025
137d211
test: fix `cppcoreguidelines-missing-std-forward`
BurningEnlightenment Jun 2, 2025
b89bbc1
test: fix `readability-math-missing-parentheses`
BurningEnlightenment Jun 2, 2025
c8e3064
build: update `copier-cpp` template to v0.4.0a1
BurningEnlightenment Jun 1, 2025
b49aeef
build: update `copier-cpp` template to v0.4.0a2
BurningEnlightenment Jun 2, 2025
c06ddda
build: update `copier-cpp` template to v0.4.0a3
BurningEnlightenment Jun 2, 2025
2b7f64f
build: update `copier-cpp` template to v0.4.0a4
BurningEnlightenment Jun 2, 2025
bc9f0a8
build: update `copier-cpp` template to v0.4.0a5
BurningEnlightenment Jun 2, 2025
132b040
style: reformat sources with clang-format v20
BurningEnlightenment Jun 2, 2025
4a01c2f
style: blame-ignore clang-format-20 reformat commit
BurningEnlightenment Jun 2, 2025
f409461
lint: ignore overzealous clang-tidy rules
BurningEnlightenment Jun 5, 2025
9632e08
lint: fix `modernize-use-integer-sign-comparison`
BurningEnlightenment Jun 6, 2025
dbfe155
lint: fix `modernize-type-traits`
BurningEnlightenment Jun 6, 2025
0b230fe
lint: fix `readability-math-missing-parentheses`
BurningEnlightenment Jun 6, 2025
d5cc6a1
lint: ignore `cppcoreguidelines-macro-to-enum` for conmpile time config
BurningEnlightenment Jun 6, 2025
e3954df
lint: fix `cppcoreguidelines-avoid-magic-numbers`
BurningEnlightenment Jun 6, 2025
2eeeafb
lint: fix `bugprone-crtp-constructor-accessibility`
BurningEnlightenment Jun 6, 2025
e8003e0
build: update `copier-cpp` template to v0.4.0a6
BurningEnlightenment Jun 6, 2025
365d983
build: update `copier-cpp` template to v0.4.0a7
BurningEnlightenment Jun 6, 2025
0e09b7d
ci: try fix compilation database for lint
BurningEnlightenment Jun 6, 2025
de70a42
test: add missing include to test header
BurningEnlightenment Jun 6, 2025
c396526
build: update `copier-cpp` template to v0.4.0
BurningEnlightenment Jun 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 80 additions & 10 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,62 @@ AlignConsecutiveAssignments:
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: true
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveMacros:
Enabled: true
AcrossEmptyLines: false
AcrossComments: true
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveShortCaseStatements:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCaseArrows: false
AlignCaseColons: false
AlignConsecutiveTableGenBreakingDAGArgColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenCondOperatorColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenDefinitionColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignEscapedNewlines: Right
AlignOperands: Align
Expand All @@ -38,25 +76,27 @@ AlignTrailingComments:
OverEmptyLines: 1
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowBreakBeforeNoexceptSpecifier: Never
AllowShortBlocksOnASingleLine: Never
AllowShortCaseExpressionOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: true
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: Inline
AllowShortLoopsOnASingleLine: false
AllowShortNamespacesOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
AttributeMacros:
- __capability
- DPLX_ATTR_FORCE_INLINE
- DPLX_ATTR_NO_UNIQUE_ADDRESS
- DPLX_ATTR_DP_DEPRECATED
- DPLX_ATTR_DP_DEPRECATED_
BinPackArguments: true
BinPackParameters: false
BinPackParameters: OnePerLine
BitFieldColonSpacing: Both
BraceWrapping:
AfterCaseLabel: false
Expand All @@ -77,17 +117,22 @@ BraceWrapping:
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAdjacentStringLiterals: true
BreakAfterAttributes: Leave
BreakAfterJavaFieldAnnotations: true
BreakAfterReturnType: None
BreakArrays: false
BreakBeforeBinaryOperators: All
BreakBeforeConceptDeclarations: Always
BreakBeforeBraces: Custom
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakBinaryOperations: Never
BreakConstructorInitializers: BeforeComma
BreakFunctionDefinitionParameters: false
BreakInheritanceList: BeforeComma
BreakStringLiterals: true
BreakTemplateDeclarations: Yes
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
Expand All @@ -109,27 +154,34 @@ IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<[[:alpha:]_]*>$'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^<boost/'
Priority: 5
SortPriority: 0
CaseSensitive: false
- Regex: '^<dplx/dp[/\.].*'
Priority: 29
SortPriority: 0
CaseSensitive: true
- Regex: '^<dplx/.*'
Priority: 27
SortPriority: 0
CaseSensitive: true
- Regex: '^<.*'
Priority: 20
SortPriority: 0
CaseSensitive: false
- Regex: '^".*'
Priority: 30
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '(\.test)?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: false
IndentExportBlock: false
IndentExternBlock: NoIndent
IndentGotoLabels: true
IndentPPDirectives: None
Expand All @@ -148,11 +200,16 @@ IntegerLiteralSeparator:
HexMinDigits: 5
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
KeepEmptyLines:
AtEndOfFile: false
AtStartOfBlock: true
AtStartOfFile: true
KeepFormFeed: true
LambdaBodyIndentation: Signature
LineEnding: LF
MacroBlockBegin: ''
MacroBlockEnd: ''
MainIncludeChar: Quote
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
Expand All @@ -163,9 +220,11 @@ ObjCSpaceBeforeProtocolList: true
PackConstructorInitializers: Never
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakBeforeMemberAccess: 150
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakScopeResolution: 500
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
Expand All @@ -175,13 +234,16 @@ PointerAlignment: Right
PPIndentWidth: -1
QualifierAlignment: Right
ReferenceAlignment: Pointer
ReflowComments: true
ReflowComments: Always
RemoveBracesLLVM: false
RemoveSemicolon: false # TODO: evaluate
RemoveEmptyLinesInUnwrappedLines: true
RemoveParentheses: Leave
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SkipMacroDefinitionBody: false
SortIncludes: CaseInsensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
Expand All @@ -194,6 +256,7 @@ SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeJsonColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions: # this is ignored due to SpaceBeforeParens != "Custom"
AfterControlStatements: true
Expand All @@ -202,33 +265,40 @@ SpaceBeforeParensOptions: # this is ignored due to SpaceBeforeParens != "Custom"
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
AfterPlacementOperator: true
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParentheses: false
SpacesInParens: Never
SpacesInParensOptions:
ExceptDoubleParentheses: false
InCStyleCasts: false
InConditionalStatements: false
InEmptyParentheses: false
Other: false
SpacesInSquareBrackets: false
Standard: Latest
StatementAttributeLikeMacros:
StatementMacros:
TableGenBreakInsideDAGArg: DontBreak
TabWidth: 4
UseTab: Never
VerilogBreakBetweenInstancePorts: true
WhitespaceSensitiveMacros:
- BOOST_PP_STRINGIZE
- CF_SWIFT_NAME
- NS_SWIFT_NAME
- PP_STRINGIZE
- STRINGIZE
WrapNamespaceBodyWithEmptyLines: Leave
...

18 changes: 18 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,29 +1,47 @@
---
# bugprone-forward-declaration-namespace generates a false positive for boost
# clang-analyzer-optin.core.EnumCastOutOfRange I disagree.
# cppcoreguidelines-avoid-magic-numbers aliases readability-magic-numbers
# cppcoreguidelines-avoid-c-arrays aliases modernize-avoid-c-arrays
# cppcoreguidelines-missing-std-forward doesn't recognize equivalent static casts
# cppcoreguidelines-rvalue-reference-param-not-moved doesn't recognize equivalent static casts
# cppcoreguidelines-special-member-functions is overly explicit and verbose
# cppcoreguidelines-use-default-member-init I disagree.
# clang-analyzer-core.uninitialized.Assign happens to choke on OUTCOME_TRY
# modernize-use-designated-initializers interacts badly with our test data tables
# readability-redundant-inline-specifier doesn't consider MSVC /Ob1
Checks: >
boost-*,
-boost-use-ranges,
bugprone-*,
-bugprone-easily-swappable-parameters,
-bugprone-forward-declaration-namespace,
clang-analyzer-*,
-clang-analyzer-core.uninitialized.Assign,
-clang-analyzer-optin.core.EnumCastOutOfRange,
clang-diagnostic-*,
cppcoreguidelines-*,
-cppcoreguidelines-avoid-c-arrays,
-cppcoreguidelines-avoid-do-while,
-cppcoreguidelines-missing-std-forward,
-cppcoreguidelines-rvalue-reference-param-not-moved,
-cppcoreguidelines-special-member-functions,
-cppcoreguidelines-use-default-member-init,
modernize-*,
-modernize-avoid-c-arrays,
-cppcoreguidelines-avoid-do-while,
-modernize-use-default-member-init,
-modernize-use-designated-initializers,
-modernize-use-ranges,
performance-*,
-performance-enum-size,
portability-*,
-portability-template-virtual-member-function,
readability-*,
-readability-identifier-length,
-readability-magic-numbers,
-readability-named-parameter,
-readability-redundant-inline-specifier,
-readability-redundant-member-init,
-readability-static-accessed-through-instance
WarningsAsErrors: true
Expand Down
2 changes: 1 addition & 1 deletion .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Changes here will be overwritten by Copier
_commit: v0.3.4
_commit: v0.4.0
_src_path: gh:deeplex/copier-cpp
email: henrik@gassmann.onl
full_name: Henrik Steffen Gaßmann
Expand Down
28 changes: 22 additions & 6 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,37 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/cpp
{
"name": "C++",
"name": "Deeplex | C++",
"image": "ghcr.io/deeplex/devcontainer-cpp:ubuntu-24.04",
"customizations": {
"vscode": {
"extensions": [
// general editor utility
"EditorConfig.EditorConfig",
// GitHub integration
"github.vscode-github-actions",
"GitHub.vscode-pull-request-github",
// C++
"llvm-vs-code-extensions.vscode-clangd",
"ms-vscode.cmake-tools",
// sphinx
"lextudio.restructuredtext",
"ms-python.python",
"ms-vscode.cpptools",
"ms-vscode.cmake-tools",
"trond-snekvik.simple-rst",
"twxs.cmake",
]
}
},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": true,
"installOhMyZsh": true,
"installOhMyZshConfig": true,
"upgradePackages": true,
"username": "vscode"
},
"ghcr.io/devcontainers/features/python:1": {
"version": "os-provided",
"installTools": true,
"toolsToInstall": "copier,pipenv"
}
},
"postCreateCommand": "cd ${containerWorkspaceFolder}/docs && pipenv sync --dev",
}
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# style: Reformat sources with clang-format-16
581f623d89802e5be3982df44dad979feeb6cf8d
# style: reformat sources with clang-format v20
132b0409fe81d68b611d09316f1ed92890a77f25
Loading
Loading