name: "C++ Code Formatter" description: "Format C++ code in Sanmill project to ensure consistent code style; use when formatting C++ code or checking code style compliance."
C++ Code Formatter
Purpose
This skill helps format Sanmill's C++ code to ensure code style consistency and maintainability across the codebase.
Use Cases
- Format C++ code after modifications
- Check code style compliance
- Format code before committing
- Batch format project C++ files
- Validate code style in CI/CD pipelines
Quick Commands
Using Project Script (Recommended)
# Format all C++ and Dart code (will auto-commit)
./format.sh
# Format without auto-commit
./format.sh s
The script formats:
- All
.hand.cppfiles insrc/,include/,tests/ - All Dart files in the project
- Uses project's
.clang-formatconfiguration
Manual Formatting
# 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
Configuration
Project Configuration Files
-
.clang-format- C++ formatting rules (project root) -
CPPLINT.cfg- Code style checking rules -
.editorconfig- Editor-specific settings
View Current Configuration
cat .clang-format
Code Style Checking
# Check specific file with cpplint
cpplint --config=CPPLINT.cfg src/position.cpp
# The configuration file defines which checks to enable/disable
Git Integration
Pre-commit Workflow
# 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"
Format Only Staged Files
git diff --cached --name-only --diff-filter=ACM | \
grep -E '\.(cpp|h|cc|hpp)$' | \
xargs clang-format -i
Common Issues & Solutions
1. Format Breaks Code Structure
-
Check: Verify
.clang-formatconfiguration - Check: Ensure clang-format version matches team standard
-
Workaround: Use
// clang-format offand// clang-format onfor special blocks
2. Batch Formatting Creates Large Changes
- Solution: Format in batches and commit separately
- Label: Use clear commit message like "style: Format C++ code"
- Communicate: Notify team members to sync
3. Format Conflicts Between Developers
-
Ensure: All use same
.clang-formatfile - Ensure: All use same clang-format version
- Establish: Team formatting conventions
Best Practices
- Format frequently: Format after each significant change
- Format before commits: Always format before committing
- Review formatting changes: Don't blindly commit formatting
-
Use project script: Prefer
./format.shover manual commands - Separate formatting commits: Keep formatting separate from logic changes
- Don't hand-edit formatting: Let tools do the work
Tools Required
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 (Optional)
For additional style checking beyond formatting.
Output Format
Formatting operations should report:
- ✓ Files formatted successfully
- ⚠ Files with style violations
- ✗ Files that failed to format
- 📊 Total files processed
- 💡 Style improvement recommendations
Reference Resources
-
Configuration:
.clang-format,CPPLINT.cfg,.editorconfig(project root) -
Format script:
format.sh(project root) - clang-format docs: https://clang.llvm.org/docs/ClangFormat.html
-
C++ source locations:
src/,include/,tests/
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
187
GitHub Forks
27
Created
Jan 2026
Last Updated
4个月前
tools
tools ide plugins
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!