mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 03:51:18 +00:00
This splits out the .clang-format settings from the .clang-tidy file. Right now, the .clang-tidy file has a bit of a mix: it contains both clang-tidy checks and clang-format style options. This actually works fine in some tools (like CLion which doesn't completely fail), but newer versions of clangd-based tools (VSCode, Neovim, etc.) are stricter and will outright reject the config because they expect .clang-tidy to only contain tidy-related stuff. So here's what I did: - Moved all the formatting-related options into a brand new .clang-format file - Kept .clang-tidy focused only on checks, warnings-as-errors, and any check-specific options No changes to the actual style rules or tidy checks. Everything should behave exactly the same as before. This should now play nicely with clangd, VSCode/VSCodium, Neovim, and other modern clang-based tools, while still working perfectly in CLion. I did this because some/*my* PRs had some formatting errors that could be prevented in the future, thus lessing the work while reviewing/merging. Test the old .clang-tidy with ``` clang-tidy --dump-config ./.clang-tidy:13:1: error: unknown key 'SpaceBeforeCaseColon' ... more errors ``` Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com>
42 lines
1.7 KiB
YAML
42 lines
1.7 KiB
YAML
---
|
|
# Configure clang-tidy for this project.
|
|
|
|
|
|
|
|
# Disabled:
|
|
# -google-readability-namespace-comments the *_CLIENT_NS is a macro, and
|
|
# clang-tidy fails to match it against the initial value.
|
|
Checks: >
|
|
-*,
|
|
bugprone-*,
|
|
google-*,
|
|
misc-*,
|
|
modernize-*,
|
|
performance-*,
|
|
portability-*,
|
|
readability-*,
|
|
-google-readability-namespace-comments,
|
|
-google-runtime-int,
|
|
-google-runtime-references,
|
|
-misc-non-private-member-variables-in-classes,
|
|
-readability-named-parameter,
|
|
-readability-magic-numbers,
|
|
-readability-braces-around-statements,
|
|
-misc-no-recursion,
|
|
|
|
# Turn all the warnings from the checks above into errors.
|
|
WarningsAsErrors: "*"
|
|
|
|
CheckOptions:
|
|
- { key: readability-function-cognitive-complexity.Threshold, value: 100 }
|
|
- { key: readability-identifier-naming.StructCase, value: CamelCase }
|
|
- { key: readability-identifier-naming.FunctionCase, value: lower_case }
|
|
- { key: readability-identifier-naming.VariableCase, value: lower_case }
|
|
- { key: readability-identifier-naming.MacroDefinitionCase, value: UPPER_CASE }
|
|
- { key: readability-identifier-naming.EnumConstantCase, value: UPPER_CASE }
|
|
- { key: readability-identifier-naming.ConstexprVariableCase, value: CamelCase }
|
|
- { key: readability-identifier-naming.ConstexprVariablePrefix, value: k }
|
|
- { key: readability-identifier-naming.GlobalConstantCase, value: CamelCase }
|
|
- { key: readability-identifier-naming.GlobalConstantPrefix, value: k }
|
|
- { key: readability-identifier-naming.StaticConstantCase, value: CamelCase }
|
|
- { key: readability-identifier-naming.StaticConstantPrefix, value: k } |