# Optimized for Clang-Tidy v17
---
HeaderFileExtensions:         ['h','hpp']
ImplementationFileExtensions: ['cpp']
Checks:
  - -*
  - bugprone-*
  - clang-*
  - concurrency-*
  - cppcoreguidelines-*
  - google-*
  - llvm-*
  - misc-*
  - modernize-*
  - performance-*
  - portability-*
  - readability-*
  - hicpp-exception-baseclass
  - hicpp-multiway-paths-covered
  - -bugprone-easily-swappable-parameters
  - -bugprone-macro-parentheses
  - -clang-analyzer-optin.osx.*
  - -clang-analyzer-osx.*
  - -cppcoreguidelines-avoid-c-arrays
  - -cppcoreguidelines-avoid-magic-numbers
  - -cppcoreguidelines-avoid-non-const-global-variables
  - -cppcoreguidelines-macro-usage
  - -cppcoreguidelines-non-private-member-variables-in-classes
  - -cppcoreguidelines-pro-bounds-pointer-arithmetic
  - -cppcoreguidelines-pro-type-const-cast
  - -cppcoreguidelines-pro-type-reinterpret-cast
  - -cppcoreguidelines-pro-type-vararg
  - -cppcoreguidelines-special-member-functions
  - -google-default-arguments
  - -google-readability-braces-around-statements
  - -google-readability-function-size
  - -google-readability-todo
  - -llvm-header-guard
  - -llvm-qualified-auto
  - -misc-include-cleaner
  - -misc-non-private-member-variables-in-classes
  - -modernize-use-nodiscard
  - -modernize-use-trailing-return-type
  - -readability-braces-around-statements
  - -readability-identifier-length
  - -readability-magic-numbers
  # All below are only aliases
  - -cppcoreguidelines-noexcept-destructor
  - -cppcoreguidelines-noexcept-move-operations
  - -cppcoreguidelines-noexcept-swap
  - -cppcoreguidelines-use-default-member-init
WarningsAsErrors:    '*'
HeaderFilterRegex:   '[\\\/]+(examples|orm|tests|tom)[\\\/]+.+\.(h|hpp)$'
FormatStyle:         none
InheritParentConfig: false
UseColor:            true
CheckOptions:
  - key:             cppcoreguidelines-avoid-do-while.IgnoreMacros
    value:           true
  - key:             cppcoreguidelines-rvalue-reference-param-not-moved.AllowPartialMove
    value:           true
  - key:             google-readability-namespace-comments.ShortNamespaceLines
    value:           '5'
  - key:             llvm-namespace-comment.ShortNamespaceLines
    value:           '5'
