en un clic
en un clic
Review code with Doris-specific checklists
Run clang-tidy on newly added/modified BE C++ code
Fix FE (Java) code style issues using Checkstyle
Run Doris docker-based regression tests from a clean package
| name | be-code-style |
| description | Fix BE (C++) code formatting issues using clang-format |
| compatibility | opencode |
Fix C++ code formatting issues in the BE and Cloud modules using the project's clang-format configuration (v16).
You need to confirm that the major version of the called clang-format is 16. If the current environment's default does not meet this requirement, try the following:
.vscode/settings.json exists, use the clang-format.executable item in it..vscode/settings.json from the main directory.PATH environment variable, the current directory, and the main directory's custom_env.sh. Look for a clang-format with the major version number 16 in that path and its parent directory.Run the project's formatting script, which enforces clang-format v16:
build-support/clang-format.sh
This formats all C++ files under be/src, be/test, cloud/src, cloud/test in-place, respecting .clang-format and .clang-format-ignore.
Important: Always use this script instead of invoking clang-format directly. The script checks that clang-format version 16 is installed and exits with an error if the wrong version is found. Using a different version will produce inconsistent formatting.
To verify formatting without modifying files:
build-support/check-format.sh
This outputs a diff of any formatting violations and exits non-zero if there are any.
After running clang-format.sh, review the changes with git diff to verify only formatting was changed, then stage and commit.
| File | Purpose |
|---|---|
.clang-format | Main formatting rules (Google-based, 100 col, 4-space indent) |
.clang-format-ignore | Files excluded from formatting (third-party, generated) |
build-support/run_clang_format.py | Python wrapper for parallel execution |
The following are excluded from formatting (see .clang-format-ignore):
be/src/apache-orc/*, be/src/clucene/*, be/src/gutil/*be/src/glibc-compatibility/*cloud/src/common/defer.h| Problem | Solution |
|---|---|
clang-format not found | Install clang-format v16 or set CLANG_FORMAT_BINARY env var |
version is not 16 | Install clang-format v16; on macOS: brew install llvm@16 |
| Files not being formatted | Check .clang-format-ignore for exclusions |