--- # Clang Tidy Configuration # ======================== # is **not** used for clangd intellisense. Rather, # this `.clang-tidy` configuration is used to apply modernizing transforms to # our codebase typically after a major event (e.g. cleaning up bad code # written after a race) # # Notes: # - `clang-diagnostic-*` and `clang-analyzer-*` are both static analysis passes # - `modernize` primarly makes changes related to shared pointers in our stack # - `performance` primarily makes modifications like pass by value # - `bugprone` does not add many modifications (1 total in perception) # # clang-tidy takes a long time to run so using the following command, clang-tidy can be run on all cores # only **after** the code has been build locally such that `build/compile_commands.json` is valid # # ```bash # python3 run-clang-tidy.py -p build -header-filter=./src/.* -fix -format src/ # ``` # # [`run-clang-tidy.py`](https://raw.githubusercontent.com/llvm/llvm-project/refs/heads/release/14.x/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py) can be downloaded here # Full Checks # Checks: 'clang-diagnostic-*,clang-analyzer-*,modernize-*,-modernize-avoid-bind,-modernize-use-trailing-return-type,readability-*,-readability-identifier-length,performance-*,misc-*,bugprone-*,-bugprone-easily-swappable-parameters,-bugprone-reserved-identifier' # Formatting Checks Only # Checks: '-' # Default checks # Checks: 'modernize-*,-modernize-avoid-bind,-modernize-use-trailing-return-type' # ,misc-*,bugprone-*,-bugprone-easily-swappable-parameters,-bugprone-reserved-identifier' # Checks: 'readability-*,-readability-identifier-length,-readability-magic-numbers' # Checks: 'modernize-*,-modernize-avoid-bind,-modernize-use-trailing-return-type' # Checks: 'readability-isolate-declaration' # Checks: 'misc-*' # Static casts are not easily automatically converted, do not use this readability check # Checks: 'readability-implicit-bool-conversion' WarningsAsErrors: '' HeaderFilterRegex: '' FormatStyle: none User: xbk6xm CheckOptions: # Default LLVM Options - key: llvm-else-after-return.WarnOnConditionVariables value: 'false' - key: modernize-loop-convert.MinConfidence value: reasonable - key: modernize-replace-auto-ptr.IncludeStyle value: llvm - key: cert-str34-c.DiagnoseSignedUnsignedCharComparisons value: 'false' - key: google-readability-namespace-comments.ShortNamespaceLines value: '10' - key: cert-err33-c.CheckedFunctions value: '::aligned_alloc;::asctime_s;::at_quick_exit;::atexit;::bsearch;::bsearch_s;::btowc;::c16rtomb;::c32rtomb;::calloc;::clock;::cnd_broadcast;::cnd_init;::cnd_signal;::cnd_timedwait;::cnd_wait;::ctime_s;::fclose;::fflush;::fgetc;::fgetpos;::fgets;::fgetwc;::fopen;::fopen_s;::fprintf;::fprintf_s;::fputc;::fputs;::fputwc;::fputws;::fread;::freopen;::freopen_s;::fscanf;::fscanf_s;::fseek;::fsetpos;::ftell;::fwprintf;::fwprintf_s;::fwrite;::fwscanf;::fwscanf_s;::getc;::getchar;::getenv;::getenv_s;::gets_s;::getwc;::getwchar;::gmtime;::gmtime_s;::localtime;::localtime_s;::malloc;::mbrtoc16;::mbrtoc32;::mbsrtowcs;::mbsrtowcs_s;::mbstowcs;::mbstowcs_s;::memchr;::mktime;::mtx_init;::mtx_lock;::mtx_timedlock;::mtx_trylock;::mtx_unlock;::printf_s;::putc;::putwc;::raise;::realloc;::remove;::rename;::scanf;::scanf_s;::setlocale;::setvbuf;::signal;::snprintf;::snprintf_s;::sprintf;::sprintf_s;::sscanf;::sscanf_s;::strchr;::strerror_s;::strftime;::strpbrk;::strrchr;::strstr;::strtod;::strtof;::strtoimax;::strtok;::strtok_s;::strtol;::strtold;::strtoll;::strtoul;::strtoull;::strtoumax;::strxfrm;::swprintf;::swprintf_s;::swscanf;::swscanf_s;::thrd_create;::thrd_detach;::thrd_join;::thrd_sleep;::time;::timespec_get;::tmpfile;::tmpfile_s;::tmpnam;::tmpnam_s;::tss_create;::tss_get;::tss_set;::ungetc;::ungetwc;::vfprintf;::vfprintf_s;::vfscanf;::vfscanf_s;::vfwprintf;::vfwprintf_s;::vfwscanf;::vfwscanf_s;::vprintf_s;::vscanf;::vscanf_s;::vsnprintf;::vsnprintf_s;::vsprintf;::vsprintf_s;::vsscanf;::vsscanf_s;::vswprintf;::vswprintf_s;::vswscanf;::vswscanf_s;::vwprintf_s;::vwscanf;::vwscanf_s;::wcrtomb;::wcschr;::wcsftime;::wcspbrk;::wcsrchr;::wcsrtombs;::wcsrtombs_s;::wcsstr;::wcstod;::wcstof;::wcstoimax;::wcstok;::wcstok_s;::wcstol;::wcstold;::wcstoll;::wcstombs;::wcstombs_s;::wcstoul;::wcstoull;::wcstoumax;::wcsxfrm;::wctob;::wctrans;::wctype;::wmemchr;::wprintf_s;::wscanf;::wscanf_s;' - key: cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField value: 'false' - key: cert-dcl16-c.NewSuffixes value: 'L;LL;LU;LLU' - key: google-readability-braces-around-statements.ShortStatementLines value: '1' - key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic value: 'true' - key: google-readability-namespace-comments.SpacesBeforeComments value: '2' - key: modernize-loop-convert.MaxCopySize value: '16' - key: modernize-pass-by-value.IncludeStyle value: llvm - key: modernize-use-nullptr.NullMacros value: 'NULL' - key: llvm-qualified-auto.AddConstToQualified value: 'false' - key: modernize-loop-convert.NamingStyle value: CamelCase - key: llvm-else-after-return.WarnOnUnfixable value: 'false' - key: google-readability-function-size.StatementThreshold value: '800' ...