Add clang-format and clang-tidy to pre-commit hooks
- .pre-commit-config.yaml: Integrate clang-format (v17) and clang-tidy for C/C++ linting Excludes build artifacts (.pio), tests, and board configs from linting - .clang-format: Configure LLVM-style formatting with 4-space indents, 88-char line limit Enforces right pointer alignment, comment reflow, consistent brace placement - .clang-tidy: Configure strict static analysis with snake_case identifiers Enables all checks except Fuchsia/LLVM lib checks and abseil checks Treats warnings as errors
This commit is contained in:
18
.clang-format
Normal file
18
.clang-format
Normal file
@@ -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
|
||||||
24
.clang-tidy
Normal file
24
.clang-tidy
Normal file
@@ -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'
|
||||||
@@ -19,3 +19,31 @@ repos:
|
|||||||
hooks:
|
hooks:
|
||||||
- id: markdownlint
|
- id: markdownlint
|
||||||
args: ['--fix', '--disable', 'MD040', '--disable', 'MD013']
|
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/
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user