Code style

Стандарт оформления кода - набор правил и соглашений, используемых при написании исходного кода. Наличие общего стиля программирования облегчает понимание и поддержание исходного кода, написанного более чем одним программистом, а также упрощает взаимодействие нескольких человек при разработке программного обеспечения.

Интересная статья про Code Style

Аналог clang-format. Применяется по умолчанию в Visual Studio (подробнее здесь и здесь).

Опции clang-format

clang-format - это служебная программа, которая упрощает задание стиля и формата кода на основе набора правил, которые можно настроить в файле .clang-format или _clang-format.

Можно создать свой файл .clang-format или _clang-format для настраиваемого определения формата. Такой файл уже присутствует в папке проекта, Visual Studio использует его для форматирования всех файлов исходного кода в этой папке и вложенных в нее папках.

clang-format в терминале

В первую очередь необходимо скачать llvm: https://github.com/llvm/llvm-project/releases/tag/llvmorg-18.1.8 либо установить (Unix) при помощи следующих команд:

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -

# clang-18
sudo add-apt-repository "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-18 main"
sudo apt install clang-18 clang-tools-18 clang-18-doc libclang-common-18-dev libclang-18-dev libclang1-18 clang-format-18 clangd-18 libc++-18-dev libfuzzer-18-dev lldb-18 lld-18 libc++abi-18-dev

Пример использования:

clang-format -i "main.c" --style=file

Пояснение по примеру:

  • -i – изменения сразу будут записаны в этот же файл;

  • --style=file – используется стиль оформления из файла, лежащего там же, где исполняется команда.

Из полезного: -n – просмотр изменений без модификации файла.

Простое применение:

  1. Клонируем репозиторий курса.

  2. Переносим в корень репозитория файлы с исходным кодом.

  3. Запускаем по ним из корня репозитория форматирование clang-format-ом с -i.

clang-format в Visual Studio

Visual Studio по умолчанию использует форматирование согласно дефолтным editconfig настройкам. Но ей можно указать, что необходимо использовать clang-format.

Это можно сделать следующим образом:

  1. Положить файл .clang-format в директорию проекта.

  2. Переходим в Debug - Options - Text Editor - C/C++ - Code Style - Formatting.

  3. Включаем Enable ClangFormat support.

  4. Настраиваем ClangFormat execution следующим образом:

    1. for all formating scenarios -.clang-format применяется и при ручном запуске форматирования кода, и при его написании

    2. only for manually invoked formatting command -.clang-format применяется только в случае ручного форматирования кода

  5. (Опционально) Если выбран 4.2 или вы не сразу положили .clang-format в директорию проекта, то проходимся по каждому файлу кода и нажимаем Edit - Advanced - Format Document.

clang-format в Visual Studio Code

Основная документация

clang-format в CLion

CLion имеет встроенный clang-format, но CLion можно указать, что нужно использовать другой файл:

  1. Положить файл .clang-format в директорию проекта.

  2. Перейти в Settings | Editor | Code Style - ClangFormat.

  3. Включить Enable ClangFormat (only for C/C++/Objective-C).

clang-format в Qt Creator

Для автоматического форматирования кода необходимо установить плагин Beautifier.

После установки плагина:

  1. Положить файл .clang-format в директорию проекта.

  2. Установить clang-format:

    • UNIX/Ubuntu:

      sudo apt install clang-format
    • Windows: установить LLVM (то есть поставить компилятор Clang с кучей утилит) и найти файл LLVM\bin или скачать напрямую, например отсюда.

    • MacOS:

      brew install clang-format
  3. Перейти в Tools - Options - Beautifier.

  4. В General включить Enable auto format on file save.

  5. Во вкладке ClangFormat

    1. Убедиться, что в Clang Format Command найдет установленный ClangFormat (clang-format или clang-format.exe)

    2. Рекомендуется выбрать в Use predefined style опцию File (аналогично Visual Studio)

Last updated