c-cpp-cookies
  • Полезные материалы
    • About
  • Настройка окружения
    • Git
      • Git CLI
      • Git GUI
      • Git Web
      • Git в среде разработке
        • Visual Studio
        • Visual Studio Code
        • CLion
        • Qt Creator
    • Стандарты (они же ISO)
    • Qt about
    • IDE
      • Visual Studio Code
        • Код в Visual Studio Code
        • Разработка в Visual Studio Code
      • Visual Studio
        • Настройки Visual Studio и проектов
        • Код в Visual Studio
        • Visual Studio + GitHub
      • Qt + Qt Creator
        • Установка Qt и QtCreator
        • Примеры проектов на Qt
      • CLion
        • Настройки CLion
        • Код в CLion
        • CLion + GitHub
    • Компиляторы
      • Clang + Visual Studio
      • Clang + CLion
  • Best practices
    • Антипаттерны и способы улучшения кода
      • 0. Освобождение ресурсов
      • 1. Чтение данных из файла
      • 2. Открытие файлов
      • 3. Объявление переменных
      • 4. Выделение памяти
      • 5. Необдуманный код
      • 6. Глубокие if
      • 7. Длинные if
      • 9. Non-void функции
      • 10. Создание массивов
      • 11. Проверка формата файла
  • Сборка программы
    • Сборка программы
    • Системы сборки / Build systems
      • Проект и решение
      • Make
      • Ninja
      • CMake
      • MSBuild
    • Подключение внешних библиотек
    • Библиотеки
  • Отладка
    • Отладка / Debugging
    • Запуск программы
    • Точки останова / Breakpoints
      • Обычные точки останова / General breakpoint
      • Условные точки останова / Conditional breakpoint
      • Зависимые точки останова / Dependent breakpoint
      • Временные точки останова / Temporary breakpoint
      • Точки трассировки / Breakpoint actions и tracepoints
    • Стек вызовов / Call stack
    • Локальные переменные / Locals
    • Просмотр области памяти / Memory view
    • Исключения / Exceptions
  • Анализ
    • Поиск утечек памяти
    • Санитайзеры
  • Возможности IDE
    • Возможности IDE
    • Продвинутый текстовый редактор
    • Закладки / Bookmarks
    • Платформы / Platforms
    • Конфигурации сборки / Build configurations
    • Шаблонные проекты / Project templates
    • Терминал / Terminal
    • Сборка / Build
    • Запуск программы / Run program
    • Code style
    • Работа с Github Actions
  • Тестирование
    • Тестирование
    • Google test
      • Gtest в VS
      • Gtest в CLion
      • Gtest в VSCode
    • Покрытие кода (code coverage)
Powered by GitBook
On this page
  • editorconfig
  • clang-format
  • clang-format в терминале
  • clang-format в Visual Studio
  • clang-format в Visual Studio Code
  • clang-format в CLion
  • clang-format в Qt Creator
  1. Возможности IDE

Code style

PreviousЗапуск программы / Run programNextРабота с Github Actions

Last updated 7 months ago

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

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

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

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

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

    • UNIX/Ubuntu:

      sudo apt install clang-format
    • 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)

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

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

Windows: установить LLVM (то есть поставить компилятор Clang с кучей утилит) и найти файл LLVM\bin или скачать напрямую, например .

здесь
здесь
clang-format
Beautifier
отсюда
editorconfig
https://marketplace.visualstudio.com/items?itemName=xaver.clang-formatmarketplace.visualstudio.com
Основная документация
Code style как стандарт разработкиHabr
Интересная статья про Code Style
EditorConfig
Clang-Format Style Options — Clang 15.0.0git documentation
Опции clang-format
Logo
Logo
Logo