O Eclipse é uma excelente ferramenta de programação que suporta várias linguagens e pode ser infinitamente customizado. Uma destas linguagens é o Python, que pode ser usado no Eclipse com plugin PyDev.

Pode acontecer de você já ter algum código Python pronto e querer começar a usar o Eclipse importando este código Python para um novo projeto. Isso funciona bem mas as vezes a indentação do código é exibida incorretamente no editor de código de Eclipse. Em outras linguagens de programação isto não seria um problema tão grande, mas o Python depende da indentação para funcionar, logo não dá para entender um código se a indentação é mostrada errada. O mais interessante deste problema é que apesar de mostrar a indentação errada, o código funciona normalmente quando executado. Acredito que a causa do problema tenha relação com alguma mistura entre tabs e espaços, mas no Kate e no GEdit o código é exibido corretamente.

Usando o Eclipse corretamente com o PyDev

O Eclipse, através do plugin PyDev, pode facilitar a vida do programador. Alguns problemas, como a indentação, podem ocorrer, mas são facilmente resolvidos. (Foto: popdevelop.com)

Tentei várias maneiras de lidar com isto e até pensei em corrigir manualmente, mas desisti. Mais de 4 mil linhas de código teriam que ser revistas uma a uma e as chances de erro seriam muito grandes. Fui pesquisando sobre indentação em Python e achei um script chamado reindent.py. Basta executar este script sobre qualquer aquivo cuja indentação esteja sendo mostrada errada no Eclipse e tudo estará resolvido como mágica.

A linha de comando no Linux é a seguinte:

python reindent.py arquivo_alvo.py

Se você é iniciante na programação, programas como Eclipse podem ter esses pequenos desafios, que são interessantes de identificar e tentar resolver. Eu, por exemplo, tive que encontrar o script e executá-lo no Eclipse para corrigir os erros de indentação, e agora uso já normalmente.

E você? Aprendeu algo novo? Tem alguma sugestão para compartilhar? Deixe nos comentários!

Deixe um comentário

  • (não será divulgado)