# House checks. Adopted from PaulDB/tui-framework unchanged EXCEPT
# HeaderFilterRegex.
#
# The original was '.*', which makes clang-tidy analyse every transitively
# included header -- including the standard library and the vendored 363 KB
# doctest.h. Running live through clangd, that floods the editor with
# diagnostics you cannot act on. Scoped to this project's own source tree
# instead; third_party/ is a sibling directory and so is excluded by construction.
# Zwei projektspezifische Abschaltungen, begruendet:
#
#   -misc-no-recursion     Ein Recursive-Descent-Parser IST wechselseitig
#                          rekursiv (libpda/calculator.cpp). Das ist die
#                          Bauform, nicht ein Versehen; die Tiefe ist durch
#                          die Klammertiefe der Eingabe begrenzt.
#
#   -performance-enum-size Schlaegt bei JEDEM enum an und will std::uint8_t
#                          als Basistyp. Gewinn: drei Byte in einem
#                          Rueckgabewert. Preis: eine ABI-Festlegung und
#                          Laerm in jeder Datei.
#
# ACHTUNG: Diese Kommentare stehen hier und NICHT im Checks-Block darunter.
# 'Checks: >' ist ein YAML-Folded-Scalar -- darin ist '#' gewoehnlicher Text
# und wuerde als Checkname in die Liste wandern.
Checks: >
  bugprone-*,
  cert-*,
  clang-analyzer-*,
  misc-*,
  performance-*,
  portability-*,
  readability-*,
  -readability-magic-numbers,
  -readability-identifier-length,
  -readability-function-cognitive-complexity,
  -readability-braces-around-statements,
  -cert-err33-c,
  -misc-include-cleaner,
  -readability-implicit-bool-conversion,
  -misc-no-recursion,
  -performance-enum-size

CheckOptions:
  - key: bugprone-easily-swappable-parameters.MinimumLength
    value: 3
  - key: readability-identifier-naming.FunctionCase
    value: lower_case
  - key: readability-identifier-naming.VariableCase
    value: lower_case
  - key: readability-identifier-naming.MacroDefinitionCase
    value: UPPER_CASE
  - key: readability-identifier-naming.TypedefCase
    value: CamelCase
  - key: readability-identifier-naming.StructCase
    value: CamelCase

HeaderFilterRegex: '.*/playground/.*'
FormatStyle: file
