etl/.clang-tidy
Roland Reichwein 652034603b
Add test/run-clang-tidy.sh (#1409)
* Print test names at test time (#1343)

* Fix operator| conflict with std::ranges (#1395)

* Add test/run-clang-tidy.sh

Also, add .clang-tidy configuration file.

In test/syntax_check/CMakeLists.txt, make ETL headers non-system headers.

Added .github/workflow/clang-tidy.yaml. Does not break the build for now
on clang-tidy findings/warnings.

Fix syntax issues

Those issues were uncovered by making ETL headers
non-system headers in test/syntax_checks/CMakeLists.txt

* Fix macro syntax

---------

Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2026-05-18 08:01:17 +01:00

183 lines
6.6 KiB
YAML

---
# TODO: Enable these checks in smaller steps
# cppcoreguidelines-*,
# portability-* if needed
# readability-*, -readability-magic-numbers,
# misc-*, -misc-no-recursion,
# modernize-*, -modernize-use-trailing-return-type,
# performance-*,
Checks: >-
cert-*, -cert-dcl37-c, -cert-dcl51-cpp,
clang-analyzer-*,
bugprone-*,
-bugprone-easily-swappable-parameters,
cppcoreguidelines-pro-type-vararg,
cppcoreguidelines-pro-type-reinterpret-cast,
llvm-*,-llvm-header-guard,-llvm-include-order,
google-readability-casting
ExtraArgs: ['-Wno-unknown-warning-option']
HeaderFileExtensions: ['h', 'hpp']
HeaderFilterRegex: '.*include/etl/.*'
ImplementationFileExtensions: ['cpp']
UseColor: true
# TODO: Enable these when readability check is enabled
# CheckOptions :
# - key: readability-identifier-naming.AbstractClassCase
# value: snake_case
# - key: readability-identifier-naming.AbstractClassPrefix
# value: I
# - key: readability-identifier-naming.AbstractClassSuffix
# value: ''
# - key: readability-identifier-naming.ClassCase
# value: snake_case
# - key: readability-identifier-naming.ClassPrefix
# value: ''
# - key: readability-identifier-naming.ClassSuffix
# value: ''
# - key: readability-identifier-naming.GlobalConstantCase
# value: UPPER_CASE
# - key: readability-identifier-naming.GlobalConstantPrefix
# value: ''
# - key: readability-identifier-naming.GlobalConstantSuffix
# value: ''
# - key: readability-identifier-naming.ConstantCase
# value: snake_case
# - key: readability-identifier-naming.ConstantPrefix
# value: ''
# - key: readability-identifier-naming.ConstantSuffix
# value: ''
# - key: readability-identifier-naming.ConstantMemberCase
# value: snake_case
# - key: readability-identifier-naming.ConstantMemberPrefix
# value: k
# - key: readability-identifier-naming.ConstantMemberSuffix
# value: ''
# - key: readability-identifier-naming.StaticConstantCase
# value: snake_case
# - key: readability-identifier-naming.StaticConstantPrefix
# value: k
# - key: readability-identifier-naming.StaticConstantSuffix
# value: ''
# - key: readability-identifier-naming.EnumCase
# value: snake_case
# - key: readability-identifier-naming.EnumPrefix
# value: ''
# - key: readability-identifier-naming.EnumSuffix
# value: ''
# - key: readability-identifier-naming.EnumConstantCase
# value: snake_case
# - key: readability-identifier-naming.EnumConstantPrefix
# value: ''
# - key: readability-identifier-naming.EnumConstantSuffix
# value: ''
# - key: readability-identifier-naming.GlobalVariableCase
# value: snake_case
# - key: readability-identifier-naming.GlobalVariablePrefix
# value: g
# - key: readability-identifier-naming.GlobalVariableSuffix
# value: ''
# - key: readability-identifier-naming.LocalVariableCase
# value: snake_case
# - key: readability-identifier-naming.LocalVariablePrefix
# value: ''
# - key: readability-identifier-naming.LocalVariableSuffix
# value: ''
# - key: readability-identifier-naming.StructCase
# value: aNy_CasE
# - key: readability-identifier-naming.StructPrefix
# value: ''
# - key: readability-identifier-naming.StructSuffix
# value: ''
# - key: readability-identifier-naming.FunctionCase
# value: snake_case
# - key: readability-identifier-naming.FunctionPrefix
# value: ''
# - key: readability-identifier-naming.FunctionSuffix
# value: ''
# - key: readability-identifier-naming.MethodCase
# value: snake_case
# - key: readability-identifier-naming.MethodPrefix
# value: ''
# - key: readability-identifier-naming.MethodSuffix
# value: ''
# - key: readability-identifier-naming.ParameterCase
# value: snake_case
# - key: readability-identifier-naming.PrivateMethodCase
# value: snake_case
# - key: readability-identifier-naming.PrivateMethodPrefix
# value: ''
# - key: readability-identifier-naming.PrivateMethodSuffix
# value: ''
# - key: readability-identifier-naming.PublicMethodCase
# value: snake_case
# - key: readability-identifier-naming.PublicMethodPrefix
# value: ''
# - key: readability-identifier-naming.PublicMethodSuffix
# value: ''
# - key: readability-identifier-naming.MemberCase
# value: snake_case
# - key: readability-identifier-naming.MemberPrefix
# value: _
# - key: readability-identifier-naming.MemberSuffix
# value: ''
# - key: readability-identifier-naming.PrivateMemberCase
# value: snake_case
# - key: readability-identifier-naming.PrivateMemberPrefix
# value: _
# - key: readability-identifier-naming.PrivateMemberSuffix
# value: ''
# - key: readability-identifier-naming.PublicMemberCase
# value: snake_case
# - key: readability-identifier-naming.PublicMemberPrefix
# value: ''
# - key: readability-identifier-naming.PublicMemberSuffix
# value: ''
# - key: readability-identifier-naming.NamespaceCase
# value: lower_case
# - key: readability-identifier-naming.NamespacePrefix
# value: ''
# - key: readability-identifier-naming.NamespaceSuffix
# value: ''
# - key: readability-identifier-naming.InlineNamespaceCase
# value: lower_case
# - key: readability-identifier-naming.InlineNamespacePrefix
# value: ''
# - key: readability-identifier-naming.InlineNamespaceSuffix
# value: ''
# - key: readability-identifier-length.IgnoredParameterNames
# value: ^(n|id|a|b|x|y)$
# - key: readability-identifier-length.IgnoredLoopCounterNames
# value: ^[ijkxy_]$
# - key: readability-identifier-naming.GlobalFunctionCase
# value: snake_case
# - key: readability-identifier-naming.GlobalFunctionPrefix
# value: ''
# - key: readability-identifier-naming.GlobalFunctionSuffix
# value: ''
# - key: readability-identifier-naming.TemplateParameterCase
# value: CamelCase
# - key: readability-identifier-naming.TemplateParameterPrefix
# value: ''
# - key: readability-identifier-naming.TemplateParameterSuffix
# value: ''
# - key: readability-identifier-naming.TemplateTemplateParameterCase
# value: CamelCase
# - key: readability-identifier-naming.TemplateTemplateParameterPrefix
# value: 'TPL'
# - key: readability-identifier-naming.TemplateTemplateParameterSuffix
# value: ''
# - key: readability-identifier-naming.TypeTemplateParameterCase
# value: CamelCase
# - key: readability-identifier-naming.TypeTemplateParameterPrefix
# value: 'T'
# - key: readability-identifier-naming.TypeTemplateParameterSuffix
# value: ''
# - key: readability-identifier-naming.ValueTemplateParameterCase
# value: UPPER_CASE
# - key: readability-identifier-naming.ValueTemplateParameterPrefix
# value: ''
# - key: readability-identifier-naming.ValueTemplateParameterSuffix
# value: ''
...