feat(linter): implement Phase 1 linter automation and docs
- Add .clang-tidy (analyzer + selected bugprone) and .clang-format (LLVM, 4-space, 100 cols) - Enhance scripts/run-linter.sh to use compile_commands.json when available - Add scripts/setup-hooks.sh pre-commit (format enforcement; advisory tidy) - Update azure-pipelines.yml to export compile_commands and run clang-tidy -p build - Fill docs/linter-setup.md and docs/coding-standards.md for Phase 1 - Add minimal tests in tests/test_main.cpp to ensure CI executes - Rewrite README with Phase 1 workflow
This commit is contained in:
31
.clang-tidy
Normal file
31
.clang-tidy
Normal file
@@ -0,0 +1,31 @@
|
||||
Checks: >
|
||||
-*,
|
||||
clang-analyzer-*,
|
||||
bugprone-argument-comment,
|
||||
bugprone-assert-side-effect,
|
||||
bugprone-bad-signal-to-kill-thread,
|
||||
bugprone-branch-clone,
|
||||
bugprone-copy-constructor-init,
|
||||
bugprone-dangling-handle,
|
||||
bugprone-exception-escape,
|
||||
bugprone-integer-division,
|
||||
bugprone-macro-parentheses,
|
||||
bugprone-misplaced-operator-in-strlen-in-alloc,
|
||||
bugprone-multiple-new-delete-leaks,
|
||||
bugprone-sizeof-expression,
|
||||
bugprone-suspicious-missing-comma,
|
||||
bugprone-throw-keyword-missing,
|
||||
bugprone-unhandled-self-assignment,
|
||||
bugprone-unused-return-value,
|
||||
clang-analyzer-security.*,
|
||||
clang-analyzer-cplusplus.*,
|
||||
clang-analyzer-core.*
|
||||
HeaderFilterRegex: '(src|tests)/'
|
||||
AnalyzeTemporaryDtors: false
|
||||
FormatStyle: none
|
||||
WarningsAsErrors: ''
|
||||
|
||||
# Phase 1: advisory only (warnings do not fail CI)
|
||||
CheckOptions:
|
||||
- key: bugprone-assert-side-effect.AssertMacros
|
||||
value: 'assert'
|
Reference in New Issue
Block a user