---
#
# This is the BornAgain configuration for clang-tidy.
#
# To invoke clang-tidy, run
#   cmake -DBORNAGAIN_TIDY=ON -DBORNAGAIN_PYTHON=OFF -DBORNAGAIN_GUI=OFF ..
#   make
#
# Below, we select all checks ('*'), then deselect quite a number of them.
#
# As we are not aware of an official way to insert comments in a long string literal,
# we do a dirty little trick: we write comments as if they were no-check specifiers.
#
Checks: '*,

-SectionComment_We_disagree_with_the_following_checks__They_shall_remain_permanently_disabled,

-*-braces-around-statements,
-*-convert-member-functions-to-static,
-*-implicit-bool-conversion,
-*-magic-numbers,
-*-named-parameter,
-*-trailing-return*,
-clang-analyzer-alpha*,
-cert-err58-cpp,
-cert-err61-cpp,
-clang-analyzer-alpha.deadcode.UnreachableCode,
-clang-analyzer-security.insecureAPI.strcpy,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-pro-bounds-constant-array-index,
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
-cppcoreguidelines-pro-type-member-init,
-cppcoreguidelines-pro-type-reinterpret-cast,
-cppcoreguidelines-pro-type-vararg,
-fuchsia-default-arguments-calls,
-fuchsia-overloaded-operator,
-fuchsia-trailing-return,
-google-build-using-namespace,
-google-default-arguments,
-google-readability-todo,
-google-runtime-int,
-hicpp-vararg,
-misc-throw-by-value-catch-by-reference,
-performance-unnecessary-value-param,

-SectionComment_Resolving_the_following_checks_would_be_too_much_work_right_now,

-cppcoreguidelines-owning-memory,

-SectionComment_Temporarily_disabled_checks__We_need_to_investigate_them_one_by_one,

-*-avoid-c-arrays,
-*-avoid-goto,
-*-container-size-empty,
-*-isolate-declaration,
-*-member-init,
-*-namespace-comment,
-*-narrowing-conversions,
-*-owning-memory,
-*-pro-bounds-array-to-pointer-decay,
-*-simplify-boolean-expr,
-*-special-member-function*,
-*-static-definition-in-anonymous-namespace,
-*-statically-constructed-objects,
-*-use-auto,
-*-use-emplace,
-*-use-override,
-bugprone-argument-comment,
-bugprone-copy-constructor-init,
-bugprone-exception-escape,
-bugprone-fold-init-type,
-bugprone-misplaced-widening-cast,
-bugprone-narrowing-conversions,
-bugprone-unhandled-self-assignment,
-bugprone-unused-return-value,
-bugprone-use-after-move,
-bugprone-parent-virtual-call,
-cert-dcl21-cpp,
-cert-msc30-c,
-cert-msc50-cpp,
-cert-oop54-cpp,
-clang-analyzer-core.CallAndMessage,
-clang-analyzer-cplusplus.NewDeleteLeaks,
-cppcoreguidelines-explicit-virtual-functions,
-cppcoreguidelines-macro-usage,
-cppcoreguidelines-pro-type-const-cast,
-cppcoreguidelines-pro-type-cstyle-cast,
-cppcoreguidelines-pro-type-static-cast-downcast,
-fuchsia-default-arguments-declarations,
-google-explicit-constructor,
-google-readability-avoid-underscore-in-googletest-name,
-google-readability-casting,
-google-runtime-references,
-hicpp-explicit-conversions,
-hicpp-move-const-arg,
-hicpp-multiway-paths-covered,
-hicpp-no-array-decay,
-hicpp-noexcept-move,
-hicpp-signed-bitwise,
-hicpp-uppercase-literal-suffix,
-hicpp-use-equals-default,
-hicpp-use-nullptr,
-misc-non-private-member-variables-in-classes,
-misc-uniqueptr-reset-release,
-modernize-loop-convert,
-modernize-loop-convert,
-modernize-make-shared,
-modernize-make-unique,
-modernize-pass-by-value,
-modernize-raw-string-literal,
-modernize-return-braced-init-list,
-modernize-use-equals-default,
-modernize-use-nodiscard,
-modernize-use-nullptr,
-modernize-use-using,
-performance-for-range-copy,
-performance-inefficient-vector-operation,
-performance-move-const-arg,
-performance-noexcept-move-constructor,
-performance-unnecessary-value-param,
-performance-unnecessary-copy-initialization,
-readability-avoid-const-params-in-decls,
-readability-const-return-type,
-readability-delete-null-pointer,
-readability-else-after-return,
-readability-inconsistent-declaration-parameter-name,
-readability-non-const-parameter,
-readability-redundant-control-flow,
-readability-redundant-declaration,
-readability-redundant-string-cstr,
-readability-uppercase-literal-suffix,
-readability-qualified-auto,
-clang-analyzer-core.NonNullParamChecker,
-llvmlibc-implementation-in-namespace,
-llvmlibc-callee-namespace,
-llvm-qualified-auto,
'
