# -*- yaml -*-
# The following are disabled not because they are undesirable, but because they
# are present in pre-existing code:
#
# -readability-convert-member-functions-to-static,
# -readability-inconsistent-declaration-parameter-name,
# -readability-magic-numbers,
# -readability-suspicious-call-argument,
---

Checks: >
  -*,
  modernize-*,
  performance-*,
  readability-*,
  misc-static-assert,
  -readability-convert-member-functions-to-static,
  -readability-function-cognitive-complexity,
  -readability-identifier-length,
  -readability-inconsistent-declaration-parameter-name,
  -readability-magic-numbers,
  -readability-suspicious-call-argument,
WarningsAsErrors: '*'

# Google naming scheme:
#
# https://gist.github.com/airglow923/1fa3bda42f2b193920d7f46ee8345e04
CheckOptions:
- key: readability-identifier-naming.ClassCase
  value: CamelCase
- key: readability-identifier-naming.VariableCase
  value: lower_case
# TODO(lb):
# - key: readability-identifier-naming.ClassMemberCase
#   value: lower_case
# - key: readability-identifier-naming.ConstexprVariableCase
#   value: CamelCase
# - key: readability-identifier-naming.ConstexprVariablePrefix
#   value: k
# - key: readability-identifier-naming.EnumCase
#   value: CamelCase
# - key: readability-identifier-naming.EnumConstantCase
#   value: CamelCase
# - key: readability-identifier-naming.EnumConstantPrefix
#   value: k
# - key: readability-identifier-naming.FunctionCase
#   value: CamelCase
# - key: readability-identifier-naming.GlobalConstantCase
#   value: CamelCase
# - key: readability-identifier-naming.GlobalConstantPrefix
#   value: k
# - key: readability-identifier-naming.StaticConstantCase
#   value: CamelCase
# - key: readability-identifier-naming.StaticConstantPrefix
#   value: k
# - key: readability-identifier-naming.StaticVariableCase
#   value: lower_case
# - key: readability-identifier-naming.MacroDefinitionCase
#   value: UPPER_CASE
# - key: readability-identifier-naming.MacroDefinitionIgnoredRegexp
#   value: '^[A-Z]+(_[A-Z]+)*_$'
# - key: readability-identifier-naming.MemberCase
#   value: lower_case
# - key: readability-identifier-naming.PrivateMemberSuffix
#   value: _
# - key: readability-identifier-naming.PublicMemberSuffix
#   value: ''
# - key: readability-identifier-naming.NamespaceCase
#   value: lower_case
# - key: readability-identifier-naming.ParameterCase
#   value: lower_case
# - key: readability-identifier-naming.TypeAliasCase
#   value: CamelCase
# - key: readability-identifier-naming.TypedefCase
#   value: CamelCase
# - key: readability-identifier-naming.IgnoreMainLikeFunctions
#   value: 1
