1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-15 09:33:50 +01:00
RIOT/.clang-tidy
Marian Buschsieweke 34c0964067
tools: add default .clang-tidy configuration
This adds a default .clang-tidy configuration for additional linitng
pleasure when using an editor with LSP support and clangd as language
server.
2025-04-23 23:39:37 +02:00

70 lines
2.1 KiB
YAML

# Reasoning
# =========
#
# Selection of Checks
# ------------------
#
# Selecting the following general purpose checks relevant for C code:
# - clang-analyzer-* ()
# - bugprone-*
# - readability-*
# - misc-*
#
# Additional checks for other languages or specific to projects/coding standards
# are not used, expected for the Linux kernel coding conventions, as the RIOT
# coding conventions builds upon the Linux coding conventions.
#
# Finally, the following checks are disabled:
# - bugprone-reserved-identifier:
# Too many false positives, as check does not take `static` declaration
# into account
# - bugprone-easily-swappable-parameters:
# This cannot be avoided
# - bugprone-too-small-loop-variable:
# Too many false positives
#
#
# Which Warnings to Raise to Errors
# ---------------------------------
#
# - bugprone-*:
# Avoiding known pitfalls or explicitly adding a magic comment and a
# reasoning for why sticking with a footgun should be doable
# - portability-*:
# Porability issues bite us hard due to the wide varity of board,
# toolchains, standard C libs, etc. we use. So we should avoid them
# where possible
#
#
# Fine Tuning
# -----------
#
# - readability-function-cognitive-complexity.IgnoreMacros: 'true':
# Otherwise the use of `DEBUG()...` will be penalized, even though it
# helps both in debugging and to document the code.
#
# Warning
# -------
#
# This configuration file is rather new and may enable a few warnings with a
# low signal-to-noise ratio are may not enable checks that would be exteremely
# helpful. If you modify this file to improve your experience, please consider
# upstreaming the changes.
---
Checks: "clang-analyzer-*,
bugprone-*,
portability-*,
readability-*,
misc-*,
linuxkernel-*,
-bugprone-reserved-identifier,
-bugprone-easily-swappable-parameters,
"
WarningsAsErrors: "bugprone-*,
portability-*,
"
HeaderFilterRegex: ''
FormatStyle: file
CheckOptions:
readability-function-cognitive-complexity.IgnoreMacros: 'true'