Checks: >
  -clang-analyzer-core.NonNullParamChecker,
  -clang-analyzer-optin.cplusplus.UninitializedObject,
  -clang-diagnostic-builtin-macro-redefined,
  -clang-analyzer-core.uninitialized.Assign,
  abseil-duration-*,
  abseil-faster-strsplit-delimiter,
  abseil-no-namespace,
  abseil-redundant-strcat-calls,
  abseil-str-cat-append,
  abseil-string-find-startswith,
  abseil-upgrade-duration-conversions,
  bugprone-assert-side-effect,
  bugprone-unused-raii,
  bugprone-use-after-move,
  clang-analyzer-core.DivideZero,
  misc-unused-using-decls,
  modernize-deprecated-headers,
  modernize-loop-convert,
  modernize-make-shared,
  modernize-make-unique,
  modernize-return-braced-init-list,
  modernize-use-default-member-init,
  modernize-use-equals-default,
  modernize-use-nullptr,
  modernize-use-override,
  modernize-use-using,
  performance-faster-string-find,
  performance-for-range-copy,
  performance-inefficient-algorithm,
  performance-inefficient-vector-operation,
  performance-noexcept-move-constructor,
  performance-move-constructor-init,
  performance-type-promotion-in-math-fn,
  performance-unnecessary-copy-initialization,
  readability-braces-around-statements,
  readability-container-size-empty,
  readability-identifier-naming,
  readability-redundant-control-flow,
  readability-redundant-member-init,
  readability-redundant-smartptr-get,
  readability-redundant-string-cstr


CheckOptions:
- key: cppcoreguidelines-unused-variable.IgnorePattern
  value: "^_$"
- key: bugprone-assert-side-effect.AssertMacros
  value: 'ASSERT'
- key: modernize-use-auto.MinTypeNameLength
  value: '10'
- key: readability-identifier-naming.ClassCase
  value: 'CamelCase'
- key: readability-identifier-naming.EnumCase
  value: 'CamelCase'
- key: readability-identifier-naming.EnumConstantPrefix
  value: k
- key: readability-identifier-naming.EnumConstantCase
  value: 'CamelCase'
- key: readability-identifier-naming.ParameterCase
  value: 'lower_case'
- key: readability-identifier-naming.ParameterIgnoredRegexp
  value: (^cname_ttl_$)
- key: readability-identifier-naming.PrivateMemberSuffix
  value: '_'
- key: readability-identifier-naming.StructCase
  value: 'CamelCase'
- key: readability-identifier-naming.TypeAliasCase
  value: 'CamelCase'
- key: readability-identifier-naming.TypeAliasIgnoredRegexp
  value: '(result_type)'
- key: readability-identifier-naming.UnionCase
  value: 'CamelCase'
- key: readability-identifier-naming.FunctionCase
  value: 'CamelCase'
- key: readability-identifier-naming.FunctionIgnoredRegexp
  value: '^_[A-Z]+.*$'
- key: readability-identifier-naming.GlobalConstantCase
  value: 'CamelCase'
- key: readability-identifier-naming.GlobalConstantPrefix
  value: k
- key: readability-identifier-naming.MacroDefinitionCase
  value: UPPER_CASE
- key: readability-identifier-naming.MacroDefinitionIgnoredRegexp
  value: '^[A-Z]+(_[A-Z]+)*_$'
- key: readability-identifier-naming.FunctionIgnoredRegexp
  # To have the regex chomped correctly fence all items with `|` (other than first/last)
  value: >-
    (^FRIEND_TEST$)


HeaderFilterRegex: '^./(src|testing)\/.*\.(cc|h)$|^./vmsdk/src/[a-zA-Z0-9_]+(\.cc|\.h)$|^./vmsdk/testing/.*'
#HeaderFilterRegex: '.*'
FormatStyle:     file

WarningsAsErrors: '*'