-
Notifications
You must be signed in to change notification settings - Fork 212
/
.clang-tidy
100 lines (99 loc) · 3.75 KB
/
.clang-tidy
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Disabled some clang-analyzer static checks, need some more investigation.
# TODO(hzeller) fix and re-enable clang-analyzer checks.
# TODO(hzeller) Looking over magic numbers might be good, but probably
# not worthwhile hard-failing
# TODO(hzeller) Explore anofalloff suggestions.
#
# readability-make-member-function-const is great, but it also suggests that
# in cases where we return a non-const pointer. So good to check, not by
# default.
#
# readability-qualified-auto is useful in general, however it suggests
# to convert iterators (e.g. std::string_view::begin()) to the pointer it
# returns; however since the iterator is implementation defined, this is not
# a valid assertion. Running the check every now and then manually and
# fixing all the non-iterator cases is useful though. Off by default.
#
# misc-const-correctness: useful, but it seems to be overzealous at times.
#
# modernize-make-unique: mostly correct, but wants to also replace .reset()
# which is a more readable way than assign.
#
# misc-include-cleaner: we do not exclude it here, as it is useful in itself
# locally running clang tidy checks (and potentially language
# server support); but since code is not 'clean' yet, we
# exclude it in the CI run.
# Config: don't flag *_linter_test_utils.h as they define a test
# template spezialization that clang-tidy fails to see is necessary.
#
# NOTE: Below, there must be no comments, otherwise clang tidy silently ignores
# rules... (ask me how I know).
###
Checks: >
clang-diagnostic-*,
clang-analyzer-*,
-clang-analyzer-core.NonNullParamChecker,
-clang-analyzer-cplusplus.InnerPointer,
-clang-analyzer-optin.core.EnumCastOutOfRange,
-clang-analyzer-optin.performance.Padding,
abseil-*,
-abseil-no-namespace,
readability-*,
-readability-avoid-nested-conditional-operator,
-readability-avoid-unconditional-preprocessor-if,
-readability-braces-around-statements,
-readability-convert-member-functions-to-static,
-readability-function-cognitive-complexity,
-readability-identifier-length,
-readability-implicit-bool-conversion,
-readability-isolate-declaration,
-readability-magic-numbers,
-readability-make-member-function-const,
-readability-named-parameter,
-readability-qualified-auto,
-readability-redundant-access-specifiers,
-readability-simplify-boolean-expr,
-readability-static-definition-in-anonymous-namespace,
-readability-uppercase-literal-suffix,
-readability-use-anyofallof,
google-*,
-google-readability-avoid-underscore-in-googletest-name,
-google-readability-casting,
-google-readability-todo,
performance-*,
-performance-avoid-endl,
-performance-enum-size,
bugprone-*,
-bugprone-branch-clone,
-bugprone-easily-swappable-parameters,
-bugprone-exception-escape,
-bugprone-inc-dec-in-conditions,
-bugprone-macro-parentheses,
-bugprone-move-forwarding-reference,
-bugprone-narrowing-conversions,
-bugprone-suspicious-missing-comma,
modernize-*,
-modernize-avoid-bind,
-modernize-avoid-c-arrays,
-modernize-concat-nested-namespaces,
-modernize-make-shared,
-modernize-make-unique,
-modernize-pass-by-value,
-modernize-raw-string-literal,
-modernize-return-braced-init-list,
-modernize-type-traits,
-modernize-use-auto,
-modernize-use-emplace,
-modernize-use-nodiscard,
-modernize-use-trailing-return-type,
-modernize-use-transparent-functors,
misc-*,
-misc-const-correctness,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
-misc-redundant-expression,
-misc-unused-parameters,
-misc-use-anonymous-namespace,
CheckOptions:
- key: misc-include-cleaner.IgnoreHeaders
value: .*_linter_test_utils\.h