--- name: Code style description: Instructions for code formatting and style guidelines in the Carbon toolchain. --- # Code style ## License - **Licenses**: All Carbon files outside of `third_party/` should have a license following [CONTRIBUTING license instructions](/CONTRIBUTING.md#license). ## Formatting - **Bazel**: Use `pre-commit run buildifier --files ` to format Bazel files. - **C++**: Use `pre-commit run clang-format --files ` to format C++ files. - **Carbon**: The toolchain's `format` command doesn't work well right now. Instead, try to format Carbon code based on other Carbon files and the C++ style. - **Markdown**: Use `pre-commit run prettier --files ` to format markdown files. - **Python**: Use `pre-commit run black --files ` to format Python files. ## Style Guides - **C++ style**: Follow the [Carbon C++ Project Style Guide](/docs/project/cpp_style_guide.md). - **Markdown style**: Follow the [Google developer documentation style guide](https://developers.google.com/style). - **Python style**: Follow the [PEP 8](https://peps.python.org/pep-0008/) style guide. - Wrap code and comments to 80 columns. - Run `pre-commit run flake8 --files ` to check Python style.