1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-06-29 07:35:26 +00:00
serenity/.clang-tidy
Andrew Kaster e6762e8d4d Meta: Disable readability-function-cognitive-complexity in clang-tidy
Feedback from contributors suggests that this warning doesn't help code
quality, and is seen as noisy.
2024-02-05 08:04:24 -07:00

58 lines
2.8 KiB
YAML

---
# Globally Disabled checks:
#
# bugprone-easily-swappable-parameters: This warning is loud with no clear advice on how to fix the potential problem
# FIXME: bugprone-macro-parentheses: Enable with clang-tidy-14 when NOLINTBEGIN/NOLINTEND are available for code generating macros
# bugprone-reserved-identifier: LibC headers that show up in the header filter are part of "the implementation"
# cert-dcl37-c: Alias for bugprone-reserved-identifier
# cert-dcl51-cpp: Alias for bugprone-reserved-identifier
# cert-dcl21-cpp: No reference to this rule exists on Carnegie Mellon's SEI CERT C++ Confluence. And the suggestion is unusual
# misc-no-recursion: The project uses recursive algorithms in several places.
# misc-include-cleaner: This check is nice for cleanliness, but is very very noisy
# FIXME: misc-non-private-member-variables-in-classes: Audit uses of protected member variables to see if they really need to be protected
# performance-noexcept-move-constructor: The project does not use exceptions, so there are no such optimizations available
# performance-no-int-to-ptr: This rule flags every pointer to integer cast, which gets quite noisy. Should only be enabled on a case-by-case basis
# readability-braces-around-statements: Redundant braces around single-line conditions is against project style
# readability-function-cognitive-complexity: Most regular contributors seem to turn this one off anyway. Violations are hard to fix as well
# readability-magic-numbers: This check is very noisy in the codebase, especially in AK.
# readability-named-parameter: We frequently omit parameter names to work around -Wunused-parameter
# FIXME: readability-uppercase-literal-suffix: Enable this check, the rationale is solid but the findings are numerous
#
Checks: >
-*,
bugprone-*,
cert-*,
clang-analyzer-*,
concurrency-*,
misc-*,
performance-*,
portability-*,
readability-*,
-bugprone-easily-swappable-parameters,
-bugprone-macro-parentheses,
-bugprone-reserved-identifier,-cert-dcl37-c,-cert-dcl51-cpp,
-cert-dcl21-cpp,
-misc-include-cleaner,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
-misc-use-anonymous-namespace,
-performance-noexcept-move-constructor,
-performance-no-int-to-ptr,
-readability-braces-around-statements,
-readability-function-cognitive-complexity,
-readability-identifier-length,
-readability-magic-numbers,
-readability-named-parameter,
-readability-uppercase-literal-suffix,
-readability-use-anyofallof,
WarningsAsErrors: ''
HeaderFilterRegex: 'AK|Userland|Kernel|Tests'
FormatStyle: none
CheckOptions:
- key: bugprone-dangling-handle.HandleClasses
value: 'AK::StringView;AK::Span'
- key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
value: true
- key: readability-implicit-bool-conversion.AllowPointerConditions
value: true