---
Checks: >
  -*,
  bugprone-*,
  -bugprone-easily-swappable-parameters,
  -bugprone-narrowing-conversions,
  -bugprone-reserved-identifier,
  -bugprone-exception-escape,
  performance-*,
  -performance-avoid-endl,
  readability-identifier-naming,
  readability-redundant-*,
  readability-misleading-indentation,
  readability-container-size-empty,
  readability-make-member-function-const,
  misc-unused-using-decls,
  misc-redundant-expression,

WarningsAsErrors: ''

HeaderFilterRegex: 'include/rex/.*'

CheckOptions:
  # Classes and structs
  - key: readability-identifier-naming.ClassCase
    value: CamelCase
  - key: readability-identifier-naming.StructCase
    value: CamelCase

  # Functions and methods
  - key: readability-identifier-naming.FunctionCase
    value: CamelCase
  - key: readability-identifier-naming.MethodCase
    value: CamelCase

  # Variables
  - key: readability-identifier-naming.VariableCase
    value: lower_case
  - key: readability-identifier-naming.ParameterCase
    value: lower_case
  - key: readability-identifier-naming.LocalVariableCase
    value: lower_case

  # Member variables
  - key: readability-identifier-naming.MemberCase
    value: lower_case
  - key: readability-identifier-naming.MemberSuffix
    value: '_'
  - key: readability-identifier-naming.PrivateMemberCase
    value: lower_case
  - key: readability-identifier-naming.PrivateMemberSuffix
    value: '_'
  - key: readability-identifier-naming.ProtectedMemberCase
    value: lower_case
  - key: readability-identifier-naming.ProtectedMemberSuffix
    value: '_'

  # Constants
  - key: readability-identifier-naming.ConstexprVariableCase
    value: CamelCase
  - key: readability-identifier-naming.ConstexprVariablePrefix
    value: 'k'
  - key: readability-identifier-naming.StaticConstantCase
    value: CamelCase
  - key: readability-identifier-naming.StaticConstantPrefix
    value: 'k'
  - key: readability-identifier-naming.GlobalConstantCase
    value: CamelCase
  - key: readability-identifier-naming.GlobalConstantPrefix
    value: 'k'

  # Enum constants
  - key: readability-identifier-naming.EnumConstantCase
    value: CamelCase
  - key: readability-identifier-naming.EnumConstantPrefix
    value: 'k'

  # Enums
  - key: readability-identifier-naming.EnumCase
    value: CamelCase

  # Namespaces
  - key: readability-identifier-naming.NamespaceCase
    value: lower_case

  # Template parameters
  - key: readability-identifier-naming.TemplateParameterCase
    value: CamelCase
  - key: readability-identifier-naming.TypeTemplateParameterCase
    value: CamelCase

  # Type aliases
  - key: readability-identifier-naming.TypeAliasCase
    value: CamelCase
  - key: readability-identifier-naming.TypedefCase
    value: CamelCase

  # Macros
  - key: readability-identifier-naming.MacroDefinitionCase
    value: UPPER_CASE
...
