Usando o Sublime Text como IDE

Neste capítulo vamos conhecer os recursos do Sublime Text que podem fazer dele uma boa alternativa a um IDE autêntico. Mas quais são as características que um bom IDE deve ter?

Normalmente, espera-se que um ambiente de desenvolvimento possua algumas das funcionalidades a seguir:

Realce de sintaxe

O Sublime Text detecta automaticamente a sintaxe da linguagem de programação que está sendo utilizada a partir da extensão do arquivo que está carregado na view.

Caso você queira ativar um realce de sintaxe específico, inclusive para uma view que ainda não foi salva em arquivo, vá em View | Syntax e escolha a sintaxe desejada (Figura 43)

Escolhendo o realce de sintaxe para a view atual

Fig. 43 Escolhendo o realce de sintaxe para a view atual

Como vimos no capítulo Configuração de Preferências, também é possível criar esquemas personalizados para realce de sintaxe. Dessa forma, o Sublime Text é capaz de realçar sintaxe de qualquer linguagem ou formato que exista ou que venha a ser criado.

Controle de indentação

Uma indentação consistente e coerente é fundamental para a legibilidade de código-fonte. Algumas linguagens são mais permissivas quanto à indentação de código, enquanto outras são mais restritivas a ponto da indentação ter papel significativo na sintaxe. Por isso, é fundamental que uma boa ferramenta de edição de código permita ter controle sobre como o código é indentado em cada linguagem.

Configurações de indentação

As principais configurações de indentação podem ser facilmente acessadas pelo menu View | Indentation (Figura 44).

View | Indentation | Indent Using Spaces

Indica para o Sublime Text que a indentação deve ser feita utilizando espaços ao invés de tabs.

View | Indentation | Tab width: x

Determina a o tamanho da indentação. A largura da tabulação é dada pelo número de caracteres equivalente.

View | Indentation | Guess Settings From Buffer

Ao carregar um arquivo, o Sublime Text analisa seu conteúdo e então as configurações de largura da indentação e de transformação de tabs em espaços são aplicadas para o arquivo.

View | Indentation | Convert Indentation to Spaces

Converte a indentação de tabs para o número correspondente de espaços definido em Tab width.

View | Indentation | Convert Indentation to Tabs

Converte a indentação de espaços para tabs com a largura correspondente, definida em Tab width.

Menu View | Indentation

Fig. 44 Menu View | Indentation

Reindentando código automaticamente

No Sublime Text é possível reorganizar a indentação de código-fonte por meio do comando Edit | Line | Reindent. Ao executar esse comando, o Sublime Text tentar rearrumar a indentação de acordo com os padrões sugeridos pela sintaxe da linguagem.

Vale ressaltar que o resultado final do Reindent varia muito de acordo com a complexidade do código, o que não garante uma organização 100% perfeita. Para isso, é possível recorrer a plugins que aperfeiçoam esta funcionalidade. No caso do desenvolvimento front-end com HTML, CSS e JavaScript, por exemplo, vale experimentar o HTML-CSS-JS-Prettify [1].

Code folding

Code folding (dobramento de código) é a capacidade de escolher ocultar ou exibir blocos de código-fonte. Sua finalidade é facilitar a leitura do código, uma vez que esse recurso permite visualizar a estrutura geral de arquivos grandes e isolar o trecho de código no qual se está trabalhando.

O menu Edit | Code Folding contém as opções relativas ao controle de quantos níveis de dobramento de código queremos que sejam aplicados ao view atual (Figura 45).

Menu Edit | Code Folding

Fig. 45 Menu Edit | Code Folding

Autocomplemento

O autocomplemento de código é, possivelmente, o recurso mais útil de uma IDE. Obviamente, quanto mais especializado em uma determinada linguagem é o ambiente de desenvolvimento, maior é a eficiência da funcionalidade de autocompletar código.

Ainda assim, como vimos no capítulo Autocomplemento, o Sublime Text possui recursos bastante satisfatórios para um editor de propósito geral. Além disso, existem plugins de terceiros que aperfeiçoam o autocomplemento para linguagens específicas.

Criando arquivos de autocomplemento

Entre as fontes de opções de autocomplemento que o Sublime Text fornece estão os arquivos de autocomplemento. Com eles é possível configurar novas opções de autocomplemento personalizadas para um determinado escopo/sintaxe. Estes arquivos são do tipo JSON e possuem a extensão .sublime-completions.

Vejamos um exemplo do conteúdo de um arquivo de autocomplemento para que possamos entender sua estrutura:

{
   "scope": "text.html - source - meta.tag, punctuation.definition.tag.begin",

   "completions":
   [
      { "trigger": "input",
        "contents": "<input type=\"$0\" placeholder=\"$1\">"},
      { "trigger": "a",
        "contents": "<a href=\"$1\">$0</a>" },
      { "trigger": "audio",
        "contents": "<audio>$0</audio>" }
   ]
}

scope

Indica em qual contexto, dentro da sintaxe do arquivo que estiver sendo editado, a lista de complementos definida estará disponível.

completions

A lista dos complementos.

trigger

Texto que aparece na lista de autocomplementos disponíveis para o escopo atual.

contents

Conteúdo que será exibido ao selecionar um autocomplemento ativado pelo trigger correspondente. Podemos usar os mesmos recursos de concatenação de strings que servem para os snippets (ver capítulo Snippets).

Compilador embutido

No caso do Sublime Text, essa característica é atendida pelo recurso de build systems (ver capítulo Build Systems). Os build systems são extremamente personalizáveis, logo, uma vez que os passos para compilar um programa em linha de comando são conhecidos, é possível criar um build system para executá-los automaticamente com um simple atalho de teclado.

Suporte a sistemas de controle de versão

O Sublime Text não possui suporte nativo à integração com sistemas de controle de versão. Devido à natureza do Sublime Text essa é uma característica esperada, pois acrescentar esse tipo de recurso iria contra a filosofia de simplicidade do editor.

No entanto, como podemos imaginar, existe uma infinidade de plugins que facilitam o uso de sistemas de controle de versão (version control systems - VCSs) de forma integrada ao Sublime Text:

Git

Mercurial

(http://packagecontrol.io/packages/Mercurial%20for%20Sublime)

Subversion

Múltiplos VCSs

Busca e substituição avançadas

O Sublime Text permite realizar busca e substituição tanto em arquivo único quanto em múltiplos arquivos, sendo que ambos os modos permitem o uso de expressões regulares [2].

Expressões regulares permitem buscar por padrões complexos de texto, que vão além de encontrar uma simples sequência fixa de caracteres.

Uma vez no painel de busca (Ctrl+F para busca no arquivo e Ctrl+Shift+F para busca nos arquivos do projeto), a busca por expressões regulares é ativada clicando no símbolo .* canto inferior esquerdo (Figura 46).

Busca avançada com exepressões regulares

Fig. 46 Busca avançada com exepressões regulares