Usando o Visual Studio Code for PowerShell Development

Visual Studio Code (VS Code) é um editor de scripts multiplataforma da Microsoft. Juntamente com a extensão do PowerShell, ele fornece uma experiência de edição de scripts rica e interativa, facilitando a escrita de scripts confiáveis do PowerShell. O Visual Studio Code com a extensão PowerShell é o editor recomendado para escrever scripts do PowerShell.

Ele suporta as seguintes versões do PowerShell:

  • PowerShell 7.2 e superior (Windows, macOS e Linux)
  • Windows PowerShell 5.1 (somente Windows) com .NET Framework 4.8

Nota

Visual Studio Code não é o mesmo que Visual Studio.

Introdução

Antes de começar, verifique se o PowerShell existe em seu sistema. Para cargas de trabalho modernas no Windows, macOS e Linux, consulte os seguintes links:

Para cargas de trabalho tradicionais do Windows PowerShell, consulte Instalando o Windows PowerShell.

Importante

O Windows PowerShell ISE ainda está disponível para Windows. No entanto, ele não está mais em desenvolvimento de recursos ativos. O ISE só funciona com o PowerShell 5.1 e versões anteriores. Como um componente do Windows, ele continua a ser oficialmente suportado para correções de segurança e manutenção de alta prioridade. não temos planos de remover o ISE do Windows.

Instalar o VS Code e a extensão do PowerShell

  1. Instalar o Visual Studio Code. Para obter mais informações, consulte a visão geral Configurando o Visual Studio Code.

    Existem instruções de instalação para cada plataforma:

  2. Instale a extensão do PowerShell.

    1. Inicie o aplicativo VS Code digitando code em um console ou code-insiders se você instalou o Visual Studio Code Insiders.
    2. Inicie a Abertura Rápida no Windows ou Linux pressionando Ctrl+P. No macOS, pressione Cmd+P.
    3. Em Abertura rápida, digite ext install powershell e pressione Enter.
    4. A vista Extensões é aberta na Barra Lateral. Selecione a extensão PowerShell da Microsoft.
    5. Clique no botão Instalar na extensão PowerShell da Microsoft.
    6. Após a instalação, se vir o botão Instalar transformar-se em Recarregar, clique em Recarregar.
    7. Depois que o VS Code for recarregado, você estará pronto para edição.

Por exemplo, para criar um novo arquivo, clique em Arquivo > Novo. Para salvá-lo, clique em Salvar arquivo > e forneça um nome de arquivo, como HelloWorld.ps1. Para fechar o arquivo, clique no X ao lado do nome do arquivo. Para sair do VS Code, Saída de arquivo>.

Instalando a extensão do PowerShell em sistemas restritos

Alguns sistemas são configurados para exigir a validação de todas as assinaturas de código. Você pode receber o seguinte erro:

Language server startup failed.

Esse problema pode ocorrer quando a política de execução do PowerShell é definida pela Diretiva de Grupo do Windows. Para aprovar manualmente os Serviços de Editor do PowerShell e a extensão do PowerShell para o VS Code, abra um prompt do PowerShell e execute o seguinte comando:

Import-Module $HOME\.vscode\extensions\ms-vscode.powershell*\modules\PowerShellEditorServices\PowerShellEditorServices.psd1

Você será solicitado com Deseja executar o software deste editor não confiável? Digite A para executar o arquivo. Em seguida, abra o VS Code e verifique se a extensão do PowerShell está funcionando corretamente. Se você ainda tiver problemas para começar, informe-nos em um problema do GitHub.

Escolhendo uma versão do PowerShell para usar com a extensão

Com a instalação do PowerShell lado a lado com o Windows PowerShell, agora é possível usar uma versão específica do PowerShell com a extensão do PowerShell. Esse recurso examina alguns caminhos conhecidos em diferentes sistemas operacionais para descobrir instalações do PowerShell.

Use as seguintes etapas para escolher a versão:

  1. Abra a paleta de comandos no Windows ou Linux com Ctrl+Shift+P. No macOS, use Cmd+Shift+P.
  2. Procure por Sessão.
  3. Clique em PowerShell: Mostrar menu de sessão.
  4. Escolha a versão do PowerShell que você deseja usar na lista.

