Passo 5: Criar tarefa para executar programas

Normalmente, depois que você compila o programa você pode ir para o Prompt do Windows e simplesmente digitar o nome do programa na linha de comando para que ele seja executado.

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. Crie a tarefa de execução

No menu Explorer do VSCode, procure pelo diretório .vscode, embaixo do workspace que criamos e clique no arquivo tasks.json:

As duas tarefas de compilação que criamos no passo anterior estão lá. Agora vamos criar uma terceira tarefa, especificamente para executar o programa compilado.

Posicione o cursor depois da última chave } que aparece na linha 45 da imagem acima. Insira uma vírgula depois dessa chave e copie o conteúdo abaixo da linha 46 em diante:

        {
             "label": "gnucobol (run)",
             "type": "shell",
             "command": "${fileBasenameNoExtension}",
             "detail": "tsc -p ./",
             "problemMatcher": [],
             "group": {
                 "kind": "test", 
                 "isDefault": true
             }
         }

O arquivo deve ficar igual ao que aparece na imagem anterior.

Com isso estamos criando uma tarefa que se chama “gnucobol (run)”, que tambem é do tipo “shell”, e que quando executada vai enviar para a linha de comando o conteúdo da variável “${fileBasenameNoExtension).exe”, ou seja, o nome do programa que está sendo editado seguido da extensão “.exe”.

Como os programas executáveis serão gerados no diretório C:\Users\{seuNome}\cobolws\exe, e num passo anterior nós colocamos esse diretório na variável de ambiente PATH, o Windows conseguirá encontrá-lo.

A tarefa é 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.

Salve e feche o arquivo tasks.json.

5.2. 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. Ele é o último botão que aparece no canto inferior esquerdo da tela. Selecione a opção “Keyboard Shortcuts”:

O VSCode abrirá uma tela mostrando todos os atalhos 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, aparecerá a dica “Keyboard Shortcuts (JSON)”. Clique nesse ícone. O VSCode abrirá um arquivo chamado keybinds.json igual a esse:

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"
}]

O arquivo deve ficar assim…

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.3. Próximo passo

O ambiente está pronto. O que vamos fazer agora é testar a compilação e a execução.


AnteriorConteúdoPróximo