---
HeaderFilterRegex: .*/libtransmission/.*

# TODO: Enable `portability-template-virtual-member-function` after https://github.com/llvm/llvm-project/issues/139031 is fixed
# TODO: Enable `cppcoreguidelines-pro-bounds-pointer-arithmetic` after converting all pointers to std::span
# PRs welcome to fix & re-enable any of these explicitly-disabled checks
Checks: >
  bugprone-*,
  -bugprone-branch-clone,
  -bugprone-easily-swappable-parameters,
  -bugprone-implicit-widening-of-multiplication-result,
  -bugprone-narrowing-conversions,
  cert-*,
  -cert-err58-cpp,
  -cert-int09-c,
  clang-analyzer-*,
  cppcoreguidelines-*,
  -cppcoreguidelines-avoid-c-arrays,
  -cppcoreguidelines-avoid-const-or-ref-data-members,
  -cppcoreguidelines-avoid-magic-numbers,
  -cppcoreguidelines-avoid-non-const-global-variables,
  -cppcoreguidelines-macro-usage,
  -cppcoreguidelines-narrowing-conversions,
  -cppcoreguidelines-non-private-member-variables-in-classes,
  -cppcoreguidelines-owning-memory,
  -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
  -cppcoreguidelines-pro-bounds-constant-array-index,
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
  -cppcoreguidelines-pro-type-const-cast,
  -cppcoreguidelines-pro-type-reinterpret-cast,
  -cppcoreguidelines-pro-type-union-access,
  -cppcoreguidelines-pro-type-vararg,
  google-explicit-constructor,
  misc-*,
  -misc-include-cleaner,
  -misc-no-recursion,
  -misc-non-private-member-variables-in-classes,
  modernize-*,
  -modernize-use-ranges,
  -modernize-use-trailing-return-type,
  performance-*,
  -performance-move-const-arg,
  portability-*,
  -portability-template-virtual-member-function,
  readability-*,
  -readability-enum-initial-value,
  -readability-function-cognitive-complexity,
  -readability-identifier-length,
  -readability-magic-numbers,
  -readability-qualified-auto,

CheckOptions:
  - { key: cppcoreguidelines-avoid-do-while.IgnoreMacros,                           value: true       }
  - { key: cppcoreguidelines-rvalue-reference-param-not-moved.IgnoreUnnamedParams,  value: true       }
  - { key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor,         value: true       }
  - { key: readability-identifier-naming.ConstexprVariableCase,                     value: CamelCase  }
  - { key: readability-identifier-naming.ParameterCase,                             value: lower_case }
  - { key: readability-identifier-naming.PrivateMemberSuffix,                       value: _          }
  - { key: readability-identifier-naming.ProtectedMemberSuffix,                     value: _          }
  - { key: readability-identifier-naming.VariableCase,                              value: lower_case }
  - { key: readability-implicit-bool-conversion.UseUpperCaseLiteralSuffix,          value: true       }
