---
Checks: >
  clang-diagnostic-*,
  clang-analyzer-*,
  bugprone-*,
  performance-*,
  modernize-*,
  cppcoreguidelines-*,
  readability-*,
  concurrency-*,
  misc-*,
  portability-*,
  -portability-avoid-pragma-once,
  -llvm-header-guard,
  -cppcoreguidelines-pro-bounds-constant-array-index,
  -cppcoreguidelines-avoid-magic-numbers,
  -readability-magic-numbers,
  -readability-braces-around-statements,
  -bugprone-easily-swappable-parameters,
  -cppcoreguidelines-pro-type-union,
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
  -modernize-use-trailing-return-type,
  -misc-non-private-member-variables-in-classes,
  -readability-identifier-length

# Только заголовки проекта из src/. Пути приходят абсолютными; сгенерированные файлы
# сборки (moc, словари) и сторонние заголовки под фильтр не попадают.
HeaderFilterRegex: '.*/src/(backend/|frontend/)?[^/]+\.hpp$'

WarningsAsErrors: >
  clang-diagnostic-*,
  clang-analyzer-*,
  bugprone-*,
  performance-*,
  concurrency-*,
  misc-const-correctness,
  cppcoreguidelines-owning-memory

ExtraArgs: ['-Wall', '-Wextra', '-Wunused-lambda-capture']

CheckOptions:
  readability-identifier-naming.ClassCase: CamelCase
  readability-identifier-naming.StructCase: CamelCase
  readability-identifier-naming.VariableCase: lower_case
  readability-identifier-naming.ParameterCase: lower_case
  readability-identifier-naming.PublicMemberCase: lower_case
  readability-identifier-naming.PrivateMemberCase: lower_case
  readability-identifier-naming.PrivateMemberSuffix: _
  readability-identifier-naming.ProtectedMemberCase: lower_case
  readability-identifier-naming.ProtectedMemberSuffix: _
  readability-identifier-naming.MacroDefinitionCase: UPPER_CASE
  readability-identifier-naming.GlobalConstantCase: UPPER_CASE
  modernize-use-nodiscard.ReplacementString: '[[nodiscard]]'
  bugprone-unchecked-optional-access.IgnoreSmartPointerDereference: false
...
