Passo 5: Criar tarefa para executar programas
Naturalmente, depois que você compilar seu programa pelo VSCode, você pode ir para o terminal e digitar os comandos necessários para executá-lo.
Mas o VSCode também nos permite configurar uma tarefa especificamente para executar o programa que estamos editando, e isso agiliza muito o processo de programação, principalmente quando estamos fazendo testes unitários.
5.1. Inclua os diretórios bin e lib na sua variável PATH
No ambiente que estamos montando, os programas principais serão gerados no diretório bin e os programas called serão gerados no diretório lib.
Para que possamos chamá-los de qualquer lugar, é preciso que a variável PATH os reconheça. Para alterar o conteúdo dessa variável de maneira permanente (para que ela tenha o mesmo valor na próxima vez que você iniciar seu computador) você deve editar o arquivo /Users/{SeuNome}/.bash_profile. Você pode procurar esse arquivo com o próprio VSCode, mas talvez a opção mais simples nesse momento seja procurá-lo com o Finder do Mac:
Vá ao Finder, entre no menu Go e selecione a opção Home:
O arquivo .bash_profile é um arquivo escondido (ele tem um ponto antes de seu nome), e por isso ele não aparece na lista do Finder:
Para exibir os arquivos escondidos, pressione command+shift+ . (command+shift+ponto).
Agora clique com o botão direito no arquivo .bash_profile e abra-o com o TextEdit.App. Ele provavelmente está parecido (mas obviamente não igual) ao que aparece nessa imagem:
No seu caso, você só precisa inserir a linha abaixo no final desse arquivo:
export PATH=$PATH:$HOME/cobolws/bin:$HOME/cobolws/lib
Salve e fecha o arquivo. No Finder, pressione novamente command+shift+. para que ele não mostre os arquivos escondidos. Vá no terminal e digite os seguintes comandos para que a variável PATH seja modificada:
cd ~ source .bash_profile echo $PATH
O conteúdo da variável PATH agora deve mostrar os dois diretórios (bin e lib) que fazem parte do seu workspace.
Feche o VSCode e abra ele novamente para que o aplicativo reconheça o novo valor dessa variável de ambiente.
5.2. Crie a tarefa de execução
No menu Explorer do VSCode, procure pelo diretório .vscode, embaixo do workspace que criamos:
A única tarefa que ele tem nesse momento é a tarefa de compilação que criamos no passo anterior. Agora vamos criar uma segunda tarefa, especificamente para executar o programa compilado.
Posicione o cursor depois da última chave } que aparece na linha 22 da imagem acima. Insira uma vírgula depois dessa chave.
Agora copie o conteúdo abaixo e cole depois dessa linha 22:
{ "label": "gnucobol (run)", "type": "shell", "command": "${fileBasenameNoExtension}", "detail": "tsc -p ./", "problemMatcher": [], "group": { "kind": "test", "isDefault": true } }
Salve e feche o arquivo tasks.json.
Com isso estamos criando uma tarefa que se chama “gnucobol (run)”, que é do tipo “shell” (igual à tarefa de compilação), e que quando executada vai enviar o conteúdo da variável “${fileBasenameNoExtension)” para a linha de comando.
Lembre-se que quando compilamos um programa do tipo main o compilador gera o binário executável no diretório bin do nosso workspace. O nome desse binário normalmente é igual ao nome do programa fonte, só que sem extensão. Como agora o diretório bin faz parte da variável PATH, o VSCode pode simplesmente chamar o nome do programa (sem extensão) a partir de qualquer diretório que o Mac saberá onde encontrá-lo.
A tarefa que estamos criando é do tipo “test” e o parâmetro “isDefault” está marcado como “true” porque essa é a tarefa que queremos executar sempre que precisarmos testar nossos programas.
5.3. Atribua uma combinação de teclas para chamar a tarefa de execução
Qualquer tarefa do VSCode – tanto as que a ferramenta já tem como as que criamos – pode ser chamada através da opção Run Task do menu Terminal:
O VSCode abre uma lista com todas as tarefas disponíveis. Você só precisa procurar a que quer e clicar em cima dela para executá-la:
Mas existe uma forma de otimizar isso, atribuindo uma sequência de teclas para chamar a tarefa que queremos.
Clique no botão de configurações que aparece no canto inferior esquerdo da tela e selecione a opção “Keyboard Shortcuts”:
O VSCode abrirá uma tela para configuração de todos os shortcuts disponíveis:
Nossa tarefa não aparecerá aqui, pois ela não é um comando nativo do VSCode nem um comando de extensão. Por isso teremos que editar o arquivo keybinds.json e inseri-la manualmente.
No canto superior direito dessa tela existem dois ícones. Se você posicionar o cursor sobre o primeiro ícone o VSCode exibirá a dica “Keyboard Shortcuts (JSON)”. Clique nesse ícone. O VSCode abrirá um arquivo chamado keybinds.json com o seguintes conteúdo:
Copie o conteúdo abaixo e substitua todas as linhas do arquivo por ele:
// Place your key bindings in this file to override the defaults [{ "key": "ctrl+alt+r", "command": "workbench.action.tasks.runTask", "args": "gnucobol (run)", "when": "editorFocus" }]
Estamos dizendo ao VSCode que quando pressionarmos as teclas control+ alt+r o programa que estiver aberto para edição (“editorFocus”) deve ser executado pela tarefa que criamos, “gnucobol (run)”.
Por que “control+ alt+r“? Porque se você observar quase todas as outras combinações já estão associadas a algum comando ou a alguma tarefa. Se você usar uma combinação de teclas que funciona no mesmo contexto de “editorFocus”, provavelmente o comando previamente associado a essa combinação é que será executado, e não a sua tarefa.
Salve e feche o arquivo keybinds.json.
5.4. Próximo passo
O ambiente está pronto. O que vamos fazer agora é testar a compilação e a execução.