---
# Many of these checks are disabled only because the code hasn't been
# cleaned up yet. Pull requests welcomed.
Checks: >
  bugprone-*,
  -bugprone-branch-clone,
  -bugprone-easily-swappable-parameters,
  -bugprone-narrowing-conversions,
  cert-*,
  clang-analyzer-*,
  cppcoreguidelines-*,
  -cppcoreguidelines-avoid-magic-numbers,
  -cppcoreguidelines-macro-usage,
  -cppcoreguidelines-narrowing-conversions,
  -cppcoreguidelines-non-private-member-variables-in-classes,
  -cppcoreguidelines-owning-memory,
  -cppcoreguidelines-pro-bounds-constant-array-index,
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
  -cppcoreguidelines-pro-type-const-cast,
  google-readability-*,
  google-runtime-operator,
  hicpp-*,
  -hicpp-multiway-paths-covered,
  -hicpp-signed-bitwise,
  misc-*,
  -misc-no-recursion,
  -misc-non-private-member-variables-in-classes,
  modernize-*,
  -modernize-use-trailing-return-type, # keep
  performance-*,
  readability-*,
  -readability-convert-member-functions-to-static,
  -readability-function-cognitive-complexity,
  -readability-identifier-length,
  -readability-implicit-bool-conversion,
  -readability-magic-numbers,
  -readability-redundant-access-specifiers, # keep: 'private' vs 'private slots'

CheckOptions:
  - { key: readability-identifier-naming.ClassCase,                value: CamelCase  }
  - { key: readability-identifier-naming.ClassMethodCase,          value: camelBack  }
  - { key: readability-identifier-naming.ConstexprVariableCase,    value: CamelCase  }
  - { key: readability-identifier-naming.EnumConstantCase,         value: UPPER_CASE }
  - { key: readability-identifier-naming.FunctionCase,             value: camelBack  }
  - { key: readability-identifier-naming.GlobalConstantCase,       value: CamelCase  }
  - { key: readability-identifier-naming.MemberConstantCase,       value: CamelCase  }
  - { key: readability-identifier-naming.NamespaceCase,            value: lower_case }
  - { key: readability-identifier-naming.PrivateMemberSuffix,      value: _          }
  - { key: readability-identifier-naming.ProtectedMemberSuffix,    value: _          }
  - { key: readability-identifier-naming.StaticConstantCase,       value: CamelCase  }
  - { key: readability-identifier-naming.StructCase,               value: CamelCase  }
  - { key: readability-identifier-naming.TemplateParameterCase,    value: CamelCase  }
  - { key: readability-identifier-naming.VariableCase,             value: lower_case }