c-code-formatter | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / c-code-formatter

c-code-formatter

maintained by calcitem

star 187 account_tree 27 verified_user MIT License
bolt View GitHub

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 .h and .cpp files in src/, include/, tests/
  • All Dart files in the project
  • Uses project's .clang-format configuration

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-format configuration
  • Check: Ensure clang-format version matches team standard
  • Workaround: Use // clang-format off and // clang-format on for 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-format file
  • Ensure: All use same clang-format version
  • Establish: Team formatting conventions

Best Practices

  1. Format frequently: Format after each significant change
  2. Format before commits: Always format before committing
  3. Review formatting changes: Don't blindly commit formatting
  4. Use project script: Prefer ./format.sh over manual commands
  5. Separate formatting commits: Keep formatting separate from logic changes
  6. 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)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 187
GitHub Forks 27
Created Jan 2026
Last Updated 4个月前
tools tools ide plugins

Related Skills

creating-pr
chevron_right
reviewing-pr
chevron_right
writing-skills
chevron_right
codex
chevron_right
smart-illustrator
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.