# vim: filetype=yaml

Checks: >
  -*,
  bugprone-*,
  clang-analyzer-*,
  clang-diagnostic-*,
  concurrency-*,
  cppcoreguidelines-*,
  misc-*,
  modernize-*,
  performance-*,
  portability-*,
  readability-*,
  -cppcoreguidelines-avoid-c-arrays,
  -cppcoreguidelines-avoid-magic-numbers,
  -cppcoreguidelines-c-copy-assignment-signature,
  -cppcoreguidelines-explicit-virtual-functions,
  -cppcoreguidelines-narrowing-conversions,
  -cppcoreguidelines-non-private-member-variables-in-classes,
  -modernize-use-nodiscard,
  -modernize-use-trailing-return-type,
  -readability-named-parameter,

CheckOptions:
  - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
    value: true
  - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctions
    value: true
  - key: >-
      misc-non-private-member-variables-in-classes
      .IgnoreClassesWithAllMemberVariablesBeingPublic
    value: true
  - key: modernize-use-auto.MinTypeNameLength
    value: 20
  - key: readability-function-size.StatementThreshold
    value: 100
  - key: readability-function-size.BranchThreshold
    value: 20
  - key: readability-function-size.ParameterThreshold
    value: 10
  - key: readability-function-size.NestingThreshold
    value: 5
  - {key: readability-identifier-naming.ClassCase,                  value: CamelCase}
  - {key: readability-identifier-naming.ConstexprVariableCase,      value: UPPER_CASE}
  - {key: readability-identifier-naming.EnumCase,                   value: CamelCase}
  - {key: readability-identifier-naming.EnumConstantCase,           value: UPPER_CASE}
  - {key: readability-identifier-naming.FunctionCase,               value: lower_case}
  - {key: readability-identifier-naming.GlobalConstantCase,         value: UPPER_CASE}
  - {key: readability-identifier-naming.MemberCase,                 value: lower_case}
  - {key: readability-identifier-naming.NamespaceCase,              value: lower_case}
  - {key: readability-identifier-naming.NamespaceIgnoredRegexp,     value: ^Tango$}
  - {key: readability-identifier-naming.ParameterCase,              value: lower_case}
  - {key: readability-identifier-naming.TemplateParameterCase,      value: CamelCase}
  - {key: readability-identifier-naming.TypeAliasCase,              value: CamelCase}
  - {key: readability-identifier-naming.UnionCase,                  value: CamelCase}
  - {key: readability-identifier-naming.ValueTemplateParameterCase, value: lower_case}
  - {key: readability-identifier-naming.VariableCase,               value: lower_case}
