Перейти к содержимому
Последнее обновление

Правила форматирования кода 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 (он уже включает нужную версию) или самостоятельно соберите и установите исполняемый файл
macOSbrew install clang-format@16

Примечание о наборе инструментов LDB: последняя версия (>= v0.18) уже включает готовый исполняемый файл clang-format 16.0.0. Скачать его можно на странице релизов ldb_toolchain_gen.

Использование плагина IDE​

IDEПлагинПримечания
CLionClangFormat (найдите и скачайте в разделе File -> Setting -> Plugins)Убедитесь, что используется clang-format версии 16
VS CodeРасширение Clang-FormatНеобходимо вручную указать путь к исполняемому файлу clang-format

Использование​

Запуск из командной строки​

  1. Перейдите в корневой каталог Doris:

    cd ${DORIS_HOME}
  2. Запустите скрипт форматирования:

    build-support/clang-format.sh

Примечание: для работы скрипта clang-format.sh на компьютере должен быть установлен Python 3.

Использование clang-format в CLion​

После установки плагина ClangFormat нажмите Reformat Code, чтобы отформатировать текущий файл.

Использование clang-format в VS Code​

  1. Установите расширение Clang-Format.

  2. Откройте страницу настроек VS Code, найдите clang_format и задайте следующую конфигурацию:

    {
    "clang_format_path": "$clang-format path$",
    "clang_format_style": "file"
    }
  3. Щёлкните правой кнопкой мыши и выберите Format Document, чтобы отформатировать файл.

Часто задаваемые вопросы​

Вопрос: могут ли разные версии clang-format приводить к различиям в форматировании?

Да. Используйте только версии серии clang-format 16, иначе форматирование может не соответствовать требованиям проекта, а проверка CI может завершиться ошибкой.

Вопрос: форматируется ли сторонний код?

Нет. Каталоги, перечисленные в .clang-format-ignore, пропускаются, чтобы сохранить исходный стиль кода сторонних зависимостей.