.clang-format
.clang-format — описывает правила форматирования кода с помощью YAML. Поддерживается большинством современных IDE. 90% проблем форматирования решается c помощью .clang-format
BasedOnStyle: Microsoft
IndentWidth: 4
UseTab: Never
TabWidth: 4
BreakBeforeBraces: Allman
ColumnLimit: 140
AccessModifierOffset: -4
SortIncludes: false
AllowShortBlocksOnASingleLine: false
AlignAfterOpenBracket: DontAlign
AllowShortFunctionsOnASingleLine: Inline
PointerAlignment: Left
AllowShortIfStatementsOnASingleLine: true
SpacesBeforeTrailingComments: 2
AllowShortCaseLabelsOnASingleLine: true
IndentCaseLabels: true
AlwaysBreakTemplateDeclarations: Yes
Для оставшихся 10% проблем необходимо иметь документ по стандартам кодирования.
Хороший пример для этого Google C++ Style Guide.
Unreal Engine также имеет статью в документации на эту тему, но это всего лишь статья, полноценным документом это назвать нельзя. В любом случае там полезная информация, рекомендую с ней ознакомиться.
Автоформатирование также можно настроить при коммите в репозиторий с помощью pre-commit .git hook. Об этом рассказывается в видео ниже (справка по git hooks).
Рекомендую для форматирования использовать плагины VS или создать собственный bat файл, в корне проекта:
format_all_files.bat
который будет вызывать .clang-format и форматировать все кодовые файлы проекта, с содержимым:
@echo off
set ProjectRoot=C:\_Projects\_Jenkins\TPS
set SourceCodePath=%ProjectRoot%\Source
FOR /R "%SourceCodePath%" %%f IN (*.cpp, *.h, *.cs) DO (
clang-format -i "%%f"
echo %%f
)
PAUSE
Перед этим необходимо путь до .clang-format добавить в переменную среды PATH, либо использовать полный путь до файла. Исполняемый файл .clang-format устанавливается вместе с VS и находится в директории:
c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\Llvm\bin\
Last updated
Was this helpful?