Skip to content

Instantly share code, notes, and snippets.

@gburd
Created November 20, 2024 15:45
Show Gist options
  • Select an option

  • Save gburd/0407f5353f9d1a1a8be74f1d71dc2f0f to your computer and use it in GitHub Desktop.

Select an option

Save gburd/0407f5353f9d1a1a8be74f1d71dc2f0f to your computer and use it in GitHub Desktop.

Revisions

  1. gburd created this gist Nov 20, 2024.
    78 changes: 78 additions & 0 deletions .clang-tidy
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,78 @@
    ---
    # Configure clang-tidy for this project.
    #
    # Here is an explanation for why some of the checks are disabled:
    #
    # -readability-function-cognitive-complexity: too many false positives with
    # clang-tidy-12. We need to disable this check in macros, and that setting
    # only appears in clang-tidy-13.
    #
    # -bugprone-narrowing-conversions: too many false positives.
    #
    # -bugprone-easily-swappable-parameters: too many false positives.
    #
    # -bugprone-implicit-widening-of-multiplication-result: too many false positives.
    # Almost any expression of the form `2 * variable` or `long x = a_int * b_int;`
    # generates an error.
    #
    WarningsAsErrors: "*"
    HeaderFilterRegex: ''
    FormatStyle: none
    Checks: >
    -*,
    bugprone-*,
    clang-analyzer-*,
    google-*,
    misc-*,
    modernize-*,
    performance-*,
    portability-*,
    readability-*,
    -bugprone-easily-swappable-parameters,
    -bugprone-exception-escape,
    -bugprone-implicit-widening-of-multiplication-result,
    -bugprone-inc-dec-in-conditions,
    -bugprone-narrowing-conversions,
    -bugprone-reserved-identifier,
    -bugprone-unused-local-non-trivial-variable,
    -bugprone-unused-private-field,
    -bugprone-unused-raii,
    -bugprone-unused-return-value,
    -bugprone-use-after-move,
    -google-readability-braces-around-statements,
    -google-runtime-references,
    -misc-const-correctness,
    -misc-include-cleaner,
    -misc-non-private-member-variables-in-classes,
    -modernize-avoid-c-arrays,
    -modernize-return-braced-init-list,
    -modernize-use-auto,
    -modernize-use-default-member-init,
    -modernize-use-equal-delete,
    -modernize-use-nodiscard,
    -modernize-use-nullptr,
    -modernize-use-override,
    -modernize-use-trailing-return-type,
    -performance-implicit-conversion-in-loop,
    -performance-inefficient-string-concatenation,
    -performance-inefficient-vector-operation,
    -performance-move-const-arg,
    -readability-braces-around-statements,
    -readability-function-cognitive-complexity,
    -readability-identifier-length,
    -readability-magic-numbers,
    -readability-named-parameter,
    -readability-redundant-member-init,
    -readability-redundant-smartptr-get,
    -readability-redundant-string-cstr,
    -readability-simplify-redundant-casting
    CheckOptions:
    - { key: readability-identifier-naming.FunctionCase, value: lower_case }
    - { key: readability-identifier-naming.VariableCase, value: lower_case }
    - { key: readability-identifier-naming.EnumCase, value: aNy_CasE }
    - { key: readability-identifier-naming.GlobalConstantCase, value: aNy_CasE }
    - { key: readability-identifier-naming.StaticConstantCase, value: lower_case }
    - { key: readability-implicit-bool-conversion.AllowIntegerConditions, value: 1 }
    - { key: readability-implicit-bool-conversion.AllowPointerConditions, value: 1 }
    - { key: readability-function-cognitive-complexity.IgnoreMacros, value: 1 }