VSCode
Установка
На официальном сайте (ссылка в header-e — кликабельна) можно найти информацию об установке на любую ОС.
На Ubuntu альтернативно доступна установка через apt, если вы хотите обновлять среду разработки через пакетный менеджер.
Подробнее о такой установке можно почитать тут
На MacOS доступна установка через пакетный менеджер Homebrew:
$ brew install --cask visual-studio-code
clangd
Поскольку “из коробки” VSCode просто текстовый редактор, для работы с C++ рекомендуется установить расширение clangd.
Оно превращает VSCode в полноценную IDE с autocomplete, подсветкой ошибок, навигацией по коду и всем необходимым.
Для установки нажмите кнопку install.
После установки расширения, вам будет предложено установить clangd-сервер.
(Если не предложило, или вы хотите конкретную версию, нужно установить вручную)
Это выполняется один раз и далее можно пользоваться без всяких проблем.

clang-tidy
clangd имеет встроенный clang-tidy.
clang-format
clangd имеет встроенный clang-format.
Чтобы отформатировать файл вам нужно нажать ctrl + shift + P (cmd + shift + P для MacOS) и выбрать Format document.
Возможно, при первом использовании вас попросят выбрать formatter, выбирайте clangd.

Интеграция с CMake presets
Для интеграции с CMake и CMakePresets необходимо установить расширение CMakeTools. А также сам CMake.
При открытии проекта вам будет предложено выбрать пресет для сборки.
Обратите внимание, что проект нужно открывать в корне репозитория, иначе VSCode не сможет определить файл с пресетами и все пути нарушаться.
Также, выбрать пресет можно вручную с помощью: ctrl + shift + P > CMake: Select Configure Preset.
Когда вы выбрали пресет, можно сделать генерацию с помощью: ctrl + shift + P > CMake: Configure.
Чтобы clangd увидел compile_commands.json рекомендуется использовать вариант, спецефичный для VSCode. Нужно указать в настройках расширения путь до директории сборки CMake.
Path: Preferences | Settings | Extensions | clangd.
В поле Clangd: Arguments нажмите add item и вставьте: --compile-commands-dir=${command:cmake.buildDirectory}.
Обратите внимание, для чего вы делаете настройку:
User— глобальные настройки для всех проектов. (Этот вариант предпочтительнее, чтобы не настраивать каждый раз)Workspace— настройки только для открытого в данный момент проекта.

Альтернативно можно воспользоваться вариантами, описанными тут.
После этого необходимо перезагрузить сервер с помощью: ctrl + shift + P > clangd: Restart language server.
Теперь когда вы хотите собрать проект, достаточно сделать: ctrl + shift + P > CMake: Build.
Интеграция с Docker
Для интеграции с Docker в VSCode очень удобно использовать Dev Containers.