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.


AnteriorConteúdoPróximo