Checks: '
        google-*,
        readability-identifier-naming,
        readability-uppercase-literal-suffix,
        readability-function-size,
        readability-misleading-indentation,
        readability-else-after-return,
        readability-braces-around-statements,
        readability-simplify-boolean-expr,
        readability-redundant-declaration,
        readability-redundant-control-flow,
        misc-redundant-expression,
        misc-unused-parameters,
        modernize-replace-auto-ptr,
        modernize-use-noexcept,
        modernize-use-override,
        performance-move-const-arg,
        cppcoreguidelines-pro-type-cstyle-cast,
        cppcoreguidelines-pro-type-reinterpret-cast,
        cppcoreguidelines-pro-type-const-cast
        -clang-diagnostic-warning
'

FormatStyle: file
InheritParentConfig: true

CheckOptions:
# File

# Coding Fromat
  - key: readability-function-size.StatementThreshold
    value: 600
  - key: readability-function-size.BranchThreshold
    value: 200
  - key: readability-function-size.ParameterThreshold
    value: 10
  - key: readability-function-size.NestingThreshold
    value: 15
  - key: readability-function-size.VariableThreshold
    value: 40

# boolean
  - key: modernize-use-bool-literals.IgnoreMacros
    value: 1
  - key: bugprone-bool-pointer-implicit-conversion
    value: ''
  - key: readability-simplify-boolean-expr.ChainedConditionalReturn
    value: 1
  - key: readability-simplify-boolean-expr.ChainedConditionalAssignment
    value: 1

# Fuction
  - key: readability-identifier-naming.FunctionCase
    value: CamelCase
  - key: readability-identifier-naming.GlobalFunctionCase
    value: CamelCase
  - key: readability-identifier-naming.VariableCase
    value: camelBack
  - key: readability-identifier-naming.VariablePrefix
    value: ''
  - key: readability-identifier-naming.VariableSuffix
    value: ''

# Variable
  - key: readability-identifier-naming.LocalVariableCase
    value: camelBack
  - key: readability-identifier-naming.LocalVariablePrefix
    value: ''
  - key: readability-identifier-naming.LocalVariableSuffix
    value: ''
  - key: readability-identifier-naming.LocalPointerCase
    value: camelBack
  - key: readability-identifier-naming.GlobalVariableCase
    value: camelBack
  - key: readability-identifier-naming.GlobalVariablePrefix
    value: g_
  - key: readability-identifier-naming.GlobalVariableSuffix
    value: ''
  - key: readability-identifier-naming.GlobalPointerCase
    value: camelBack
  - key: readability-identifier-naming.GlobalPointerPrefix
    value: g_
  - key: readability-identifier-naming.GlobalPointerSuffix
    value: ''
  - key: readability-identifier-naming.StaticVariableCase
    value: camelBack
  - key: readability-identifier-naming.StaticVariablePrefix
    value: ''
  - key: readability-identifier-naming.StaticVariableSuffix
    value: ''

# Enum/Struct/Class/Union
# Emum
  - key: readability-identifier-naming.EnumCase
    value: UPPER_CASE
  - key: readability-identifier-naming.EnumSuffix
    value: _e
  - key: readability-identifier-naming.EnumConstantCase
    value: UPPER_CASE
  - key: readability-identifier-naming.EnumConstantPrefix
    value: E_
  - key: readability-identifier-naming.EnumConstantSuffix
    value: ''

# Struct
  - key: readability-identifier-naming.StructCase
    value: CamelCase
  - key: readability-identifier-naming.StructSuffix
    value: _s

# Union
  - key: readability-identifier-naming.UnionCase
    value: CamelCase
  - key: readability-identifier-naming.UnionSuffix
    value: _u

# Macro/Constant
  - key: readability-identifier-naming.macrodefinitioncase
    value: UPPER_CASE
  - key: readability-identifier-naming.macrodefinitionprefix
    value: ''
  - key: readability-identifier-naming.macrodefinitionsuffix
    value: ''
  - key: readability-identifier-naming.GlobalConstantCase
    value: UPPER_CASE
  - key: readability-identifier-naming.GlobalConstantPrefix
    value: ''
  - key: readability-identifier-naming.GlobalConstantSuffix
    value: ''
  - key: readability-identifier-naming.TypedefCase
    value: 'UPPER_CASE'
  - key: readability-identifier-naming.TypedefIgnoredRegexp
    value: '(MI_(VIRTx2|VIRT|FLOAT|PHY|BOOL))|(MI_[uUsS][0-9]+)|(([a-zA-Z0-9]+)_([te])+)'
  - key: readability-identifier-naming.FunctionPrefix
    value: '_'
        