# Checks for our C++ (libverdite/, port/). scripts/lint.py runs it; the patches to the decomp's
# game code get only the bug checks (see LINT_GAME_CHECKS there). Why each check is off: docs/code-style.md.
Checks: >
  -*,
  bugprone-*,
  -bugprone-easily-swappable-parameters,
  -bugprone-narrowing-conversions,
  clang-analyzer-*,
  performance-*,
  -performance-enum-size,
  misc-definitions-in-headers,
  misc-misplaced-const,
  misc-redundant-expression,
  misc-static-assert,
  misc-unused-alias-decls,
  misc-unused-parameters,
  misc-unused-using-decls,
  modernize-loop-convert,
  modernize-make-unique,
  modernize-redundant-void-arg,
  modernize-use-emplace,
  modernize-use-equals-default,
  modernize-use-equals-delete,
  modernize-use-nullptr,
  modernize-use-override,
  modernize-use-using,
  cppcoreguidelines-slicing,
  cppcoreguidelines-virtual-class-destructor,
  readability-avoid-const-params-in-decls,
  readability-container-size-empty,
  readability-duplicate-include,
  readability-else-after-return,
  readability-function-cognitive-complexity,
  readability-inconsistent-declaration-parameter-name,
  readability-misleading-indentation,
  readability-redundant-control-flow,
  readability-redundant-declaration,
  readability-redundant-string-cstr,
  readability-simplify-boolean-expr
WarningsAsErrors: '*'
HeaderFilterRegex: '/(libverdite|port)/'
CheckOptions:
  readability-function-cognitive-complexity.Threshold: 30
  readability-function-cognitive-complexity.IgnoreMacros: true
