Правила форматирования кода C++
Apache Doris использует clang-format для форматирования кода C++ и предоставляет скрипты-обёртки в каталоге build-support, чтобы разработчики могли привести код к единому формату перед отправкой изменений.
Скрипты-обёртки
| Скрипт | Назначение |
|---|---|
build-support/clang-format.sh | Форматирует код C/C++ в каталогах be/src и be/test |
build-support/check-format.sh | Проверяет форматирование кода в каталогах be/src и be/test и выводит различия, не изменяя файлы |
Настройка стиля кода
- Стиль кода Apache Doris основан на Google Style с небольшими изменениями. Файл конфигурации
.clang-formatнаходится в корневом каталоге Doris. .clang-formatсовместим сclang-format-16.0.0и более поздними версиями.- Файл
.clang-format-ignoreсодержит список кода, который не следует форматировать. Обычно это сторонние библиотеки, для которых нужно сохранить исходный стиль.
Настройка окружения
Необходимо установить clang-format или использовать плагин clang-format, доступный в вашей IDE или редакторе. В настоящее время Doris использует clang-format 16 для форматирования кода (разные версии clang-format могут давать разные результаты).
Установка clang-format
| Система | Рекомендуемый способ |
|---|---|
| Linux | Используйте набор инструментов LDB (он уже включает нужную версию) или самостоятельно соберите и установите исполняемый файл |
| macOS | brew install clang-format@16 |
Примечание о наборе инструментов LDB: последняя версия (>= v0.18) уже включает готовый исполняемый файл clang-format 16.0.0. Скачать его можно на странице релизов ldb_toolchain_gen.
Использование плагина IDE
| IDE | Плагин | Примечания |
|---|---|---|
| CLion | ClangFormat (найдите и скачайте в разделе File -> Setting -> Plugins) | Убедитесь, что используется clang-format версии 16 |
| VS Code | Расширение Clang-Format | Необходимо вручную указать путь к исполняемому файлу clang-format |
Использование
Запуск из командной строки
-
Перейдите в корневой каталог Doris:
cd ${DORIS_HOME} -
Запустите скрипт форматирования:
build-support/clang-format.sh
Примечание: для работы скрипта
clang-format.shна компьютере должен быть установлен Python 3.
Использование clang-format в CLion
После установки плагина ClangFormat нажмите Reformat Code, чтобы отформатировать текущий файл.
Использование clang-format в VS Code
-
Установите расширение
Clang-Format. -
Откройте страницу настроек VS Code, найдите
clang_formatи задайте следующую конфигурацию:{
"clang_format_path": "$clang-format path$",
"clang_format_style": "file"
} -
Щёлкните правой кнопкой мыши и выберите
Format Document, чтобы отформатировать файл.
Часто задаваемые вопросы
Вопрос: могут ли разные версии clang-format приводить к различиям в форматировании?
Да. Используйте только версии серии clang-format 16, иначе форматирование может не соответствовать требованиям проекта, а проверка CI может завершиться ошибкой.
Вопрос: форматируется ли сторонний код?
Нет. Каталоги, перечисленные в .clang-format-ignore, пропускаются, чтобы сохранить исходный стиль кода сторонних зависимостей.