Build Systems

Agora que já aprendemos como organizar nossos projetos, veremos o que fazer quando precisamos disparar a execução de tarefas externas a partir do Sublime Text.

Quando estamos programando, a tarefa mais comum desse tipo é preparar, compilar e executar o projeto que estamos desenvolvendo. Esse processo é comumente conhecido como build.

Um build system (sistema de build), portanto, é um conjunto de configurações que dizem ao Sublime Text o que precisa ser feito para executar o build de um projeto. A grande vantagem de usar um sistema de build no seu projeto é evitar a necessidade de alternar manualmente entre o seu editor e outras ferramentas externas com frequência.

Como executar

Um build pode ser executado por meio do menu Tools | Build (Ctrl+B). O Sublime Text vem com sistemas de build padrão para os principais formatos e sintaxes de arquivos (figura 33), mas é possível criar sistemas de build personalizados de acordo com suas necessidades.

Algumas opções de build systems preexistentes

Fig. 33 Algumas opções de build systems preexistentes

Build systems personalizados

Assim como as demais configurações do Sublime Text, na prática os sistemas de build são arquivos no formato JSON que, nesse caso, possuem a extensão .sublime-build.

Um arquivo de build representa os comandos, caminhos de diretórios e a configuração necessária para fazer o build de um projeto usando um conjunto específico de ferramentas.

Os executáveis das ferramentas que são chamadas pelos sistemas de build devem estar no PATH do seu sistema operacional. Caso contrário, sua localização deve ser especificada.

Criando um novo build system

Para criar um novo sistema de build, usamos a opção Tools | Build System | New Build System…. Será aberta uma nova aba no editor com a estrutura mínima que um build system precisa ter, no caso, a definição do atributo cmd, que indica qual o comando externo a ser chamado pelo Sublime Text ao executar o build.

Estrutura do arquivo de build system

A configuração de um build system pode se tornar um tanto extensa, a depender da complexidade do processo de build do projeto. Nesta seção vamos ver as opções mais comuns para a maioria dos casos.

Parâmetros

Alguns dos parâmetros mais utilizados em arquivos de configuração de build systems são:

cmd

Array que contém o comando a ser executado e os argumentos desejados. Se um caminho absoluto não é informado, por padrão o programa externo será buscado nos diretórios listados na variável PATH do seu sistema operacional. Este é o único parâmetro obrigatório.

working_dir

Diretório para o qual a execução deve ser alternada antes de chamar qualquer comando.

selector

Quando a opção Tools | Build system | Automatic está ativa, o Sublime usa esse seletor de escopo para encontrar o sistema de build adequado para arquivo aberto.

path

Se não há garantia de que algum executável necessário para executar a build esteja no PATH do sistema operacional, é aqui onde incluimos o caminho onde ele deve estar.

file_regex

Expressão regular geralmente usada para capturar e exibir mensagens de erro provenientes do comando executado.

Exemplo do código de um build system

Abaixo temos o código do build system padrão do Sublime Text para executar um script Python que esteja sendo editado no momento:

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

Variáveis

Você percebeu o $file no código acima? Ele é uma variável de build que, nesse caso, é substituída pelo do nome completo do arquivo que está sendo editado.

Seguem algumas das váriaveis de build mais comumente utilizadas:

$file

Nome completo do arquivo que está sendo editado

$file_path

Diretório do arquivo que está sendo editado

$file_name

Apenas a parte do nome do arquivo corrente (extensão incluída)

$file_base_name

Nome do arquivo corrente sem sua extensão

$project_path

Diretório do projeto atual

$project_name

Nome do projeto atual