Настройка visual studio code для powershell

Обновлено: 03.07.2024

Развертывание модуля PowerShell с использованием Tasks в Visual Studio Code

Когда мы пишем скрипты или функции, чаще всего для этого мы создаем какую-либо структуру папок (Plaster?) и уже в ней сохраняем наши .ps1 и .psm1 и (возможно, многочисленные) тестовые и вспомогательные файлы.

Закончив с написанием кода, мы организуем рабочие файлы в виде модуля, создав необходимый манифест и копируем все необходимые компоненты в определенный каталог, чтобы они были доступны в среде PowerShell (скорее всего это будет C:\Program Files\WindowsPowerShell\Modules).

Одним из вариантов автоматизации этой операции будет использование функционала Tasks в Visual Studio Code.

Module

Предположим, мы решили заняться разработкой модуля с именем TheModule в каталоге C:\Scripts.

Для начала мы создадим папку TheModule:

Код нужной нам функции мы разместим в файле TheModule.psm1.
Пусть это будет следующая функция:

Теперь нам нужно создать манифест. Создавать мы его будем при помощи командлета New-ModuleManifest. Однако, чтобы не вводить всю команду заново каждый раз при обновлении или изменении модуля, предлагаю сохранить ее в файле _helper.ps1.

Выглядеть она будет так:

Запустив вышеприведенный код, мы создадим файл TheModule.psd1 в каталоге C:\Scripts\TheModule.

Теперь нам нужно скопировать этот модуль в каталог C:\Program Files\WindowsPowerShell\Modules. Для этого мы создадим задачу.

Script

Представлять из себя она будет PowerShell-скрипт для удаления предыдущей версии модуля из C:\Program Files\WindowsPowerShell\Modules и копирования в него текущей версии.

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

Сам скрипт мы расположим в файле _deployModule.ps1.

Текст скрипта будет следующим:

В первой строке мы удаляем весь модуль из папки назначения, во второй создаем новую папку TheModule, а в третьей копируем в нее все файлы с расширениями .psd1, .psm1 и .ps1 за исключением тех, что начинаются с символа подчеркивания.

Теперь перейдем непосредственно к созданию задачи.

Результатом станет создание файла tasks.json в подкаталоге .vscode и его открытие для редактирования.

В качестве примера в файле tasks.json уже будет приведена задача с именем echo. Добавим к ней еще одну.

Нам потребуется указать парметры taskName, type и command.

В качестве значения taskName мы укажем DeployModule.

Параметр type мы определим как shell. Это означает, что команда будет выполнена в самой оболочке, в отличие от значения process, когда задача выполняется в виде отдельного процесса.

Файл tasks.json будет выглядеть следующим образом:

Теперь, сохранив файл tasks.json, мы можем использовать созданную нами задачу.

Для того, чтобы более на получать предложений о сканировании результатов выполнения задачи, вместо Continue without task scanning вы можете указать Never scan the task output, что приведет к добавлению строки

к определению задачи в файле tasks.json, тем самым предотвращая появление подобных запросов.

В итоге файл tasks.json будет выглядеть следующим образом:

Кроме использования меню Tasks, вы можете выполнить нужное вам действие, нажав сочетание клавиш Ctrl + Shift + P, вызвав тем самым меню команд, и введя tasks, после чего вам будут предожены все действия, содержащие слово tasks в своем названии.

Shell

После копирования модуля в каталог C:\Program Files\WindowsPowerShell\Modules содержащиеся в нем функции будут доступны в консоли PowerShell. Однако, если вы обновили содержимое модуля и скопировали его измененную версию поверх предыдущей, консоль все еще будет будет использовать более раннюю его версию.

Для того, чтобы обновить определения функций модуля без закрытия и повторного открытия консоли, мы можем воспользоваться командлетом Import-Module с параметром -Force. Например, так:

Visual Studio Code (VS Code) — это кросс-платформенный редактор скриптов, созданный корпорацией Майкрософт. Наряду с расширением PowerShell он предоставляет широкие интерактивные возможности редактирования скриптов, упрощая написание надежных скриптов PowerShell. Редактор Visual Studio Code с расширением PowerShell рекомендуется использовать для написания сценариев PowerShell.

