osm2pgsql/.clang-tidy

106 lines
4.2 KiB
YAML

---
Checks: '*,-abseil-*,-altera-*,-android-cloexec-*,-bugprone-easily-swappable-parameters,-cert-err58-cpp,-cppcoreguidelines-avoid-do-while,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-owning-memory,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-type-cstyle-cast,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-pro-type-static-cast-downcast,-cppcoreguidelines-pro-type-vararg,-fuchsia-*,-google-readability-casting,-google-readability-todo,-hicpp-named-parameter,-hicpp-no-array-decay,-hicpp-vararg,-llvm-include-order,-llvm-header-guard,-llvmlibc-*,-misc-include-cleaner,-misc-no-recursion,-misc-use-anonymous-namespace,-modernize-use-nodiscard,-modernize-use-trailing-return-type,-readability-identifier-length,-readability-implicit-bool-conversion,-readability-named-parameter,-readability-magic-numbers'
#
# cppcoreguidelines-pro-type-cstyle-cast
# google-build-using-namespace
# google-readability-casting
# llvm-header-guard
# llvm-include-order
# hicpp-named-parameter
# readability-named-parameter
# Differ from our style guidelines
#
# abseil-*
# Not applicable.
#
# altera-*
# Not applicable.
#
# android-cloexec-*
# O_CLOEXEC isn't available on Windows
#
# bugprone-easily-swappable-parameters
# Can't always be avoided.
#
# cert-err58-cpp
# There are many of these in the test code, most of them from the Catch
# framework. Difficult to avoid.
#
# cppcoreguidelines-avoid-do-while (new in clang-tidy-16)
# Its a good idea to avoid them when there are better alternatives, but
# sometimes they are the cleanest alternative.
#
# cppcoreguidelines-avoid-magic-numbers
# readability-magic-numbers
# We have a lot of these and should probably at least fix some. But remove
# it for the time being because with it we can't see the forest for the
# trees. (TODO)
#
# cppcoreguidelines-avoid-non-const-global-variables
# Not wrong to avoid those, but we have a few that are hard to avoid.
# Also this warning is triggered many times by constructs in the Catch test
# framework.
#
# cppcoreguidelines-owning-memory
# cppcoreguidelines-pro-bounds-array-to-pointer-decay
# cppcoreguidelines-pro-bounds-pointer-arithmetic
# cppcoreguidelines-pro-type-static-cast-downcast
# cppcoreguidelines-pro-type-vararg
# hicpp-no-array-decay
# hicpp-vararg
# When you need them, you need them
#
# fuchsia-*
# Very specific and way too strict
#
# google-readability-todo
# We are not that organized
#
# llvmlibc-*
# Not applicable
#
# misc-include-cleaner (new in clang-tidy-17)
# Many instances of this warning, disabled for now. (TODO)
#
# misc-no-recursion
# Nothing wrong with recursion
#
# misc-use-anonymous-namespace (new in clang-tidy-16)
# Lots of these, need some time to fix. (TODO)
#
# modernize-use-nodiscard
# Doesn't really make the code clearer if it is all littered with
# [[nodiscard]]. Looks like this warning is more suited for a library
# than for normal code.
#
# modernize-use-trailing-return-type
# We are not that modern...
#
# readability-identifier-length
# Generally not a bad idea, but there are many cases where short names
# for (local) vars are okay.
#
# readability-implicit-bool-conversion
# Readability is a matter of opinion here
#
#WarningsAsErrors: '*'
HeaderFilterRegex: '\/src\/'
CheckOptions:
- key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
value: true
- key: hicpp-special-member-functions.AllowSoleDefaultDtor
value: true
- key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
value: true
- key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
value: true
- key: readability-function-cognitive-complexity.Threshold
value: 100
- key: readability-function-cognitive-complexity.IgnoreMacros
value: true
- key: cppcoreguidelines-rvalue-reference-param-not-moved.AllowPartialMove
value: true
- key: bugprone-empty-catch.IgnoreCatchWithKeywords
value: "@todo;@fixme;exception ignored on purpose"
...