mcpField
C
C++ Code Formatter

C++ Code Formatter

github.com/calcitem開発205123 回インストール7 週間前に更新
リポジトリ

C++ Code Formatter について

C++ Code Formatterは、Sanmillの規約に沿ってC++コードを整形し、スタイルを確認するスキルです。プロジェクトスクリプトまたはclang-formatで、プロジェクト全体やステージ済みファイルを扱えます。

主な機能

  1. 01プロジェクト規則に沿ったC++整形
  2. 02プロジェクトスクリプトによるDart整形
  3. 03clang-formatでのスタイル確認
  4. 04任意のcpplintチェック
  5. 05Gitのステージ済みファイルの整形

活用シーン

  1. 01編集後のコード整形
  2. 02コミット前のスタイル確認
  3. 03プロジェクトソースの一括整形
  4. 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 バージョンを使用します
  • 策定事項:チームの整形規約を策定します

ベストプラクティス

  1. こまめに整形する:重要な変更を加えるたびに整形します
  2. コミット前に整形する:コミット前に必ず整形します
  3. 整形による変更を確認する:整形結果を確認せずにコミットしないでください
  4. プロジェクトスクリプトを使用する:手動コマンドより ./format.sh を優先します
  5. 整形のコミットを分ける:整形の変更はロジックの変更と分けます
  6. 手作業で整形しない:ツールに任せます

必要なツール

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/

コメント