Navegando com CTags no Sublime Text
Uma coisa legal em IDEs é o recurso de navegação no código usando atalhos de teclado e mouse ("Go To Definition" da vida).
O Sublime Text é apenas um editor de texto, porém, graças a sua extensibilidade, podemos obter o mesmo comportamento via plugin.
Instalação e Setup
Instale o plugin CTags: Ctrl+Shift+P > Package Control: Install Package > CTags
.
Instale a biblioteca exuberant-ctags
via sudo apt-get install exuberant-ctags
(veja aqui instruções para outros sistemas).
{"command": "/usr/local/bin/ctags"
}
no arquivo CTags.sublime-settings
do Sublime Text (Packages Settings > CTags > Settings - User
). Veja mais aqui e aqui.Agora precisamos gerar um arquivo de tags com a biblioteca acima para que o plugin possa "conhecer" nosso projeto.
Entre no diretório do projeto que deseja mapear e rode o comando ctags -R -f .tags
, isso nos gerará um arquivo .tags
.
Pronto, já podemos navegar pelo projeto, basta parar o cursor do mouse em cima de alguma classe ou método e usar o atalho Ctrl+Shift+Clique Esquerdo
para ir na definição e Ctrl+Shift+Clique Direito
em qualquer lugar para retornar.
Regerando Arquivo de Tags
Ao adicionar código, o mapa do projeto ficará desatualizado, então precisamos regerar um novo com as últimas mudanças inclusas.
Podemos fazer isso clicando com botão direito dentro da barra lateral na pasta do projeto e clicando em CTags: Rebuild Tags
, via Package Control procurando pelo nome do plugin ou via atalho, pressionando Ctrl+T
e Ctrl+R
(logo em seguida) e escolhendo o local a partir de onde será gerado e salvo o mapa (eu particularmente sempre escolha o última opção, que é a raiz do projeto, assim ficamos com um mapa só para todo projeto).
Automatizando Geração de Tags
Se seu projeto usa git, você pode configurar hooks para automaticamente regerar as tags. Em meu caso deixo após cada commit (post-commit) e pull (post-merge).
Basta entrar no diretório .git/hooks
do projeto e rodar:
Ocultando Arquivo de Tags
Aquivos de tags servem para o plugin apenas, podemos ocultar ele(s) da barra lateral com árvore do projeto e das pesquisas adicionando o trecho abaixo no arquivo Preferences.sublime-settings
:
Adicionando no .gitignore
Eu também gosto de ignorar os arquivos de tags no git, basta adicionar as linhas abaixo no seu .gitignore
:
Até mais.