Quick Highlight Mode

01/04/07

O gedit tem algumas coisas muito irritantes — assim como o Gnome — mas que podem ser consertadas com um simples plugin. Uma delas é o modo como você define o highlight de um documento. Quando você cria um novo arquivo, ele vem definido como sendo texto. Então, se você quer ativar o syntax highlighting para um outro tipo, você precisa ir através do menu "View > Highlight Mode" e literalmente "caçar" pelo tipo de highlight que você quer. Nada acessível para um software que possui um extenso guia de usabilidade.

Menu de opções - Highlight Mode

Após instalar este plugin, você tem uma nova opção no menu chamada "Quick Highlight Mode".

Menu de opções - Quick Highlight Mode

Ele possui um atalho que o abre o diálogo com um campo auto-completion. O atalho é Ctrl+Shift+H. Veja como é o diálogo:

Diálogo Quick Highlight Mode

Para instalar este plugin, baixe o Quick Highlight Mode e coloque os arquivos em ~/.gnome2/gedit/plugins. Depois, não se esqueça de ativá-lo em Edit > Preferences > Plugins.

Caso tenha sugestões, envie um comentário.

Update: Fiz uma pequena atualização, adicionando bindings para a tecla 'enter'. Estava me irritando ter que pressionar Alt+A (_Apply).

Update 2:Se você está usando a versão que vem com o Ubuntu 7.10 (gedit 2.20), utilize a versão que está neste respositório: http://svn.simplesideias.com.br/general/gedit/plugins/quickhighlightmode/

Executando arquivos direto do gEdit

29/03/07

Uma funcionalidade que não tinha no gEdit e que eu sentia muita falta é a de executar o arquivo que você estava editando. Por exemplo, você pode estar digitando um HTML e gostaria de ver como está ficando, no navegador. Ou, estar fazendo um script em Python, Ruby ou PHP e gostaria de executar esse arquivo sem precisar sair do editor. No SciTE eu conseguia fazer isso com um simples F5. Agora também consigo fazer no gEdit!

Criei um comando para o "External Tools" — plugin muito interessante, por sinal — que roda comandos externos, como o próprio nome sugere. Para utilizá-lo, primeiro ative-o em "Edit > Preferences > Plugins > External Tool". Depois, vá em "Tools > External Tools" e adicione um novo comando. Copie o código abaixo e cole no campo "Command(s)".

Se você TEM Ruby instalado, use este script:

#!/usr/bin/env ruby
 
current_file = ENV['GEDIT_CURRENT_DOCUMENT_PATH']
 
if not current_file
  puts "The current file cannot be runned."
elsif current_file =~ /\.(php|py|rb|html|htm|xml)$/i
  commands = {
    'php' => "php -f #{current_file}",
    'rb' => "ruby #{current_file}",
    'py' => "python #{current_file}",
    'browser' => "gnome-open #{current_file}"
  }
  extension = $1
  extension = 'browser' if ['xml', 'html', 'htm'].include?(extension)
 
  command = commands[extension]
 
  puts "Running command #{command}\n\n"
  system(command)
end

Se você NÃO TEM Ruby instalado, use este script:

#!/usr/bin/env python
 
import re
import os
 
current_file = os.getenv("GEDIT_CURRENT_DOCUMENT_PATH")
match = re.search('\.(php|py|rb|html|htm|xml)$', current_file)
 
if match is None:
    print "The current file cannot be runned"
else:
    commands = {
        'php': 'php -f "%s"',
        'rb': 'ruby "%s"',
        'py': 'python "%s"',
        'browser': 'gnome-open "%s"'
    }
 
    extension = match.group(1)
 
    if extension in ['xml', 'html', 'htm']:
        extension = 'browser'
 
    command = commands[extension] % current_file
    print "Running command %s\n\n" % command
    os.system(command)

External Tools: Adicionando o novo comando

Agora, quando você estiver executando um arquivo .php, .rb, .py ou .htm/.html e quiser executá-lo, basta pressionar F5 e pronto! Se for HTML abre no navegador padrão. Se for um dos outros que mencionei ele executa e exibe a saída no "Shell Output". Veja a saída de um script Ruby:

Output de um script em Ruby executado através do External Tools

Update: Adicionado suporte a XML com comportamento semelhante de HTML.

Update 2: Adicionado versão Python do script para quem não tem Ruby instalado.

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.