Plugin para Menu de Troca Rápida de Arquivos Abertos no Sublime Text 2

Fala pessoal, beleza? Cadê a galera que utiliza o Sublime Text ai?!

Faz pouco tempo que migrei do Aptana Studio para o Sublime Text 2 e tenho que admitir que ele é um ótimo editor, muito rápido, simples e útil.

Nessa minha migração eu só senti falta de três features que acho muito importante, são elas:

1- Comandos básicos como copiar, recortar e colar no menu de contexto da sidebar (nesse ponto temos o plugin SideBarEnhancements que adiciona essas e outras features, mas até a data desse post ele não funcionava no Windows)

2- Outline, quem já usou Eclipse ou derivados sabe o que é, ele lista todas as classes e métodos do arquivo que está aberto onde podemos navegar apenas clicando no link (alguns podem falar que o Sublime Text tem a pesquisa com @ através do Ctrl+P, mas pra mim não é a mesma coisa)

Atualizado: isso pode ser resolvido usando CTags, veja esse post.

3- Menu de troca rápida de arquivos abertos. Esse é aquele menu que aparece quando seguramos Ctrl e navegamos com Tab no Notepad++ e Visual Studio, no Aptana esse não é o atalho padrão, mas eu configurava assim. Veja a imagem abaixo:

menu-de-troca-rapida-de-arquivo-aptana

Tentando sanar essa última necessidade, eu pesquisei na internet por algum plugin e cheguei a esse tópico onde tem um link para esse gist que resolve o problema. Após aprender onde colocar o arquivo e adicionar duas importações que estavam faltando eu deixei funcionando, ainda não é como queria, mas é uma solução alternativa..

Instalando o Plugin

Primeiro passo que precisamos tomar é dizer ao Sublime Text quais serão as teclas de atalho da funcionalidade que desejamos. Como ele já possui o atalho Ctrl + Tab, irei definir o atalho Alt + E, para isso, acesse o menu Preferences -> Key Bindings - User e adicione a definição abaixo:

{
  "keys": ["alt+e"],
  "command": "switch_to_file"
}

Aqui simplesmente dizemos que ao pressionarmos as teclas definidas em keys estaremos chamando o comando switch_to_file.

Acesse o menu Preferences -> Browse Packages.. para abrir a pasta que se encontram os pacotes do Sublime e crie um arquivo chamado SwitchToFile.py dentro da pasta User com o seguinte conteúdo:

import sublime_plugin, os
class SwitchToFileCommand(sublime_plugin.WindowCommand):
    def run(self):
        self.display_list = []
        self.views = []
        for view in self.window.views():
            path = view.file_name()
            if view.is_scratch():
                name = view.name()
                path = '(view id = %d)' % (view.id())
            elif not path:
                name = 'Untitled'
                path = '(view id = %d)' % (view.id())
            else:
                name = os.path.split(path)[1]
            self.display_list.append([name, path])
            self.views.append(view)

        self.window.show_quick_panel(self.display_list, self.switch_to_view, False)

    def switch_to_view(self, index):
        if index >= 0 and len(self.views) > index:
            self.window.focus_view(self.views[index])
Note que temos uma classe chamada SwitchToFileCommand que é o mesmo nome que definimos em command concatenado com Command e em camel cased, isso é um padrão do Sublime Text e deve ser seguido para qualquer plugin.

É só isso! Agora se você for no Sublime e apertar as teclas definidas como atalho você verá um menu com todos arquivos abertos com opção para escolher e pesquisar entre eles.

menu-de-troca-rapida-de-arquivos-aberto-sublime-text-2

Se você também sentiu falta dessa feature, não deixe de votar aqui, quem sabe não vemos ela na próxima versão.

O que acharam da dica?

Até mais.

Written on December 1, 2012

Share: