---
HeaderFilterRegex: .*/qt/.*

# 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-*,
  -cert-int09-c,
  clang-analyzer-*,
  cppcoreguidelines-*,
  -cppcoreguidelines-avoid-const-or-ref-data-members,
  -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-include-cleaner,
  -misc-no-recursion,
  -misc-non-private-member-variables-in-classes,
  modernize-*,
  -modernize-loop-convert,
  -modernize-use-designated-initializers,
  -modernize-use-ranges,
  -modernize-use-trailing-return-type, # keep
  performance-*,
  readability-*,
  -readability-container-contains,
  -readability-convert-member-functions-to-static,
  -readability-enum-initial-value,
  -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: cppcoreguidelines-avoid-do-while.IgnoreMacros,                   value: true       }
  - { 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 }
  - { key: readability-implicit-bool-conversion.UseUpperCaseLiteralSuffix,  value: true       }
