---
#Checks: "*,\
#         -modernize-use-trailing-return-type,\
#         -google-readability-braces-around-statements,\
#         -google-readability-todo,\
#         -hicpp-braces-around-statements,\
#         -readability-braces-around-statements,\
#         -hicpp-no-array-decay,\
#         -cppcoreguidelines-pro-type-vararg,\
#         -cppcoreguidelines-pro-bounds-constant-array-index,\
#         -cppcoreguidelines-pro-bounds-array-to-pointer-decay,\
#         -hicpp-vararg,\
#         -hicpp-signed-bitwise,\
#         -llvm-header-guard,\
#         -llvmlibc-*,\
#         -google-runtime-references,\
#         -readability-redundant-access-specifiers,\
#         -cppcoreguidelines-avoid-magic-numbers,\
#         -readability-magic-numbers,\
#         -altera-*,\
#         -fuchsia-*"

# TODO: enable -llvm-include-order in the end, after clang-format
Checks: "*,\
         -llvmlibc-*,\
         -altera-*,\
         -fuchsia-*,
         -cert-err58-cpp,\
         -modernize-use-trailing-return-type,\
         -cppcoreguidelines-avoid-magic-numbers,\
         -readability-magic-numbers,\
         -readability-braces-around-statements,\
         -google-readability-braces-around-statements,\
         -hicpp-braces-around-statements,\
         -hicpp-signed-bitwise,\
         -llvm-include-order,\
         -google-runtime-int,\
         -hicpp-named-parameter,\
         -readability-named-parameter,\
         -bugprone-macro-parentheses,\
         -google-readability-todo,\
         -cppcoreguidelines-pro-type-reinterpret-cast,\
         -cppcoreguidelines-pro-bounds-array-to-pointer-decay,\
         -hicpp-no-array-decay,\
         -cppcoreguidelines-avoid-c-arrays,\
         -hicpp-avoid-c-arrays,\
         -modernize-avoid-c-arrays"

#TODO: Add readability-implicit-bool-conversion and remove // NOLINT(readability-implicit-bool-conversion) from code

HeaderFilterRegex: 'src|sdbus-c++'
FormatStyle: file
WarningsAsErrors: "*"
CheckOptions:
  - key:             misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
    value:           '1'
  - key:             readability-implicit-bool-conversion.AllowPointerConditions
    value:           '1'
  - key:             readability-redundant-member-init.IgnoreBaseInCopyConstructors
    value:           '1'
  - key:             cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
    value:           '1'
  - key:             hicpp-special-member-functions.AllowSoleDefaultDtor
    value:           '1'
  - key:             readability-identifier-length.IgnoredVariableNames
    value:           'r|fd|id|ok|it'
  - key:             readability-identifier-length.IgnoredParameterNames
    value:           'fd|id|b'
  - key:             performance-move-const-arg.CheckTriviallyCopyableMove
    value:           '0'
  - key:             hicpp-move-const-arg.CheckTriviallyCopyableMove
    value:           '0'
#  - key:             bugprone-easily-swappable-parameters.MinimumLength
#    value:           '3'
#  - key:             readability-braces-around-statements.ShortStatementLines
#    value:           '3'
