Projetos

A maneira mais efetiva de trabalhar com múltiplos arquivos no Sublime Text é agrupá-los em projetos. Um projeto nada mais é que a informação que o Sublime Text armazena sobre um conjunto de arquivos e pastas que têm alguma relação entre si.

Por exemplo, quando estamos criando um site, geralmente temos um conjunto de arquivos HTML, CSS e JavaScript que o compõem. Quando agrupados em um projeto do Sublime Text, é possível navegar entre eles usando o recurso Goto Anything (Ctrl+P) mesmo quando estão fechados ou em pastas diferentes daquela em que está o arquivo aberto no momento.

Criando um projeto

  1. Adicione uma ou mais pastas com a opção Project | Add folder to project…

  2. A estrutura das pastas abertas aparecerá na barra lateral do Sublime Text. Caso a barra não esteja visível, ative-a com a opção View | Sidebar | Show sidebar (figura 31)

  3. A partir daí, o Goto Anything e os recursos de busca avançada passam a funcionar em relação aos arquivos contidos nessas pastas

Estrutura das pastas do projeto na barra lateral

Fig. 31 Estrutura das pastas do projeto na barra lateral

Salvando um projeto

  1. Selecione a opção Project | Save project as…

  2. O Sublime Text abrirá uma caixa de diálogo para que você informe o nome do arquivo que conterá as informações do projeto. Este arquivo deve ter a extensão .sublime-project.

Nota

Uma dica: se possível, salve o arquivo de projeto fora das pastas do projeto, principalmente se você pretende compartilhá-las ou colocá-las sob controle de versão (Git, Mercurial, Subversion etc.). Compartilhar o arquivo de projeto só faz sentido se todos também estiverem usando Sublime Text. Além disso, junto com o arquivo de projeto é criado um arquivo de workspace que, como veremos mais adiante, contém informações sobre o ambiente local do usuário.

Abrindo projetos salvos

  1. Selecione a opção Project | Open project… e procure o arquivo do tipo .sublime-project correspondente ao projeto desejado, ou

  2. Caso seja um projeto aberto recentemente, selecione-o com a opção de menu Project | Recent projects ou ainda pelo atalho Ctrl+Alt+P (figura 32)

Alternando entre projetos salvos com Ctrl+Alt+P

Fig. 32 Alternando entre projetos salvos com Ctrl+Alt+P

Configuração de preferências por projeto

Muitas vezes o código de um projeto é compartilhado por mais de uma pessoa da equipe. Por isso, nem sempre é possível utilizar nossas preferências pessoais sem interferir no padrão de organização de código que foi convencionado. Para estes casos, entra em cena a capacidade do Sublime Text de manter um arquivo de configuração específico para cada projeto.

Os arquivos de projeto são escritos no formato JSON e possuem a extensão .sublime-project. Neles, podemos configurar quais pastas devem fazer parte do projeto, inclusive filtrando os arquivos que devem ou não aparecer na barra lateral. Também é possível sobrepor as preferências de usuário, bem como o sistema de build [1] utilizado.

Estrutura de um arquivo de projeto

Um arquivo de projeto pode ter as seguintes seções:

  • folders

  • settings

  • build_systems

folders

A seção folders contém um ou mais caminhos para as pastas que fazem parte do projeto. Seus atributos são:

  • path: indica o caminho para uma pasta que deve fazer parte do projeto

  • name: especifica o nome que será exibido na barra lateral no lugar do nome do diretório

  • file_exclude_patterns: indica quais arquivos devem ser ocultados na barra lateral

  • folder_exclude_patterns: indica quais pastas devem ser ocultadas na barra lateral

  • follow_symlinks: indica se o projeto deve considerar links simbólicos (atalhos) para arquivos que estejam em outras pastas

Exemplo 1
{
    "folders":
    [
        {
            "path": "src",
            "folder_exclude_patterns": ["imagens"],
            "follow_symlinks": true
        },
        {
            "path": "docs",
            "name": "Documentação",
            "file_exclude_patterns": ["*.css", "*.png"]
        }
    ]
}

No exemplo acima, a pasta src foi incluída como parte do projeto, sendo que a pasta imagens que está dentro dela não será exibida na barra lateral. Do mesmo modo, a pasta docs também fará parte do mesmo projeto, sendo que seu nome será exibido como Documentação na barra lateral e os arquivos com extensão .css e .png não serão exibidos.

Vale lembrar que no exemplo acima os caminhos das pastas são relativos à localização do arquivo de projeto, mas também é possível informar um caminho absoluto.

settings

A seção settings permite que você coloque qualquer configuração de preferências válida em um arquivo do tipo .sublime-settings. Fazendo isso, essas preferências irão sobrepor as que estão definidas no arquivo de preferências do usuário (Preferences | Settings - User).

build_systems

A seção build_systems permite definir sistemas de build específicos para o projeto.

Abaixo um exemplo de arquivo de projeto com todas as seções que falamos aqui.

Exemplo 2
{
    "folders":
    [
        {
            "path": "src",
            "folder_exclude_patterns": ["imagens"],
            "follow_symlinks": true
        },
        {
            "path": "docs",
            "name": "Documentação",
            "file_exclude_patterns": ["*.css", "*.png"]
        }
    ],
    "settings":
        {
            "tab_size": 4,
            "font_size": 14,
            "line_numbers": true
        },
    "build_systems":
    [
        {
            "cmd": ["make"]
        }
    ]
}

Workspaces

No Sublime Text, enquanto um project serve para agrupar recursos que pertencem a um projeto, podemos considerar que um workspace serve para armazenar informações sobre o estado de uma janela.

Na prática, os workspaces são responsáveis por memorizar os arquivos abertos, a disposição dos painéis no layout tela que está sendo utilizado, o histórico dos vários tipos de modificações efetuadas, entre outras informações.

Essas informações ficam gravadas em um arquivo de extensão .sublime-workspace.

É possível ter mais de um workspace por projeto. Isso é útil para os casos nos quais é preciso trabalhar com diferentes funcionalidades em um mesmo projeto. Desse modo, podemos fazer com que apenas os arquivos referentes à funcionalidade desejada fiquem abertos, bem como apenas as configurações e o histórico relevantes para o contexto daquela funcionalidade.

Diferentemente dos arquivos de projeto, os arquivos de workspace não foram concebidos para serem editados manualmente. Todas as informações gravadas nele são feitas automaticamente pelo Sublime Text e são reflexo das ações do usuário dentro do workspace ativo.

Também é importante lembrar que, ao contrário dos arquivos de projeto, não é recomendado que os arquivos de workspace sejam compartilhados ou versionados. O motivo é que eles armazenam informações referentes ao ambiente do usuário, podendo expor a terceiros informações privadas.

Criando um novo workspace

Ao criarmos um projeto, automaticamente é criado o seu arquivo .sublime-workspace correspondente.

Quando queremos adicionar um novo workspace ao projeto, selecionamos a opção Project | New Workspace for Project. Ao fazer isso, uma nova janela é aberta para o mesmo projeto, porém sem nenhum arquivo aberto.

Tudo o que for feito nesse novo workspace será registrado. Para salvá-lo, vá em Project | Save Workspace As… e grave o arquivo com o nome desejado, sem esquecer de manter a extensão .sublime-workspace.

Alternando entre workspaces

Para alternar entre workspaces, é só fazer o mesmo que fazemos com os projetos. Basta ir em Project | Quick Switch Project… (Ctrl+Alt+P) e escolher o arquivo de workspace desejado na caixa de seleção.