Как разработчик программного обеспечения, я пробовал различные интегрированные среды разработки (IDE) и текстовые редакторы для разработки кода (vim, Emacs, Sublime Text и т. Д.). Из тех, что я пробовал, Microsoft Visual Studio Code (VSCode) выделяется среди остальных как гибкий и легкий редактор. Что замечательно в VSCode, так это его расширяемость с помощью различных плагинов из Extension Marketplace. Я также упоминал, что это бесплатно И обновляется каждый месяц !?

Как разработчик, основным языком программирования которого является C ++, я считаю, что VSCode предоставляет все инструменты, например отладчик gdb и функции, например IntelliSense, облегчающий процесс разработки. Однако, когда я впервые начал использовать редактор, онлайн-поиск находил статьи, в которых больше внимания уделяется тому, какие расширения использовать, которые для новичка, слепая установка их, может быстро раздуть редактор и затруднить настройку расширений, чтобы они были полезными.

В этой статье я собираюсь сосредоточиться на 4 темах, которые помогут непосвященным настроить среду VSCode для кодирования на C ++:

  1. Настроить рабочее пространство VSCode
  2. Настроить настройки отладчика
  3. Настроить инструкции по сборке
  4. Основные расширения для разработки кода

Настроить рабочее пространство VSCode

VSCode использует концепцию рабочей области для применения пользовательских настроек и позволяет пользователю указывать команды, которые применяются только к кодам в этой рабочей области. Коды НЕ должны физически находиться в одной папке!

Рабочее пространство и его настройки представлены файлом .code-workspace в каталоге. Когда вы добавляете эту папку в рабочую область (щелкните правой кнопкой мыши окно проводника и выберите Добавить папку в рабочую область), VSCode выполнит поиск файла и установит рабочую область.

На приведенном выше снимке экрана я поместил свой .code-workspace в папку Coding_Workspace, которая содержит несколько репозиториев git. Эти подпапки также добавляются в рабочую область с помощью Добавить папку в рабочую область для создания многокорневой рабочей области. Это чрезвычайно полезно, когда вы работаете с несколькими репозиториями и хотите указать команды для конкретных репозиториев. Это станет более очевидным, когда я объясню, как настроить инструкции по сборке.

Если вы начинаете с нуля, просто откройте новое окно VSCode. На экране приветствия выберите Добавить папку рабочей области. Выберите папку, которую хотите сделать своим рабочим пространством. Выберите Файл ›Сохранить рабочую область как, и файл .code-workspace будет автоматически создан с заполненными минимальными настройками. Когда вы добавляете другие папки в рабочую область, этот файл будет автоматически обновляться VSCode с именем папки, поэтому его можно использовать для создания конкретных инструкций для файлов только в этой папке.

Еще одна вещь, которую VSCode сделает при первом создании рабочего пространства, - это создание папки .vscode. В этой папке хранятся локальные настройки и инструкции.

Обратите внимание на два файла: tasks.json и launch.json. В первом указаны инструкции по сборке. Второй определяет настройки для среды отладки.

Настроить инструкции по сборке

VSCode поддерживает настраиваемые задачи, которые упрощают процесс разработки и сокращают набор текста и запоминание. Эти задачи также можно объединить в цепочку, чтобы сформировать более сложные задачи сборки или выполнения.

Все настраиваемые задачи хранятся в tasks.json в подпапке .vscode. Каждый из них может быть указан в списке, разделенном запятыми, в фигурных скобках {}, как показано на рисунке ниже.

Одна задача

У каждой задачи есть свойства, которые может определить пользователь. Здесь мы сосредоточимся только на том, что я считаю важным. Полный список см. По ссылке в сноске¹.

  1. label: Это строка, которая поможет вам определить, что будет делать эта задача. Он также используется в качестве имени в раскрывающемся меню при выборе Задачи: выполнить задачу на палитре команд (Ctrl+Shift+P).
  2. type: тип выполняемой команды. Поддерживает shell или process.
  3. command: команда, которую вы хотите выполнить с помощью VSCode.
  4. args: массив аргументов, разделенных запятыми, которые вы хотите передать команде. Например, -DCMAKE_BUILD_TYPE=Debug, чтобы указать CMake создать файл сборки с флагами отладки.
  5. group: группа, в которой VSCode должен организовать эту задачу. Поддерживает build, test и none.

group также поддерживает установку задачи по умолчанию при использовании сочетания клавиш Ctrl+Shift+B. Для этого вместо указания одной из 3 опций выше в фигурных скобках {} укажите следующие свойства:

  1. kind: build, test, none.
  2. isDefault: true, false.

Если для всех ваших задач свойство isDefault установлено в значение true, тогда ярлык откроет раскрывающееся меню, в котором вы сможете выбрать, что нужно выполнить.

ПРИМЕЧАНИЕ. Существует еще одно свойство presentation, которое позволяет вам управлять выводом задач. По умолчанию он настроен на то, чтобы всегда запускать новый терминал и печатать на нем (для получения дополнительной информации см. Сноску¹).

