ladybird/.clang-tidy
Andreas Kling 7d6bab2256 Meta: Disable the misc-no-recursion check in clang-tidy
We use recursive algorithms all over the place, and this check makes
it hard to read those algorithms in CLion, since it draws squiggles
under everything.
2023-03-18 16:34:41 +01:00

55 lines
2.7 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.
# 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-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-no-recursion,
-misc-non-private-member-variables-in-classes,
-performance-noexcept-move-constructor,
-performance-no-int-to-ptr,
-readability-braces-around-statements,
-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
- key: readability-function-cognitive-complexity.Threshold
value: 100 # FIXME: Lower this (30? 50?), and refactor complex functions