format について
OpenHarmony リポジトリで変更された C++ 行を整形する開発スキルです。clang-format-diff.py を使い、未変更コードの再整形を避けます。
主な機能
- 01差分内の変更行だけを整形
- 02graphic_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- 差分のパスからパス要素を 1 つ(graphic_2d/)取り除きます-binary ...- 使用する clang-format 実行ファイルを指定します-i- ファイルに直接編集を適用します
重要な注意事項
- OpenHarmony のリポジトリルートから実行する必要があります。差分内のファイルパスを実際のファイルの場所と一致させるためです
- 変更された行がスタイル規則に違反している場合にのみ、ツールはフォーマットを適用します
- 変更された行がすでに適切にフォーマットされている場合、変更は行われません
- これにより、ファイル内の変更されていない何千もの行までフォーマットしてしまう問題を回避できます
コメント
Markdown 対応