mcpField
F
format

format

github.com/openharmonyinsight开发3567 次安装11 周前更新
代码仓库

关于 format

用于在 OpenHarmony 仓库中格式化 C++ 改动行的开发技能。它通过 clang-format-diff.py 处理差异,避免重排未修改代码。

主要功能

  1. 01仅格式化差异中的改动行
  2. 02筛选 graphic_2d C++ 文件
  3. 03使用仓库内 clang-format 工具

适用场景

  1. 01提交前整理 C++ 改动格式
  2. 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
这样做的原因
  1. git diff HEAD - 显示相对于 HEAD 的所有未暂存更改
  2. -- 'graphic_2d/**/*.cpp' 'graphic_2d/**/*.h' - 筛选 C++ 源文件
  3. clang-format-diff.py - 读取差异,并且只格式化已更改的行
  4. -p1 - 从差异路径中去掉一个路径组成部分(graphic_2d/)
  5. -binary ... - 指定要使用的 clang-format 可执行文件
  6. -i - 直接将修改应用到文件
重要说明
  • 必须从 OpenHarmony 仓库根目录运行,这样差异中的文件路径才能与实际文件位置匹配
  • 只有当已更改的行不符合样式规则时,工具才会进行格式化
  • 如果已更改的行格式正确,则不会进行任何修改
  • 这样可以避免格式化文件中数千行未更改代码的问题

评论

支持 Markdown