Он поддерживает следующие версии PowerShell:

  • PowerShell 7.0 и последующие версии (Windows, macOS и Linux);
  • Windows PowerShell 5.1 (только для Windows).

Visual Studio Code отличается от Visual Studio.

Начало работы

Перед запуском убедитесь, что оболочка PowerShell установлена в системе. Сведения о современных рабочих нагрузках для Windows, macOS и Linux см. по следующим ссылкам:

Сведения о традиционных рабочих нагрузках Windows PowerShell см. в разделе Установка Windows PowerShell.

Интегрированная среда сценариев Windows PowerShell по-прежнему доступна для Windows, но функции для нее больше не разрабатываются. Интегрированная среда сценариев (ISE) работает только с PowerShell 5.1 и более ранних версий. Как компонент Windows эта среда по-прежнему официально поддерживается для внесения критически важных исправлений, связанных с безопасностью и обслуживанием. Пока что мы не планируем удалять ее из Windows.

Установка VS Code и расширения PowerShell

Установите Visual Studio Code. Дополнительные сведения см. в статье Setting up Visual Studio Code (Настройка Visual Studio Code).

Доступны инструкции по установке на каждой платформе:

Установите расширение PowerShell.

Например, чтобы создать файл, выберите Файл > Создать. Чтобы сохранить его, выберите Файл > Сохранить и укажите имя файла, например HelloWorld.ps1 . Чтобы закрыть файл, щелкните X рядом с его именем. Чтобы выйти из VSCode, выберите Файл > Выход.

Установка расширения PowerShell в системах с ограниченным доступом

Эта проблема может возникать, когда политика выполнения PowerShell задается групповой политикой Windows. Чтобы вручную утвердить службы редактора PowerShell и, следовательно, расширение PowerShell для VSCode, откройте командную строку PowerShell и выполните следующую команду:

Вы увидите подсказку Не удается проверить издателя. Вы действительно хотите запустить эту программу? Введите A для запуска файла. Затем откройте VSCode и убедитесь, что расширение PowerShell работает правильно. Если у вас все еще есть проблемы с началом работы, сообщите нам об этом на Раздел с описанием проблем на GitHub.

Выбор версии PowerShell для использования с расширением

Благодаря одновременной установке PowerShell и Windows PowerShell теперь можно использовать определенную версию PowerShell с расширением PowerShell. Этот компонент проверяет несколько известных расположений в разных операционных системах, чтобы найти установки PowerShell.

Выберите версию, сделав следующее:

  1. Откройте палитру команд в Windows и Linux ( CTRL + SHIFT + P ). В macOS нажмите клавиши CMD + SHIFT + P .
  2. Выполните поиск по слову Сеанс.
  3. Щелкните PowerShell: Show Session Menu (PowerShell: показать меню сеансов).
  4. Выберите нужную версию PowerShell в списке.

Если вы установили PowerShell в нетипичном расположении, оно может первоначально не отобразиться в меню сеансов. Вы можете расширить меню сеансов, добавив собственные пользовательские пути, как описано ниже.

Меню сеансов PowerShell также можно открыть, щелкнув номер версии, который показан зеленым шрифтом в правом нижнем углу строки состояния.

Параметры конфигурации для Visual Studio Code

Прежде всего, если вы не знаете, как изменить параметры в VS Code, мы рекомендуем ознакомиться с документацией по параметрам Visual Studio Code.

После этого вы сможете добавить параметры конфигурации в settings.json .

Если вы не хотите, чтобы эти параметры влияли на все типы файлов, в VS Code можно задавать конфигурации для каждого языка отдельно. Создать параметр для конкретного языка можно, поместив параметры в поле [<language-name>] . Пример:

Дополнительные сведения о кодировке файлов в VS Code см. в этой статье. Также ознакомьтесь со статьей Репликация функций интегрированной среды скриптов в VS Code, в которой даны рекомендации по настройке VS Code для редактирования в PowerShell.