Se você instalou o PowerShell em um local atípico, ele pode não aparecer inicialmente no Menu de Sessão. Você pode estender o menu de sessão adicionando seus próprios caminhos personalizados , conforme descrito abaixo.

O menu de sessão do PowerShell também pode ser acessado a {} partir do ícone no canto inferior direito da barra de status. Passar o cursor sobre ou selecionar este ícone exibe um atalho para o menu da sessão e um pequeno ícone de pino. Se você selecionar o ícone de pino, o número da versão será adicionado à barra de status. O número da versão é um atalho para o menu de sessão que requer menos cliques.

Nota

Fixar o número da versão replica o comportamento da extensão em versões do VS Code anteriores à 1.65. A versão 1.65 do VS Code alterou as APIs que a extensão do PowerShell usa e padronizou a barra de status para extensões de idioma.

Definições de configuração para o Visual Studio Code

Primeiro, se você não estiver familiarizado com como alterar as configurações no VS Code, recomendamos ler a documentação de configurações do Visual Studio Code.

Depois de ler a documentação, você pode adicionar definições de configuração no settings.json.

{
    "editor.renderWhitespace": "all",
    "editor.renderControlCharacters": true,
    "files.trimTrailingWhitespace": true,
    "files.encoding": "utf8bom",
    "files.autoGuessEncoding": true
}

Se você não quiser que essas configurações afetem todos os tipos de arquivos, o VS Code também permite configurações por idioma. Crie uma configuração específica do idioma colocando as configurações em um [<language-name>] campo. Por exemplo:

{
    "[powershell]": {
        "files.encoding": "utf8bom",
        "files.autoGuessEncoding": true
    }
}

Gorjeta

Para obter mais informações sobre a codificação de arquivos no VS Code, consulte Noções básicas sobre codificação de arquivos. Além disso, confira Como replicar a experiência ISE no VS Code para obter outras dicas sobre como configurar o VS Code para edição do PowerShell.

Adicionando seus próprios caminhos do PowerShell ao menu de sessão

Você pode adicionar outros caminhos executáveis do PowerShell ao menu de sessão por meio da configuração de código do Visual Studio: powershell.powerShellAdditionalExePaths.

Você pode fazer isso usando a GUI:

  1. Na Paleta de comandos, procure e selecione Abrir configurações do usuário. Ou use o atalho de teclado no Windows ou Linux Ctrl+,. No macOS, use Cmd+,.
  2. No editor de configurações, procure por Caminhos Exe Adicionais do PowerShell.
  3. Clique em Adicionar item.
  4. Para a Chave (em Item), forneça sua escolha de nome para essa instalação adicional do PowerShell.
  5. Para o Valor (em Valor), forneça o caminho absoluto para o próprio executável.

Você pode adicionar quantos caminhos adicionais quiser. Os itens adicionados aparecem no menu da sessão com a chave fornecida como o nome.

Como alternativa, você pode adicionar pares chave-valor ao objeto powershell.powerShellAdditionalExePaths em seu settings.json:

{
    "powershell.powerShellAdditionalExePaths": {
        "Downloaded PowerShell": "C:/Users/username/Downloads/PowerShell/pwsh.exe",
        "Built PowerShell": "C:/Users/username/src/PowerShell/src/powershell-win-core/bin/Debug/net6.0/win7-x64/publish/pwsh.exe"
    },
}

Nota

Antes da versão 2022.5.0 da extensão, essa configuração era uma lista de objetos com as chaves exePath necessárias e versionName. Uma mudança de quebra foi introduzida para suportar a configuração via GUI. Se você já havia configurado essa configuração, converta-a no novo formato. O valor dado para versionName agora é a Chave, e o valor dado para exePath agora é o Valor. Você pode fazer isso mais facilmente redefinindo o valor e usando a interface Configurações.

Para definir a versão padrão do PowerShell, defina o valor powershell.powerShellDefaultVersion para o texto exibido no menu de sessão (o texto usado para a chave):

{
    "powershell.powerShellAdditionalExePaths": {
        "Downloaded PowerShell": "C:/Users/username/Downloads/PowerShell/pwsh.exe",
    },
    "powershell.powerShellDefaultVersion": "Downloaded PowerShell",
}

