Здравствуйте, товарищи программисты и все кто им сочувствует. Я хотел бы предложить обзор возможностей редактора Visual Studio Code в связке с системой сборки QBS. Кому эта тема интересна, добро пожаловать по кат.

Примечание: Напомню, что QBS разрабатывалась компанией Qt Company, которая в дальнейшем отказалась от разработки данного продукта и отдала его на откуп сообществу. На данный момент QBS активно развивается и выходят новые релизы. Это я на тот случай, чтобы не было «глупых» комментариев на этот счет. Так сказать, расставляю точки над И.

До недавнего времени система сборки QBS поддерживалась только в IDE QtCreator.

Но теперь есть возможность использования этой замечательной системы сборки (описывать, почему она замечательная я здесь не буду) с открытым редактором исходного кода Visual Studio Code.

Буквально, чуть больше месяца назад ребята из QBS-community подкинули идейку: «а почему бы собственно, не создать плагин для Visual Studio Code?». Хмм, действительно, сама Visual Studio Code имеет широкое распространение среди определенной части человечества, да и QBS имеет специально разработанное JSON подобное API для упрощения интеграции с любыми IDE. И… работа закипела.

В результате этой работы на свет появилось расширение QBS для Visual Studio Code, которое уже имеет следующие возможности:

  • Открыть директорию с файлами проектов.
  • Выбрать нужный проект для сборки (если в директории несколько файлов).
  • Выбрать профиль для сборки (аналог комплекта с компиляторами).
  • Выбрать конфигурацию сборки (debug/release).
  • Выбрать конкретный продукт для сборки (или все продукты).
  • Выбрать конкретный продукт для запуска в терминале.
  • Выбрать конкретный продукт для его отладки.
  • Работает автоматическая «интеллектуальная» подсветка C/C++ кода.
  • Работает базовая подсветка для файлов *.qbs.
  • Строится дерево проекта со всеми артефактами.

Примечание: На данный момент это расширение еще не опубликовано в маркете Visual Studio Code, т.к. еще необходимо некоторое время для доработки.

Итак, давайте подробнее разберем, как же использовать данное расширение.

Установка зависимостей


Здесь описывается базовый процесс установки QBS и Visual Studio Code.

  • Для начала необходимо скачать или установить сам QBS версии 1.16 или выше. Для этого можно воспользоваться официальным хранилищем, или установить его из репозиториев.

    Примечание: Я не буду здесь описывать процесс установки QBS.
  • Далее, необходимо настроить профили, которыми QBS будет компилировать проекты. Как это делать, подробно описано в документации.

    Для быстрой настройки можно попросить QBS автоматически определить все установленные компиляторы и создать профили:

    qbs setup-toolchains --detect

    и потом посмотреть что получилось используя UI утилиту config-ui, или сделать все из командной строки:

    qbs config --list profiles

    Примечание: Возможно, перед этим нужно задать путь к желаемому компилятору в переменной окружения PATH.
  • Далее, необходимо скачать последнее QBS расширение отсюда.

    Примечание: Это файл с расширением *.vsix
  • Далее, необходимо установить редактор Visual Studio Code, запустить его и установить скачанное ранее QBS расширение, набрав комбинацию клавиш ctrl+ shift + p и в выпадающем меню выбрав пункт «Extensions: Install from VSIX...» указав путь к *.vsix файлу.

Подготовка к работе


Теперь необходимо настроить установленное расширение для работы QBS. Для этого нужно открыть настройки этого расширения, выбрав «File -> Preferences -> Extensions». Далее выбрать«QBS», нажать на кнопочку «Manage» и выбрать пункт «Extension Settings».

  • Далее, необходимо указать путь к исполняемому файлу QBS в поле «QBS Path», например:



    Примечание: В качестве разделителей пути надо использовать прямую черту /.
  • Остальные параметры можно на данный момент оставить «как есть».

Открытие проекта


Чтобы открыть проект, необходимо выбрать директорию в которой находится файл проекта *.qbs. Для этого нужно выбрать «File -> Open Folder» и выбрать желаемую директорию.

Примечание: Кажется, это такая особенность данного редактора.

После того как директория будет выбрана, автоматически активируется QBS расширение и запустит QBS сессию. Текущий статус сессии будет отображаться внизу на кнопке «QBS: started» панели инструментов редактора:



Далее, расширение перечислит все имеющиеся файлы проектов *.qbs в данной директории и установит первый попавшийся проект как проект по умолчанию. Имя файла текущего активного проекта будет отображаться внизу на соответствующей кнопке панели инструментов редактора:



Примечание: Пользователь может кликнуть на эту кнопку и в выпадающем списке выбрать другой файл проекта из этой директории.

