用途:对当前 git 改动运行 clang-format,只保留改动行上的格式化修复,避免格式化文件中大量未改动的行。
主要能力:借助 clang-format-diff.py 从标准输入读取 diff,仅对发生变更的行应用格式化;若改动行已符合风格规则则不产生改动。
工具位置: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。
使用方式:在 OpenHarmony 仓库根目录运行以下命令:
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 的全部未暂存改动;路径过滤限定 C++ 源文件;-p1 从 diff 路径中剥离一层路径(graphic_2d/);-binary 指定 clang-format 可执行文件;-i 直接写回文件。
限制:必须在 OpenHarmony 仓库根目录运行,以保证 diff 中的文件路径与实际位置一致;仅当改动行违反风格规则时才应用格式化。其他平台、安装方式或收费信息暂未提供。