---
Checks: >
  -*,
  bugprone-*,
  modernize-*,
  performance-*,
  readability-*,
  -modernize-use-trailing-return-type,
  -readability-magic-numbers,
  -readability-else-after-return,
  -readability-braces-around-statements,
  -readability-avoid-const-params-in-decls,
  -readability-named-parameter,
  -readability-implicit-bool-conversion,
  -readability-use-anyofallof,
  -bugprone-easily-swappable-parameters,
  -bugprone-exception-escape,
  -bugprone-narrowing-conversions,
  -modernize-use-nodiscard,

WarningsAsErrors: ""

HeaderFilterRegex: "(src|tests)/.*"

CheckOptions:
  # Naming conventions matching project style
  - key: readability-identifier-naming.ClassCase
    value: CamelCase
  - key: readability-identifier-naming.StructCase
    value: CamelCase
  - key: readability-identifier-naming.EnumCase
    value: CamelCase
  - key: readability-identifier-naming.EnumConstantCase
    value: CamelCase
  - key: readability-identifier-naming.TemplateParameterCase
    value: CamelCase
  - key: readability-identifier-naming.TypeAliasCase
    value: CamelCase
  - key: readability-identifier-naming.FunctionCase
    value: lower_case
  - key: readability-identifier-naming.MethodCase
    value: lower_case
  - key: readability-identifier-naming.VariableCase
    value: lower_case
  - key: readability-identifier-naming.ParameterCase
    value: lower_case
  - key: readability-identifier-naming.MemberCase
    value: lower_case
  - key: readability-identifier-naming.NamespaceCase
    value: lower_case
