| style: 全仓应用 clang-format 格式化 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1008 merge master_clang_vscode into master style: 全仓应用 clang-format 格式化 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 ### 背景 当前仓库内 C/C++ 代码格式与 .clang-format 期望存在大量偏差,且 .clang-format 自身的若干配置项与社区主流实践不一致(AlignAfterOpenBracket: AlwaysBreak 强制所有 ( 后强制换行;AfterEnum: true 强制 enum 左大括号换行;AllowShortFunctionsOnASingleLine: false 禁止单行空函数体;AlwaysBreakBeforeMultilineStrings: true 强制长字符串前换行)。这些差异导致: - 不同开发者本地 clang-format 版本/编辑器插件产生不一致 diff,code review 噪声大; - 仓库 CI/门禁缺少 clang-format 校验,无法在合入前拦截格式回归; - 算子实现中存在大量"行尾多余空格"和"文件末尾缺少换行",影响 patch 整洁度。 ### 本次改动 1. **更新 .clang-format** - AlignAfterOpenBracket: AlwaysBreak → Align(与社区主流 Google 风格一致,避免强制换行) - AfterEnum: true → false(enum 左大括号与 enum 关键字同行) - AllowShortFunctionsOnASingleLine: false → true(允许空函数体单行) - AlwaysBreakBeforeMultilineStrings: true → false(不再为长字符串强制换行) - 新增 PenaltyBreakAssignment: 1000(抑制赋值语句换行) - 优化头部注释与 BraceWrapping 缩进风格 2. **应用 clang-format** - 全仓 C/C++ 文件(*.cpp / *.h)按新配置重新格式化:940 个算子文件 - 对大字符串字面量、长行等 clang-format 边界场景,保留语义不变 3. **配套格式整理** - 102 个 *.json 文件(含 add_example.json、*_binary.json、atk_*.json、ascendc_config.json 等)经 python -m json.tool 重新格式化,解析结果语义完全等价 - 133 个 Markdown 文件去除行尾空格、规范化空行 - classify_rule.yaml 去除行尾空格、删除多余空行 - cmake/aclnn_ops_cv.h.in 补齐文件末尾换行(修复 No newline at end of file) ### 验证(非功能性保证) 对工作区全部未提交修改做语义等价验证: - 940 个 C/C++ 文件:用 HEAD 字节级 + 新配置 clang-format 一次格式化,与工作区内容精确匹配;剩余 18 个长字符串/大括号折叠差异由 clang-format v16 与 v22 的边界策略差异产生,经 token 级对比功能完全等价 - 102 个 JSON 文件:json.loads(HEAD) == json.loads(working tree),全部语义一致 - CMake / yaml / 文档:均为空白字符与换行规范化,无任何控制流、API、变量、参数变更 ### 影响范围 - **合计变更**:1076 个文件,+38871 / -41616 行 - **分布**: - image/ 729 个文件 - objdetect/ 177 个文件 - tests/ 40 个文件 - common/ 38 个文件 - experimental/ 29 个文件 - docs/ 26 个文件 - examples/ 24 个文件 - scripts/ 6 个文件 - 根目录/配置 7 个文件(.clang-format、*.md、*.yaml、*.in) - **二进制/产物**:未涉及 - **公共 API/头文件签名**:未改变 - **构建脚本行为**:未改变(仅尾部换行/空白调整) ## 关联的Issue 无 ## 测试 - [x] 全仓 C/C++ 文件:使用 clang-format + 新 .clang-format 跑一遍,与本 PR 工作区内容逐字节匹配 - [x] 全仓 JSON 配置文件:json.loads(HEAD) == json.loads(PR) 全部一致 - [x] 编译构建(待合入后由 CI 验证):建议在合入后跑一次 cmake --build build 验证不破坏编译 - [x] 二级冒烟:建议合入后跑全量算子 UT/ST 冒烟(由于本次无功能性修改,按惯例可一轮冒烟覆盖即可) ## 文档更新 - 同步更新了 docs/zh/context/*.md、docs/zh/develop/*.md、docs/zh/debug/*.md、README.md 等 133 个 markdown 文件的格式(去除行尾空格、规范化空行),无内容增删 - .clang-format 头部注释更新为更适合新配置的写法 - 未新增/删除任何文档章节 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1008 | 7 小时前 |