gEdit e tabulação por arquivo

02/01/07

O gEdit está se tornando um excelente editor de textos e será, com certeza, o escolhido pela maioria quando sair a versão com o novo componente GTKSourceView, que permite múltiplos highlights em um único arquivo (pense em um arquivo HTML com Javascript e CSS embutidos). Porém, por seguir a mesma filosofia do GNOME, peca por algumas funcionalidades básicas que não são implementadas. Uma delas é a definição de tabulação por tipo de arquivo. Por exemplo, quando programo em PHP, gosto de tabulação com 4 espaços. Mesma coisa para o Python. Mas quando estou em Ruby, gosto de 2 espaços como tabulação. Traduzindo, gosto de seguir as convenções de codificação de cada linguagem.

Uma das coisas que me impedia de usar o gEdit era a impossibilidade de fazer isso facilmente. Para quem não sabe, é possível fazer este tipo de configuração com o plugin modelines, mas você precisa adicionar a definição no mesmo estilo do Vim.

O plugin

Resolvi, então, criar este plugin que faz justamente isso. Permite definir diferentes tipos de tabulação, baseadas na extensão do arquivo.

Para instalá-lo, baixe o arquivo tabulation.tar.gz e extraia os arquivos para o diretório ~/.gnome2/gedit/plugins. Depois, ative-o em Editar / Preferências / Plugins.

Para adicionar uma nova extensão, ou alterar as configurações pré-definidas, modifique o arquivo "~/.tabulation.yml".

Sugestões? Deixe um comentário.

Para ver como seu gEdit pode ficar, veja estes posts publicados pelo Yuri Malheiros.

NOTA MENTAL: permitir a configuração das tabulações através de uma interface gráfica.

Update: Forcei apenas a tabulação de arquivos PHP, Python e Ruby. Assim, o script fica sem nenhuma dependência. Baixe o arquivo em http://f.simplesideias.com.br/tabulation-strict.tar.gz.

Comentários #


#1 yguaratã disse:
02 Jan 07, 04:40PM

Olá Nando. Estou criando um protótipo de site para agregar diversos componentes escritos em python para as várias aplicações que oferecem recursos para tais. Dá uma olhada em http://escorpiao.homelinux.org/pythoneverywhere/html/. Ainda estou a procura de patrocínio para bancar o domínio e colocar definitivamente no ar.
O plugin que você fez aí pro Gedit é muito interessante e o site da precisando de conteúdo ;). Você poderia preencher o modelo (disponível em http://escorpiao.homelinux.org/pythoneverywhere/html/howtocrontibute/model.html.tar.gz) para eu adicionar no site? Em caso afirmativo manda pro meu email.
Até mais.

#2 Nando Vieira disse:
02 Jan 07, 04:56PM

Opa Yguaratã. Acabei de te mandar o modelo preenchido! Abraço!

#3 yguaratã disse:
02 Jan 07, 08:21PM

Valeu, Nando. Uma dica: faz um jeito para não ser preciso reiniciar o gEdit quando o cara adicionar ou editar as extensões.

Abraços

#4 Nando Vieira disse:
02 Jan 07, 09:39PM

Isso vai rolar na versão com a interface, porque vou poder conectar um signal com um método de atualização da lista. Para versão inicial não é grande problema, vai! ;)

#5 yguaratã disse:
03 Jan 07, 02:50PM

É verdade. :D

#6 Yuri Malheiros disse:
03 Jan 07, 10:26PM

Já instalei o plugin aqui. Eu costumo seguir as recomendações de estilo das linguagens e esse plugin com certeza vai ajudar. Boa iniciativa Nando Vieira.

Quando tu desenvolver a versão com interface ver se tem um jeito de enviar pro site do Gedit (http://live.gnome.org/Gedit/Plugins), tem uma parte para plugins de terceiros (third party).

Vou deixar uma idéia de plugin no ar… algo que eu gostaria de ver no gedit era um plugin para facilitar a edição de arquivos XML em geral, um bom recurso para começar seria o fechamento automático de tags. Exemplo, você digita " texto aqui " resultando em: " texto aqui "

Gedit rumo ao topo dos editores :D … tá certo nunca vão deixar de dizer que o vim/emacs são os melhores, blablabla.

PS: Millencolin rox!

#7 Gabriel Falcão disse:
08 Jan 07, 10:38PM

Olá Nando,

ainda nem testei o plugion mas como sou entusiasta python comecei a desenvolver uma gui para configurar o seu plugin

dando uma lida rapida no codigo do plugin vi que ele usa um modulo chamado syck para parsear o tabulation.yml

como eu não tenho esse modulo comecei a escrever a gui a partir de um parser pro tabulation.yml

ja ta pronto.

Agora vou mexer na GUI em si.

Infelizmente ainda sou muito, mas muito, muito iniciante em python e meu código ainda tá porco,e talvez até redundante, ams funciona (=P)
de qualquer maneira amo o software livre justamente por essa liberdade de contribuição.

Em breve colocarei os arquivos q estou desenvolvendo no disco virtual do meu site http://www.nacaolivre.org

abraço!

#8 Nação Livre - "Parseando" de arquivos de configuraÃ... disse:
11 Jan 07, 08:24PM

[...] Como bom estudante de python ando sembre buscando boas ferramentas para ajudar no rendimento do meu trabalho e no meu aprendizado da linguagem, foi assim que saí buscando plugins e ferramentas para incrementar o meu gedit, num dos meus passeios pela net vi esse post do Nando Vieira, e resolvi criar um front-end para configurar o plugin criado por ele. [...]

#9 Nação Livre » "Parseando" de arquivos de conf... disse:
13 Jan 07, 02:05AM

[...] Como bom estudante de python ando sembre buscando boas ferramentas para ajudar no rendimento do meu trabalho e no meu aprendizado da linguagem, foi assim que saí buscando plugins e ferramentas para incrementar o meu gedit, num dos meus passeios pela net vi esse post do Nando Vieira, e resolvi criar um front-end para configurar o plugin criado por ele. [...]

#10 Simples Idéias. Por Nando Vieira. » Arquivo » Lista ... disse:
04 Abr 07, 04:50PM

[...] Força tabulação para arquivos PHP, Ruby e Python. Outros documentos utilizam o padrão definido nas preferências. http://simplesideias.com.br/gedit-e-tabulacao-por-arquivo/ [...]

Deixe um comentário




Este blog usa o Gravatar.


Não é aceito código HTML:
adicione-o no pastie.caboo.se ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.