Вы можете видеть на рисунке выше, что я использую {workspaceFolder:pcl} в args и cwd. Помните, я говорил о мульти-корневом рабочем пространстве? Это позволяет мне выполнять команду CMake в самой папке pcl и не беспокоиться об относительных или абсолютных путях. VSCode автоматически расширяет выражение; в моем случае ~/Code_Workspace/pcl/.

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

Объединение задач

Еще одна мощная функция определения ваших задач в tasks.json - это возможность объединять отдельные задачи в цепочку. Для этого просто создайте новую задачу со следующими свойствами:

  1. label: укажите уникальное имя для задачи
  2. dependsOn: Массив разделенных запятыми меток отдельной задачи
  3. dependsOrder: укажите порядок, в котором задача будет выполняться. Текущая задача будет выполнена последней, и каждая задача должна вернуться до выполнения следующей. Поддерживает sequence.

Эта функция полезна для объединения задач сборки вместе или для сборки и запуска модульных тестов.

Установить настройки отладчика

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

Каждый сеанс отладки поддерживает множество свойств. Приведенный ниже список не является исчерпывающим и сосредоточен на тех, которые я считаю важными. Полный список см. В сносках² ³.

  1. name: Уникальное имя, которое позволяет отличать задачи отладки друг от друга.
  2. type: Тип используемого отладчика. Если вы установили расширение C / C ++, cppdbg станет доступным. Некоторые другие поставляются с редактором: node, php, go для других языков программирования.
  3. request: launch новый процесс или attach запущенный процесс. Если выбран attach, в окне отладки будет отображаться раскрывающееся меню запущенного процесса с идентификаторами на выбор.
  4. program: путь к исполняемому файлу, который нужно отлаживать.
  5. args: разделенный запятыми список аргументов для передачи исполняемому файлу.
  6. stopAtEntry: истина или ложь, вне зависимости от того, сломается ли отладчик при вводе кода.
  7. cwd: рабочий каталог для поиска зависимостей. Установка на ${workspaceFolder} является стандартной.
  8. externalConsole: истина или ложь, запускать ли терминал отладки во внешней консоли.
  9. MIMode: это требуется для расширения C / C ++. Поддерживает gdb или lldb.
  10. setupCommands: Это относится к расширению C / C ++ и является опцией. Достаточно настройки на рисунке выше.
  11. preLaunchTask: разделенный запятыми список имен задач из tasks.json, которые нужно запустить перед запуском отладчика. Например, сборка кода в режиме отладки перед отладкой.
  12. postDebugTask: разделенный запятыми список имен задач из tasks.json, запускаемых после сеанса отладки. Может использоваться для очистки временных файлов.

На снимке экрана вы можете заметить, что я снова использую ${workspaceFolder:pcl} для cwd и program. Это сообщает VSCode, что я хочу, чтобы отладчик, в данном случае gdb,, подключился к исполняемому файлу test в папке pcl в моей рабочей области и сделал эту папку корневым каталогом при запуске отладчика.

Примечание. Если вы найдете список свойств, которые нужно настроить, не беспокойтесь, VSCode покажет доступные параметры, когда вы нажмете при редактировании .json файлов!

Основные расширения для разработки кода

И, наконец, следующий список расширений, которые я нашел полезными и считаю необходимыми для разработчиков C ++:

Примечание. Если вы работаете с ROS и вашей основной ОС является Linux. Также рекомендую скачать расширение ROS.

Список не является обширным и может не включать другие расширения, которые могут оказаться полезными для других разработчиков. Я рекомендую придерживаться перечисленных выше в течение нескольких недель, прежде чем просматривать рынок (вы определенно можете получить убытки в этом месте!).

Каждое из этих расширений предоставляет команды, к которым можно получить доступ через палитру команд. Вы можете начать вводить то, чего хотите достичь, и VSCode постепенно сузит список вариантов. Мало того, отображаемые команды отсортированы по недавно использованным.

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

Некоторые другие расширения, такие как C / C ++, добавляют не исполняемые команды, а дополнительные настройки, которые могут еще больше улучшить редактор. Например, подсветка синтаксиса C / C ++.

Резюме

В этой статье я показал, как настроить рабочее пространство и параметры VSCode для помощи в разработке на C ++. Это то, что я обнаружил у меня, и очень помогло мне в моем путешествии по программированию, и я надеюсь, что это может сделать то же самое для вас.

Разработчикам ROS я рекомендую прочитать следующие статьи о том, как настроить VSCode для интеграции рабочего процесса ROS в вашу разработку и тестирование:



Https://erdalpekel.de/?p=157

Удачного кодирования!

Сноска

¹ https://code.visualstudio.com/docs/editor/tasks

² https://code.visualstudio.com/docs/editor/debugging

³ https://code.visualstudio.com/docs/cpp/launch-json-reference

https://code.visualstudio.com/docs/editor/variables-reference