Стиль кода
Соглашения о коде ядра и как применять их с clang-format и clang-tidy.
В корне репозитория ядра лежат файлы .clang-format и .clang-tidy. Форматируйте ими код перед отправкой изменений; на этой странице кратко описано, чего они и существующий код ожидают.
Форматирование
- Отступы табуляцией, шириной 4 колонки.
- Строки до 100 колонок.
- Открывающая фигурная скобка на той же строке, что и оператор.
- Остальное по стилю Mozilla, на котором основан
.clang-format.
Именование
| Что | Стиль | Пример |
|---|---|---|
| Классы, структуры, перечисления, функции, методы | PascalCase | ExtensionLoader, GetManager() |
| Интерфейсы | I + PascalCase | ILanguageModule, ILogger |
| Локальные переменные, параметры, публичные поля | camelCase | baseDir, printReport |
| Приватные члены | _camelCase | _impl, _data |
| Константы | k + PascalCase | kMaxFuncArgs |
| Значения перечислений | PascalCase | ExtensionState::Running |
Заголовки и комментарии
#pragma onceв каждом заголовке.- Публичные заголовки в
include/plugify/прячут реализацию за указателем (struct Impl; std::unique_ptr<Impl> _impl;), чтобы устройство экспортируемых классов не менялось при изменении реализации. - Публичный API документируйте комментариями Doxygen:
/** @brief ... */перед объявлением и///<после поля. - Ошибки возвращаются как
Result<T>(std::expected<T, std::string>), а не выбрасываются.
Инструменты
Отформатировать файл на месте:
Запустить статический анализ файла с командами компиляции из папки сборки:
Опция CMake PLUGIFY_USE_CLANG_TIDY=ON запускает clang-tidy при сборке. Большинство IDE (Visual Studio, CLion, VS Code) подхватывают оба файла автоматически.