diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000000..489819d4d7 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,48 @@ +--- +# 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 +# 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-non-private-member-variables-in-classes, + -performance-noexcept-move-constructor, + -performance-no-int-to-ptr, + -readability-braces-around-statements, + -readability-magic-numbers, + -readability-named-parameter, + -readability-uppercase-literal-suffix, +WarningsAsErrors: '' +HeaderFilterRegex: 'AK|Userland|Kernel|Tests' +FormatStyle: none +CheckOptions: + - 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 diff --git a/AK/.clang-tidy b/AK/.clang-tidy new file mode 100644 index 0000000000..3c05830063 --- /dev/null +++ b/AK/.clang-tidy @@ -0,0 +1,7 @@ +--- +# Disabled checks: +# +# misc-unused-using-decls: AK exports all public names into the global namespace per project style +# +Checks: '-misc-unused-using-decls' +InheritParentConfig: true