# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
---
Checks: |
  bugprone-argument-comment,
  bugprone-assert-side-effect,
  bugprone-bool-pointer-implicit-conversion,
  bugprone-dangling-handle,
  bugprone-dynamic-static-initializers,
  bugprone-forward-declaration-namespace,
  bugprone-inaccurate-erase,
  bugprone-redundant-branch-condition,
  bugprone-string-constructor,
  bugprone-string-integer-assignment,
  bugprone-suspicious-memset-usage,
  bugprone-suspicious-realloc-usage,
  bugprone-terminating-continue,
  bugprone-throwing-static-initialization,
  bugprone-unique-ptr-array-mismatch,
  bugprone-unused-raii,
  bugprone-use-after-move,
  bugprone-virtual-near-miss,
  misc-misleading-identifier,
  misc-homoglyph,
  clang-diagnostic-*,
  -clang-diagnostic-global-constructors,
  -clang-diagnostic-sign-compare,
  clang-analyzer-*,
  -clang-analyzer-alpha*,
  -clang-analyzer-cplusplus.NewDeleteLeaks,
  google-*,
  -google-default-arguments,
  modernize-*,
  -modernize-return-braced-init-list,
  -modernize-avoid-c-arrays,
  -modernize-use-trailing-return-type,
  -modernize-use-nodiscard,
  -modernize-pass-by-value,
# produce HeaderFilterRegex from cpp/build-support/lint_exclusions.txt with:
# echo -n '^('; sed -e 's/*/\.*/g' cpp/build-support/lint_exclusions.txt | tr '\n' '|'; echo ')$'
HeaderFilterRegex: '^(?!.*third_party/).*'
CheckOptions:
  - key:             google-readability-braces-around-statements.ShortStatementLines
    value:           '1'
  - key:             google-readability-function-size.StatementThreshold
    value:           '800'
  - key:             google-readability-namespace-comments.ShortNamespaceLines
    value:           '10'
  - key:             google-readability-namespace-comments.SpacesBeforeComments
    value:           '2'
  - key:             modernize-use-emplace.IgnoreImplicitConstructors
    value:           1