Depois de definir essa configuração, reinicie o VS Code ou para recarregar a janela atual do VS Code na Paleta de comandos, digite Developer: Reload Window.

Se você abrir o menu de sessão, verá suas instalações adicionais do PowerShell.

Gorjeta

Se você criar o PowerShell a partir do código-fonte, essa é uma ótima maneira de testar sua compilação local do PowerShell.

Depuração com código do Visual Studio

Depuração sem espaço de trabalho

No VS Code versão 1.9 (ou superior), você pode depurar scripts do PowerShell sem abrir a pasta que contém o script do PowerShell.

  1. Abra o arquivo de script do PowerShell com Arquivo > Abrir arquivo...
  2. Definir um ponto de interrupção - selecione uma linha e pressione F9
  3. Pressione F5 para iniciar a depuração

Você verá aparecer o painel Ações de depuração que permite invadir o depurador, etapa, retomar e parar a depuração.

Depuração do espaço de trabalho

A depuração do espaço de trabalho refere-se à depuração no contexto de uma pasta que você abriu no menu Arquivo usando Abrir pasta.... A pasta que você abre normalmente é a pasta do projeto do PowerShell ou a raiz do repositório Git. A depuração do espaço de trabalho permite que você defina várias configurações de depuração além de apenas depurar o arquivo aberto no momento.

Siga estas etapas para criar um arquivo de configuração de depuração:

  1. Abra a visualização Depurar no Windows ou Linux pressionando Ctrl+Shift+D. No macOS, pressione Cmd+Shift+D.

  2. Clique no link criar um arquivo launch.json.

  3. No prompt Selecionar Ambiente , escolha PowerShell.

  4. Escolha o tipo de depuração que você gostaria de usar:

    • Iniciar arquivo atual - Inicie e depure o arquivo na janela do editor atualmente ativo
    • Launch Script - Inicie e depure o arquivo ou comando especificado
    • Sessão Interativa - Depurar comandos executados a partir do Console Integrado
    • Anexar - Anexar o depurador a um processo de host do PowerShell em execução

O VS Code cria um diretório e um arquivo .vscode\launch.json na raiz da pasta do espaço de trabalho para armazenar a configuração de depuração. Se seus arquivos estiverem em um repositório Git, você normalmente deseja confirmar o launch.json arquivo. O conteúdo do launch.json ficheiro é:

{
  "version": "0.2.0",
  "configurations": [
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Launch (current file)",
          "script": "${file}",
          "args": [],
          "cwd": "${file}"
      },
      {
          "type": "PowerShell",
          "request": "attach",
          "name": "PowerShell Attach to Host Process",
          "processId": "${command.PickPSHostProcess}",
          "runspaceId": 1
      },
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Interactive Session",
          "cwd": "${workspaceRoot}"
      }
  ]
}

Este arquivo representa os cenários de depuração comuns. Quando você abre este arquivo no editor, você vê um botão Adicionar configuração... . Você pode clicar nesse botão para adicionar mais configurações de depuração do PowerShell. Uma configuração útil a ser adicionada é PowerShell: Launch Script. Com essa configuração, você pode especificar um arquivo contendo argumentos opcionais que são usados sempre que você pressiona F5 , independentemente do arquivo ativo no editor.

Depois que a configuração de depuração for estabelecida, você poderá selecionar a configuração que deseja usar durante uma sessão de depuração. Selecione uma configuração na lista suspensa de configuração de depuração na barra de ferramentas da visualização Depurar .

Solução de problemas da extensão do PowerShell

Se você tiver problemas ao usar o VS Code para desenvolvimento de scripts do PowerShell, consulte o guia de solução de problemas no GitHub.

Recursos úteis

Há alguns vídeos e postagens de blog que podem ser úteis para você começar a usar a extensão do PowerShell para VS Code:

Vídeos

Mensagens no blogue

Código-fonte do projeto de extensão do PowerShell

O código-fonte da extensão PowerShell pode ser encontrado no GitHub.

Se você estiver interessado em contribuir, os Pull Requests são muito apreciados. Acompanhe a documentação do desenvolvedor no GitHub para começar.