关于 format
用于在 OpenHarmony 仓库中格式化 C++ 改动行的开发技能。它通过 clang-format-diff.py 处理差异,避免重排未修改代码。
主要功能
- 01仅格式化差异中的改动行
- 02筛选 graphic_2d C++ 文件
- 03使用仓库内 clang-format 工具
适用场景
- 01提交前整理 C++ 改动格式
- 02避免格式化整份大型文件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openharmonyinsight/ openharmony-skills --skill format安装后在 Claude Code 中输入/format确认已加载。
详细介绍
工具位置
- clang-format:
../../../prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang-format - clang-format-diff.py:
../../../prebuilts/clang/ohos/linux-x86_64/llvm/share/clang/clang-format-diff.py
方法
使用 clang-format-diff.py,它专为此用例设计——从标准输入读取差异,并且只对已更改的行进行格式化。
工作命令
# Navigate to repo root and run:
git diff HEAD -- 'graphic_2d/**/*.cpp' 'graphic_2d/**/*.h' 2>/dev/null | \
python3 prebuilts/clang/ohos/linux-x86_64/llvm/share/clang/clang-format-diff.py \
-p1 -binary prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang-format -i
这样做的原因
git diff HEAD- 显示相对于 HEAD 的所有未暂存更改-- 'graphic_2d/**/*.cpp' 'graphic_2d/**/*.h'- 筛选 C++ 源文件clang-format-diff.py- 读取差异,并且只格式化已更改的行-p1- 从差异路径中去掉一个路径组成部分(graphic_2d/)-binary ...- 指定要使用的 clang-format 可执行文件-i- 直接将修改应用到文件
重要说明
- 必须从 OpenHarmony 仓库根目录运行,这样差异中的文件路径才能与实际文件位置匹配
- 只有当已更改的行不符合样式规则时,工具才会进行格式化
- 如果已更改的行格式正确,则不会进行任何修改
- 这样可以避免格式化文件中数千行未更改代码的问题
评论
支持 Markdown