Files
cpp-linter-template/docs/coding-standards.md
MH Hung f55d10ee07 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
2025-09-09 22:52:34 +08:00

23 lines
1017 B
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Coding Standards (Phase 1)
## 語言與標準
- C++98 為主要標準(舊代碼相容)。
- 禁止使用危險 API偏好安全封裝必要時以註解說明風險與保護措施。
## 格式(由 `.clang-format` 強制)
- BasedOnStyle: LLVMIndentWidth: 4ColumnLimit: 100。
- 以 pre-commit 與 CI 確保格式一致性。
## 一般規範
- 生命週期new/delete 成對,避免裸指標長期持有;儘量早釋放資源。
- 控制流:避免過深巢狀;優先早回傳以簡化邏輯。
- 註解:描述「為何」而非「做什麼」。
- 介面:標頭檔最小公開;避免不必要的 include採前置宣告以降低耦合。
## Tidy 規則Phase 1
- 啟用:`clang-analyzer-*` 與精選 `bugprone-*`,聚焦重大缺陷(洩漏、未定義行為)。
- 停用:`modernize-*``readability-*`(後續階段再逐步導入)。
## 例外處理
- 舊代碼可逐步改善若需暫時抑制特定告警請附上註解與追蹤項TODO/issue