---
Checks:                '*, -fuchsia-*, -google-*, -misc-*, -zircon-*, -bugprone-narrowing-conversions, -readability-uppercase-literal-suffix, -readability-magic-numbers, -readability-identifier-naming, -readability-convert-member-functions-to-static, -performance-unnecessary-value-param, -clang-analyzer-cplusplus.NewDeleteLeaks, -modernize-avoid-c-arrays, -modernize-use-trailing-return-type, -hicpp-no-array-decay, -hicpp-avoid-c-arrays, -hicpp-uppercase-literal-suffix, -hicpp-special-member-functions, -cert-err58-cpp, -clang-diagnostic-error, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-owning-memory, -cppcoreguidelines-pro-type-vararg, -cppcoreguidelines-avoid-magic-numbers, -cppcoreguidelines-avoid-c-arrays, -cppcoreguidelines-narrowing-conversions, -cppcoreguidelines-macro-usage, -cppcoreguidelines-special-member-functions, -llvm-namespace-comment'
WarningsAsErrors:      ''
HeaderFilterRegex:     ''
AnalyzeTemporaryDtors: false
FormatStyle:           file

# Why are some warnings disabled?
# We disabled these checks because there are either false positives or too many warnings at the moment.
# They will be enabled step by step.
#
# fuchsia-*                                            # Too strict for any form of normal C++ programming; degrades C++ literally to C
# google-*
# misc-*
# bugprone-narrowing-conversions                       # Too many warnings
# readability-uppercase-literal-suffix                 # We use lowercase literals suffixes
# readability-magic-numbers                            # Used heavily in QColor constructors
# readability-identifier-naming                        # Somehow not stable; warnings don't tell what config parameter is responsible
# readability-convert-member-functions-to-static       # TODO: While useful, too many changes.
# performance-unnecessary-value-param                  # Too many warnings; we still need to fix those
# clang-analyzer-cplusplus.NewDeleteLeaks              # False positive with QTimer::singleShot
# modernize-avoid-c-arrays                             # qrc and moc files use c arrays...
# modernize-use-trailing-return-type                   # Not our code base's style
# hicpp-no-array-decay                                 # qrc and moc files use c arrays...
# hicpp-avoid-c-arrays                                 # qrc and moc files use c arrays...
# hicpp-uppercase-literal-suffix                       # we use lowercase literal suffixes; clang-tidy has not option for that, though
# hicpp-special-member-functions                       # in qrc_*.cpp files
# cert-err58-cpp                                       # qrc and moc files use static storage duration objects that may throw
# clang-diagnostic-error                               # warn but don't make warnings errors
# cppcoreguidelines-pro-bounds-array-to-pointer-decay  # Nice but useless in qDebug() macros with string literals
# cppcoreguidelines-owning-memory                      # we heavily use new and raw pointers because of Qt
# cppcoreguidelines-pro-type-vararg                    # qFatal() and others use c-style vararg functions
# cppcoreguidelines-avoid-magic-numbers                # magic numbers in e.g. QColor
# cppcoreguidelines-avoid-c-arrays                     # qrc and moc files use c arrays...
# cppcoreguidelines-narrowing-conversions              # Too many warnings
# cppcoreguidelines-macro-usage                        # Qt marcros...
# cppcoreguidelines-special-member-functions           # in qrc_*.cpp files
# llvm-namespace-comment                               # Useful but qrc_*.cpp files again...

CheckOptions:
  - key: bugprone-assert-side-effect.CheckFunctionCalls
    value: 1
  - key: bugprone-assert-side-effect.AssertMacros
    value: 'assert'
...
