Passo 3: Criar uma área de trabalho (workspace)
Para organizar nossos programas, scripts, arquivos e binários vamos criar um conjunto de subdiretórios e associá-lo ao workspace do VSCode.
O workspace não tem o mesmo conceito de projeto em outras plataformas, como no Eclipse e no NetBeans, mas facilita a configuração e execução de diversas tarefas no próprio VSCode, através de muitas variáveis de ambiente que ele criará para esse workspace.
3.1. Crie os diretórios de trabalho
Vamos criar essa área de trabalho no nosso diretório home. A árvore de diretórios será igual à que se vê no quadro abaixo:
/Users |_ /{seuNome} |_ /cobolws |_ /bin |_ /cbl |_ /cpy |_ /dat |_ /lib |_ /shs
Os diretórios mostrados acima terão a seguinte finalidade:
- {seuNome}: é o seu nome de usuário no equipamento: /Users/{seuNome} é o que chamamos de diretório home.
- cobolws: será o nome do nosso workspace. Você pode substituí-lo por algum outro nome que lhe agrade mais, mas não se esqueça de utilizar o nome que você escolher nos próximos comandos desse tutorial
- bin: é o diretório onde ficarão os programas compilados (main)
- cbl: é onde ficarão os programas fontes
- cpy: guardará os copybooks
- dat: você pode usar para guardar arquivos e relatórios gerados pelos seus programas
- lib: é onde ficarão os programas compilados que são chamados por outros programas. Neste tutorial vou me referir a eles frequentemente como programas called
- shs: neste diretório ficarão shell scripts para execução de programas. Se você não está acostumado a trabalhar com eles, image que eles serão equivalentes aos jobs que você codifica em JCL nos mainframes. Neste tutorial vamos precisar criar apenas um script mais adiante.
Você pode criar esses diretórios diretamente no Finder ou usando qualquer outro recurso com o qual esteja familiarizado. No meu caso, vou utilizar a própria linha de comando do terminal:
cd ~ mkdir -p cobolws/bin mkdir cobolws/cbl mkdir cobolws/cpy mkdir cobolws/dat mkdir cobolws/lib mkdir cobolws/shs
O primeiro comando faz com que /Users/{seuNome} seja o diretório corrente, garantindo assim que as pastas cobolws/bin, cobolws/cbl, cobolws/cpy, cobolws/dat, cobolws/lib e cobolws/shs serão subdiretórios do seu diretório home.
O argumento “-p” no primeiro comando “mkdir” faz com que o subdiretório pai (cobolws) seja criado caso ele ainda não exista.
3.2. Configure o VSCode para que ele reconheça o workspace
Precisamos agora informar ao VSCode que os diretórios que acabamos de criar serão o nosso workspace. Na verdade, informaremos que todos os subdiretórios que estão abaixo de /Users/{seuNome}/cobolws farão parte desse workspace.
Para isso, abrimos a opção File / Add Folder do Workspace…
…e em seguida procuramos pelo diretório cobolws que acabamos de criar…
Ao clicar no botão Add, no canto inferior direito dessa janela, o VSCode passará a reconhecer /Users/{seuNome}/cobolws como workspace. Se você for agora no menu Explorer, poderá ver que ele faz parte do que o VSCode chama de “Entitled Workspace“:
3.3. Defina qual será o diretório corrente default nos terminais integrados do VSCode
O VSCode possui terminais integrados que você pode abrir numa de suas janelas. Eles são muito semelhantes à aplicação Terminal do Mac e são importantes para que possamos interagir com nossos programas e com diversas operações do próprio VSCode.
Para facilitar nosso dia a dia no futuro, informaremos ao VSCode que sempre que um de seus terminais integrados for aberto o diretório /Users/{seuNome}/cobolws será o diretório corrente da sessão.
Vá na opção Code / Preferences / Settings:
O VSCode abrirá sua tela de configuração…
Selecione a aba “User“, abra o bloc “Features” e procure um parâmetro chamado “Integrated: Cwd“. Informe o nome do diretório principal do workspace, /Users/{seuNome}/cobolws:
Esta alteração será salva automaticamente quando você sair dessa tela.
3.4. Informe o diretório de onde ficarão os copybooks
Uma das funções mais interessantes da extensão Bitlang.Cobol é permitir que a gente clique no nome de uma variável mencionada na Procedure Division para ver como e onde ela foi definida.
Essas variáveis podem ter sido explicitamente declaradas na Data Division ou podem ter sido criadas num copybook. Para que o Bitlang.Cobol saiba onde procurar pelos copybooks precisamos dizer onde estes copybooks estarão.
Clique no botão “Extensões” na barra do lado esquerdo. O VSCode mostrará as duas extensões que instalamos. Selecione a extensão Bitlang.Cobol:
O VSCode abrirá novamente a tela de boas vindas dessa extensão. Clique no símbolo de configuração que aparece à direita do botão “uninstall“. Em seguida escolha a opção “Extension Settings“:
Na aba “Users“, procure pelo parâmetro “Coboleditor: Copybookdirs“. Clique no botão “Add Item” desse parâmetro e em seguida informe o nome do subdiretório onde ficarão os copybooks do nosso workspace: /Users/{seuNome}/cobolws/cpy:
O Bitlang.Cobol permite que você informe mais de um diretório. Se um dia, por exemplo, você resolver criar um subdiretório para guardar exclusivamente copybooks de Screen ou Report Section, você pode adicioná-lo a essa lista.
Não saia dessa tela por enquanto. Nossa próxima ação será estabelecer o formato da linha de programa que usaremos em COBOL.
3.5. Escolha o formato das linhas de programa
O Bitlang.Cobol reconhece programas escritos em fixed format (o tradicional, onde a linha de programas deve respeitar as colunas 7, 8, 12 etc…) ou em free format (onde essas restrições não existem).
Mas para isso precisamos configurá-lo para que ele saiba que critérios utilizar para considerar cada formato. Neste tutorial faremos com que o Bitlang.Cobol reconheça os dois formatos.
Desça a tela mais um pouco até encontrar o parâmetro “Coboleditor: Fileformat” e clique na opção “Edit in settings.json“:
O VSCode abrirá uma tela com todas as configurações que fizemos até aqui. Essas configurações ficam armazenadas num arquivo chamado “settings.json” que o VSCode mantém num diretório escondido chamado “.vscode“, dentro de nosso workspace (ou seja, /Users/{seuNome}/cobolws/.vscode/settings.json)
Você terá que editar esse arquivo para incluir as definições de formato de linha. Repare no exemplo abaixo que dentro do parâmetro “coboleditor.fileformat” temos a declaração dos dois padrões. Edite o arquivo para que ele fique semelhante ao mostrado abaixo:
Basicamente, o que estamos informando ao Bitlang.Cobol é o seguinte: todo programa cujo extensão for “CBL” (em maiúsculas, como por exemplo em gtc001.CBL) deve ser tratado como fixed format; caso contrário, se a extensão estiver em minúsculas (como, por exemplo, em gtc001.cbl), então o programa deverá ser tratado como free format.
Desta forma você terá à sua disposição um editor que trabalha com os dois formatos para que você possa escolher o que mais lhe agrada. Basta que você crie os seus programas com a extensão correspondente.
Se preferir usar apenas um dos formatos, é só não digitar o pattern correspondente ao outro. Por exemplo, se você quiser trabalhar apenas com free format, deixe o arquivo desse jeito:
"coboleditor.fileformat": [ { "pattern": "**/*.*" "sourceformat": "free" } ],
Abra o menu File e selecione a opção Save para salvar o arquivo “settings.json“. Você também pode salvar o arquivo pressionando command+s. Fechar a janela de edição desse arquivo.
3.6. Próximo passo:
Agora vamos configurar o VSCode para que ele consiga compilar nossos programas usando o GnuCOBOL.