# PDF Engine static analysis + naming enforcement.
# Naming rules mirror the engineering blueprint section 16.1:
#   PascalCase -> types,  camelCase -> functions,  snake_case -> file names.
# clang-tidy enforces identifier casing below; file-name casing is a convention
# checked in code review.
---
Checks: >
  -*,
  bugprone-*,
  performance-*,
  modernize-*,
  readability-identifier-naming,
  readability-redundant-*,
  cppcoreguidelines-pro-type-member-init,
  -modernize-use-trailing-return-type,
  -bugprone-easily-swappable-parameters

WarningsAsErrors: ''
HeaderFilterRegex: 'engine/(include|src)/.*'

CheckOptions:
  - 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.TypeAliasCase
    value: CamelCase
  - key: readability-identifier-naming.FunctionCase
    value: camelBack
  - key: readability-identifier-naming.MethodCase
    value: camelBack
  - key: readability-identifier-naming.NamespaceCase
    value: lower_case
  - key: readability-identifier-naming.VariableCase
    value: lower_case
  - key: readability-identifier-naming.ParameterCase
    value: lower_case
  - key: readability-identifier-naming.PrivateMemberCase
    value: lower_case
  - key: readability-identifier-naming.PrivateMemberSuffix
    value: '_'
  - key: readability-identifier-naming.ConstantCase
    value: lower_case
  - key: readability-identifier-naming.MacroDefinitionCase
    value: UPPER_CASE
  - key: readability-identifier-naming.EnumConstantCase
    value: CamelCase