Далее, расширение установит по умолчанию первый попавшийся профиль, конфигурацию сборки установит в debug, и запустит автоматическое сканирование проекта для построения графа сборки.

Процесс выполнения сканирования (прогресс в процентах) будет отображаться во всплывающем уведомлени в нижней правой части экрана:



Примечание: Все прогрессы таких операций как сканирование, сборка, очистка будут отображаться в этих всплывающих сообщениях.

Кроме того, расширение создает два «выходных» окна для просмотра текущих сообщений:

  • QBS Compile Output — отображает сообщения от основных операций сканирования, сборки и очистки:


  • QBS Message Output — отображает «сервисные» сообщения (например из JS кода от модулей QBS):



После того, как сканирование проекта успешно завершится, то можно переключится на дерево проекта, предоставляемого расширением. Для чего необходимо нажать на кнопку «QBS» на левой панели редактора:



Примечание: В этом случае, дерево проекта отображает все под-проекты, продукты, группы и артифакты, предоставляемые QBS после сканирования проекта.

Примечание: Редактор также отображает и полную директорию проекта после его открытия, но это не то дерево, которое предоставляется данным расширением, это встроенная функция самого редактора.

Сборка проекта


Для сборки проекта необходимо выбрать нужный профиль, конфигурацию и продукт для сборки.

  • Выбор профиля сводится к нажатию соответствующей кнопки внизу на панели инструментов редактора и выбору нужного пункта из списка доступных профилей:



  • Выбор конфигурации сводится к нажатию соответствующей кнопки внизу на панели инструментов редактора и выбору нужного пункта из списка доступных конфигураций:



  • Выбор продукта сводится к нажатию соответствующей кнопки внизу на панели инструментов редактора и выбору нужного пункта из списка доступных продуктов:



    Примечание: Пользователь может выбрать [all] для сборки всех продуктов в проекте.


Для запуска самой сборки пользователь может нажать на кнопку «Build» внизу на панели инструментов редактора:



Примечание: Процесс сборки будет отображаться как в выпадающем уведомлении, так и в «выходном» окне сообщений.

Выбор продукта для запуска или отладки


Чтобы запустить или отладить продукт, его необходимо сначала выбрать. Для этого нужно нажать на соответствующую кнопку внизу на панели инструментов редактора и выбрать нужный продукт из списка доступных:



При этом, если продукт уже скомпилирован и его исполняемый файл существует, то кнопки «Run» и «Debug» закрасятся зеленым цветом:



Кроме того, при наведении на запускаемый продукт отобразится всплывающая подсказка, содержащая полный путь к исполняемому файлу продукта:



Запуск выбранного продукта


Для запуска продукта достаточно нажать на кнопку «Run» внизу на панели инструментов редактора:



Продукт будет запущен в терминале «QBS Run», в который будут выведены все отладочные сообщения работающего приложения:



Отладка выбранного продукта


Перед отладкой продукта необходимо создать конфигурацию отладчика, которая должна храниться в файле launch.json.

Примечание: Подробнее о формате этого файла можно ознакомиться в оффициальной документации редактора.

По умолчанию текущее QBS расширение ожидает этот файл в директории .vscode/ в корне открытого проекта. Но этот путь к файлу launch.json может быть изменен пользователем в настройках плагина.

Например, при использовании отладчика из MSVC, этот файл может иметь такое содержимое:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Debugger (Windows)",
            "type": "cppvsdbg",
            "request": "launch",
            "externalConsole": false
        }
    ]
}

Примечание: Свойство externalConsole должно быть установлено в false если мы хотим видеть отладочные сообщения приложения в окне отладчика.

Примечание: Этот файл может иметь несколько конфигураций для одного и того же, или разных отладчиков (таких как MSVC, GDB, LLDB).

После того как файл launch.json создан и скопирован в нужное место, нужно выбрать нужный отладчик из списка, нажав на соответствую кнопку внизу справа на на панели инструментов редактора:



Теперь можно устанавливать точку останова в исходном коде выбранного продукта и нажимать на кнопку «Debug» внизу на панели инструментов редактора:



После этого можно наслаждаться отладкой:



Заключение


Конечно, в данном обзоре не раскрыты некоторые другие моменты работы с редактором (например, работа через команды), а также не дано пояснение для опций настройки QBS. Подробнее ознакомиться об этом можно, прочитав документацию, идущую в комплекте с расширением и/или документацию по QBS:


В заключение хочу сказать большое спасибо всем кто помогал мне тестировать это расширение, предлагал новые идеи.

Также, настоятельная просьба все ошибки, пожелания, исправления слать на баг-трекер.