Checks: >
  -*,
  bugprone-*,
  performance-*,
  readability-*,
  modernize-*,
  cppcoreguidelines-*,
  clang-analyzer-*,

  -modernize-use-auto,
  -modernize-use-trailing-return-type,
  -cppcoreguidelines-avoid-magic-numbers,
  -readability-magic-numbers,
  -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
  -cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,
  -readability-math-missing-parentheses,
  -readability-identifier-length,
  -readability-identifier-naming,
  -bugprone-easily-swappable-parameters,

WarningsAsErrors: '*'

HeaderFilterRegex: '^(?!.*hyrec/).*'

CheckOptions:

  # Naming conventions
  - key: readability-identifier-naming.VariableCase
    value: lower_case

  - key: readability-identifier-naming.LocalVariableCase
    value: lower_case

  - key: readability-identifier-naming.ParameterCase
    value: lower_case

  - key: readability-identifier-naming.MemberCase
    value: lower_case

  - key: readability-identifier-naming.MemberSuffix
    value: _

  - key: readability-identifier-naming.ClassCase
    value: CamelCase

  - key: readability-identifier-naming.StructCase
    value: CamelCase

  - key: readability-identifier-naming.MethodCase
    value: CamelCase

  - key: readability-identifier-naming.ConstantCase
    value: CamelCase

  - key: readability-identifier-naming.GlobalConstantPrefix
    value: k

  - key: readability-identifier-naming.StaticConstantPrefix
    value: s

