C++ Code Formatter について
C++ Code Formatterは、Sanmillの規約に沿ってC++コードを整形し、スタイルを確認するスキルです。プロジェクトスクリプトまたはclang-formatで、プロジェクト全体やステージ済みファイルを扱えます。
主な機能
- 01プロジェクト規則に沿ったC++整形
- 02プロジェクトスクリプトによるDart整形
- 03clang-formatでのスタイル確認
- 04任意のcpplintチェック
- 05Gitのステージ済みファイルの整形
活用シーン
- 01編集後のコード整形
- 02コミット前のスタイル確認
- 03プロジェクトソースの一括整形
- 04CI/CDでのフォーマット確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ calcitem/ sanmill --skill c++-code-formatterインストール後、Claude Code で/c++-code-formatterを入力して読み込まれたか確認します。
詳細
C++ コードフォーマッター
目的
このスキルは、Sanmill の C++ コードを整形し、コードベース全体でコードスタイルの一貫性と保守性を確保するのに役立ちます。
使用例
- 変更後に C++ コードを整形する
- コードスタイルへの準拠を確認する
- コミット前にコードを整形する
- プロジェクトの C++ ファイルを一括で整形する
- CI/CD パイプラインでコードスタイルを検証する
クイックコマンド
プロジェクトスクリプトを使用する(推奨)
# Format all C++ and Dart code (will auto-commit)
./format.sh
# Format without auto-commit
./format.sh s
スクリプトでは、次のファイルを整形します。
src/、include/、tests/内のすべての.hファイルと.cppファイル- プロジェクト内のすべての Dart ファイル
- プロジェクトの
.clang-format設定を使用
手動で整形する
# Format single file
clang-format -i src/position.cpp
# Format multiple files
clang-format -i src/*.cpp src/*.h
# Check without modifying (dry-run)
clang-format --dry-run --Werror src/position.cpp
設定
プロジェクトの設定ファイル
.clang-format- C++ の整形ルール(プロジェクトのルート)CPPLINT.cfg- コードスタイルのチェックルール.editorconfig- エディター固有の設定
現在の設定を表示する
cat .clang-format
コードスタイルのチェック
# Check specific file with cpplint
cpplint --config=CPPLINT.cfg src/position.cpp
# The configuration file defines which checks to enable/disable
Git との連携
コミット前のワークフロー
# 1. Make code changes
# 2. Format code
./format.sh s
# 3. Review changes
git diff
# 4. If correct, commit
git add .
git commit -m "Your commit message"
ステージング済みファイルのみを整形する
git diff --cached --name-only --diff-filter=ACM | \
grep -E '\.(cpp|h|cc|hpp)$' | \
xargs clang-format -i
よくある問題と解決策
1. 整形によってコード構造が崩れる
- 確認:
.clang-formatの設定を確認します - 確認:clang-format のバージョンがチームの標準と一致していることを確認します
- 回避策:特別なブロックには
// clang-format offと// clang-format onを使用します
2. 一括整形によって大規模な変更が発生する
- 解決策:複数回に分けて整形し、それぞれ別にコミットします
- ラベル:「style: Format C++ code」のような明確なコミットメッセージを使用します
- 共有:チームメンバーに同期するよう連絡します
3. 開発者間で整形の競合が起きる
- 徹底事項:全員が同じ
.clang-formatファイルを使用します - 徹底事項:全員が同じ clang-format バージョンを使用します
- 策定事項:チームの整形規約を策定します
ベストプラクティス
- こまめに整形する:重要な変更を加えるたびに整形します
- コミット前に整形する:コミット前に必ず整形します
- 整形による変更を確認する:整形結果を確認せずにコミットしないでください
- プロジェクトスクリプトを使用する:手動コマンドより
./format.shを優先します - 整形のコミットを分ける:整形の変更はロジックの変更と分けます
- 手作業で整形しない:ツールに任せます
必要なツール
clang-format
# Check if installed
clang-format --version
# Install on Ubuntu/Debian
sudo apt-get install clang-format
# Install on macOS
brew install clang-format
cpplint(任意)
整形以外の追加のスタイルチェックに使用します。
出力形式
整形処理では、次の内容を報告します。
- ✓ 正常に整形されたファイル
- ⚠ スタイル違反があるファイル
- ✗ 整形に失敗したファイル
- 📊 処理したファイルの合計数
- 💡 スタイル改善の推奨事項
参考リソース
- 設定:
.clang-format、CPPLINT.cfg、.editorconfig(プロジェクトのルート) - 整形スクリプト:
format.sh(プロジェクトのルート) - clang-format のドキュメント:https://clang.llvm.org/docs/ClangFormat.html
- C++ ソースの場所:
src/、include/、tests/
コメント
Markdown 対応