diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..4d821fc --- /dev/null +++ b/.clang-format @@ -0,0 +1,18 @@ +--- +Language: C +Standard: C99 +BasedOnStyle: LLVM +IndentWidth: 4 +ColumnLimit: 88 +UseTab: Never +BreakBeforeBraces: Attach +AllowShortBlocksOnASingleLine: Never +AllowShortFunctionsOnASingleLine: None +AllowShortIfStatementsOnASingleLine: Never +AlwaysBreakBeforeMultilineStrings: false +BreakStringLiterals: true +PointerAlignment: Right +DerivePointerAlignment: false +SortIncludes: true +ReflowComments: true +MaxEmptyLinesToKeep: 2 diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..ea45ed8 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,24 @@ +--- +Checks: | + *, + -fuchsia-*, + -llvmlibc-*, + -abseil-*, + -google-readability-braces-around-statements, + -readability-braces-around-statements, + -readability-implicit-bool-conversion, +HeaderFilterRegex: 'src/.*\.h' +WarningsAsErrors: '*' +CheckOptions: + - key: readability-identifier-naming.VariableCase + value: snake_case + - key: readability-identifier-naming.FunctionCase + value: snake_case + - key: readability-identifier-naming.MacroDefinitionCase + value: UPPER_CASE + - key: readability-identifier-naming.EnumConstantCase + value: UPPER_CASE + - key: modernize-use-auto.MinTypeNameLength + value: '8' + - key: performance-inefficient-string-concatenation.WarnOnImplicitConversion + value: '1' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e7a30cf..9ec9759 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,3 +19,31 @@ repos: hooks: - id: markdownlint args: ['--fix', '--disable', 'MD040', '--disable', 'MD013'] + + - repo: https://github.com/pre-commit/mirrors-clang-format + rev: v17.0.6 + hooks: + - id: clang-format + types: [c, c++, header] + args: ['-i'] # In-place formatting + exclude: | + (?x)^( + \.pio/| + test/| + soc/| + hardware/ + ) + + - repo: https://github.com/pocc/pre-commit-hooks + rev: v1.3.5 + hooks: + - id: clang-tidy + types: [c, c++, header] + args: ['-checks=*,-fuchsia-*,-llvmlibc-*'] + exclude: | + (?x)^( + \.pio/| + test/| + soc/| + hardware/ + )