summaryrefslogtreecommitdiff
path: root/.clang-tidy
blob: e7b899d7d05ab5f9e7cf387d7b2e266353a1e30c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Here is an explanation for why some of the checks are disabled:

# bugprone-easily-swappable-parameters: This check would require significant 
# refactoring effort.

# bugprone-unchecked-optional-access: Too many false positives. For example, 
# an explicit comparison with std::nullopt isn't considered a check.

# cppcoreguidelines-avoid-const-or-ref-data-members: We believe, ref data 
# members are a good way to express ownership, and const data members improve
# readability.

# cppcoreguidelines-rvalue-reference-param-not-moved: Too many false positives,
# especially with partial moves from STL containers.

# misc-const-correctness: Too many false positives, especially with STL 
# containers.

# misc-include-cleaner: There is no way for symbol mapping. For example, this
# check requires to delete the "gsl/gsl" header, but at the same time asks to
# include one for gsl::not_null.

# misc-use-anonymous-namespace: This check would require significant refactoring
# effort, but wouldn't improve readability equally.

# misc-no-recursion: There are legitimate uses for us: we use recursion for
# trees a lot.

# modernize-return-braced-init-list: We think removing typenames and using only
# braced-init can hurt readability.

# performance-avoid-endl: There are too many legitimate uses of std::endl for
# us.

# readability-identifier-length: We would like to enable this check, but it
# would require significant refactoring effort.

FormatStyle: Google
Checks: >-
  *,-abseil-*,-altera-*,-android-*,-boost-*,-cert-*,-darwin-*,-fuchsia-*,-linuxkernel-*,-llvm-*,-llvmlibc-*,-mpi-*,-objc-*,-zircon-*,
  -bugprone-easily-swappable-parameters,-bugprone-unchecked-optional-access,
  -clang-analyzer-cplusplus.NewDeleteLeaks,
  -clang-diagnostic-unused-command-line-argument,
  -concurrency-mt-unsafe,
  -cppcoreguidelines-avoid-const-or-ref-data-members,-cppcoreguidelines-rvalue-reference-param-not-moved,
  -misc-const-correctness,-misc-include-cleaner,-misc-use-anonymous-namespace,-misc-no-recursion,
  -modernize-return-braced-init-list,
  -performance-avoid-endl,
  -readability-function-cognitive-complexity,-readability-identifier-length
WarningsAsErrors: '*'
CheckOptions:
  - { key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic, value: '1' }
  - { key: readability-identifier-naming.ClassCase,                     value: CamelCase  }
  - { key: readability-identifier-naming.EnumCase,                      value: CamelCase  }
  - { key: readability-identifier-naming.StructCase,                    value: CamelCase  }
  - { key: readability-identifier-naming.TypeTemplateParameterCase,     value: CamelCase  }