Добавление собственных путей PowerShell в меню сеансов

В меню сеанса можно добавить другие пути к исполнимому файлу PowerShell с помощью параметра Visual Studio Code: powershell.powerShellAdditionalExePaths .

Добавьте элемент в список powershell.powerShellAdditionalExePaths или создайте список, если его нет в settings.json :

Каждый элемент должен иметь следующее:

  • exePath : Путь к исполняемому файлу pwsh или powershell .
  • versionName : Текст, который будет отображаться в меню сеансов.

Вы можете задать используемую версию PowerShell по умолчанию, задав параметр powershell.powerShellDefaultVersion для текста, отображаемого в меню сеансов ( versionName в последнем параметре):

Задав этот параметр, перезапустите VSCode или перезагрузите текущее окно VSCode с помощью действия Developer: Reload Window палитры команд:

Открыв меню сеансов, вы увидите дополнительные версии PowerShell.

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

Отладка с помощью Visual Studio Code

Отладка без рабочей области

Начиная с версии VS Code 1.9, вы можете отлаживать скрипты PowerShell, не открывая папку со скриптом PowerShell.

  1. Откройте файл скрипта PowerShell с помощью команды Файл > Открыть файл.
  2. Установите точку останова на строке и нажмите клавишу F9 .
  3. Нажмите клавишу F5 , чтобы запустить отладку.

Откроется панель действий отладки, позволяющая прервать работу отладчика, возобновить отладку, выполнить ее пошагово или остановить.

Отладка с рабочей областью

Отладка с рабочей областью обозначает отладку в контексте папки, которую вы открыли с помощью команды Открыть папку из меню Файл. Открытая папка обычно является папкой проекта PowerShell или корнем репозитория Git. Отладка с рабочей областью позволяет задать несколько конфигураций отладки, а не просто выполнить отладку открытого файла.

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

Откройте представление Отладка в Windows или Linux ( CTRL + SHIFT + D ). В macOS нажмите клавиши CMD + SHIFT + D .

Щелкните ссылку create a launch.json file (Создать файл launch.json).

В окне запроса Select Environment (Выбор среды) выберите PowerShell.

Выберите тип отладки, который хотите использовать:

  • Launch Current File (Запуск текущего файла) — запуск и отладка файла в текущем активном окне редактора.
  • Launch Script (Запуск скрипта) — запуск и отладка указанного файла или команды.
  • Interactive Session (Интерактивный сеанс) — команды отладки, выполняемые из интегрированной консоли.
  • Attach (Подключение) — подключение отладчика к выполняемому хост-процессу PowerShell.

VS Code создаст каталог и файл .vscode\launch.json в корневой папке рабочей области, где будет храниться конфигурация отладки. Если ваши файлы хранятся в репозитории Git, скорее всего, вы захотите зафиксировать файл launch.json . Содержимое файла launch.json :

Этот файл представляет типичные сценарии отладки. При открытии его в редакторе отображается кнопка Добавить конфигурацию. Можете нажать ее, чтобы добавить дополнительные конфигурации отладки PowerShell. Одной из полезных конфигураций является PowerShell: Launch Script (Запустить сценарий). С помощью этой конфигурации можно указать файл с дополнительными аргументами, которые используются при каждом нажатии клавиши F5 , независимо от того, какой файл активен в редакторе.

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

Устранение проблем с расширением PowerShell

Если у вас возникли проблемы с использованием VS Code для разработки скриптов PowerShell, ознакомьтесь с руководством по устранению неполадок на сайте GitHub.

Полезные ресурсы

Существует несколько видео и записей блогов, которые могут оказаться полезными при начале работы с расширением PowerShell для VS Code:

Видео

Записи блога

Исходный код проекта расширения PowerShell

Исходный код расширения PowerShell доступен на GitHub.

Если вы хотите принять участие в проекте в качестве разработчика, отправьте запрос на вытягивание. Чтобы приступить к работе, следуйте указаниям из документации для разработчиков на сайте GitHub.

В текущей версии Visual Studio Code 1.8.1 в качестве встроенного терминала, при использовании его в Microsoft Windows, по умолчанию используется интерпретатор комманд cmd.exe. Пользователям, знакомым с возможностями PowerShell, скорее всего, будет удобнее использовать в качестве встроенного терминала именно PowerShell, а не cmd.exe.

На этот случай Visual Studio Code не ограничивает пользователя в выборе используемого интерпретатора комманд, поэтому встроенный терминал может быть легко заменён на PowerShell. Для этого необходимо внести изменения в файл пользовательских настроек settings.json или, при желании внести изменения, затрагивающие только выбранную рабочую среду, в файл настроек этой рабочей среды:

Пример использования PowerShell в качестве встроенного терминала в Visual Studio Code, работающего в Microsoft Windows 10

Подробнее о настройке встроенного терминала можно прочитать в официальной документации Visual Studio Code здесь.

Другие заметки

Использование Grav CMS со встроенным веб-сервером PHP

Одной из полезных возможностей, добавленных в Grav CMS 1.1.10, стала поддержка работы системы управления контентом на встроенном веб-сервере PHP. Однако разработчики, использующие для запуска встроенного веб-сервера метод, описанный в заметке Удобный запуск встроенного веб-сервера PHP в Microsoft Windows, сталкиваются с проблемой.

Приведение значения переменной к типу Boolean в PHP

Приведение значения переменной к типу Boolean является распространённой задачей при разработке на языке PHP. Однако в ряде случаев, выполнения простого приведения типа может быть недостаточно.

Сайт создан и поддерживается мною с целью сохранения и распространения в свободном доступе опубликованных на нём материалов. Авторство разработок, текстов и изображений, принадлежит мне, если иное не указано отдельно.

При копировании материалов с сайта, не забывайте о важности обратных ссылок.

Размещение обратной индексируемой ссылки показывает интерес к содержанию сайта, что мотивирует к работе над новыми материалами.

Поскольку мне всё равно пришлось ставить Visual Studio Community для того, чтобы установить Windows Kits для работы с WinAPI, то я решил не использовать MingW, а доустановить C++ build tools и использовать их для компиляции. В этом случае придётся переделать задачи (tasks) и настройки VSCode.

Хорошее описание нашёл здесь, его и буду использовать в данной заметке.

Нам потребуется


1. Естественно нам потребуется сама программа VSCode.
2. В Visual Studio Community должен быть установлен компонент Desktop development with C++ :

Чтобы проверить успешную установку, достаточно вызвать Developer Command Prompt for VS 2019 (файл VsDevCmd.bat ) из Пуска. Там нужно запустить файл cl.exe . Вывод консоли должен быть без ошибок:

3. Для VSCode должно быть установлено дополнение (расширение) Microsoft C/C++

Настройка

4. В Проводнике открываем рабочую папку проекта и, удерживая Shift , нажимаем правую кнопку мыши, после чего выбираем Open PowerShell window here
5. В открывшемся окошке PowerShell запускаем VSCode, для этого нужно набрать code . и нажать Enter :

Шаги 9-11 скорее всего не нужны. В статье они есть, но без них у меня всё тоже прекрасно компилируется.


9. Открываем палитру команд с помощью комбинации клавиш Ctrl + Shift + P
10. Список большой, поэтому проще ввести часть слова и выбрать нужную команду Edit Configurations UI из списка:

11. В конфигурации необходимо проверить, а, при необходимости, установить путь для компилятора:



12. Внесём изменения в файл settings.json :

У меня глобальный файл настроек, а не только для проекта, поэтому я добавляю строчки в начало файла C:\Users\Denis\AppData\Roaming\Code\User\settings.json

13. Ранее я уже создавал файл Задач tasks.json, поэтому сейчас я добавлю к нему новые строчки:

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

Благодаря этому, при нажатии F5 , проект будет откомпилирован, а потом запущен сразу после этого. Просто запустить, без отладки, можно комбинацией Ctrl + F5

Читайте также: