Verificador de estilo de código no VIM

Exemplo pep8

Como mencionado no texto anterior sobre o VIM, existem algumas ferramentas para análise de sintaxe e estilo de código. A principal vantagem dessas ferramentas é a possibilidade de validar o código independente da IDE, uma vez que nem todos gostam e se acostuma com as mesmas ferramentas, o maior exemplo é a “flame war” VIM e Emacs, mesmo assim é possível ter um nível de padrão no código.

As ferramentas e alertas variam conforme a linguagem desejada, porém basta uma pesquisa para encontrá-las. Para Python temos o pep8 e o Pylint, o primeiro faz a verificação segundo as regras da PEP8, o segundo vai além e mostrar variáveis que não são utilizadas, algumas boas práticas, erro nos imports e assim por diante.

Para JavaScript temos o JSLint e o JSHint, ambos efetuam a mesma tarefa, porém possuem diferenças de configuração e o estilo do código correto também será levemente diferente, basta ver o que melhor se adapta a situação.

Integrar esses verificadores no VIM exige que primeiro tenhamos eles instalados e funcionando corretamente no sistema. O pep8 instalei via pip (pip install pep8), caso o faça dentro de um virtualenv não se esqueça que o executável deve estar no PATH para que seja encontrado. O JSLint foi instalado com o Node.js. Para utilizá-los basta chamar o executável, pep8 ou jslint, e o nome do arquivo, agora é possível configurar dentro do VIM.

Como já mencionado no texto anterior, simplesmente configurei o validador como se fosse o compilador, o que pode ser feito com o parâmetro “makeprg”, porém para que os erros aparecem integrados ao VIM é necessário informar como ele deve interpretar a saída dos programas com o parâmetro “errorformat” (digite :help errorformat dentro do vim para mais informações).

Minha configuração ficou:

autocmd Filetype python set makeprg=pep8\ %
autocmd Filetype python set errorformat=%f:%l:%c:\ %t%n\ %m
autocmd Filetype javascript set makeprg=jslint\ %
autocmd Filetype javascript set errorformat=%-P%f,
                                           \%E%>\ #%n\ %m,%Z%.%#Line\ %l\\,\ Pos\ %c,
                                           \%-G%f\ is\ OK.,%-Q

Para validar o código basta salvar o código, e executar :make. Porém se você quiser pode criar um atalho para essa tarefa, no meu caso coloquei no F4:

map <F4> :w<CR>:cw<CR>

Lembrando que esses comandos devem ficar dentro do .vimrc no seu home.

Anúncios

Editor de Texto: VIM

Atualmente estou usando o VIM como meu editor padrão, o principal motivo e buscar um editor livre, porém tem algumas vantagens interessantes que notei nesse processo e estou compartilhando com vocês.

Primeiro todas as versões de GNU/Linux e possivelmente UNIX sempre possuem alguma versão do VIM ou VI instalado por padrão, então mesmo que você não esteja no seu computador, terá o editor ao qual está acostumado, provavelmente sem os plugins, porém melhor que pegar um editor totalmente diferente.

Não existe a necessidade de um ambiente gráfico para poder utilizar o mesmo, então é possível utilizar ele completamente apenas no terminal, mesmo conectado via SSH não precisa redirecionar o X, o que somado a primeira vantagem torna as coisas muito interessantes pelo menos para mim. As vezes, preciso desenvolver ou testar algo direto no servidor que não tem interface gráfica. Porém existindo a interface ainda podemos utilizar o gVim que adiciona mais algumas facilidades na interface gráfica.

Totalmente extensível por plugins, como ele possui esse recurso e não é um editor novo, provavelmente já existe um syntax highlight para os formatos que você precisa e talvez até funcionalidades para auxiliar em algumas tarefas, basta dar uma pesquisada no site oficial.

É possível adaptar algumas coisas, por exemplo trabalho com linguagens interpretadas como Python e JavaScript, então não tenho erros de compilação. Como existem alguns verificadores de sintaxes (como pep8 para o Python e JSLint para o JavaScript), substitui o comando make dessas linguagens por seus respectivos verificadores, configurei a saída de erros e com uma simples tecla verifico se o meu código apresenta algum erro ou não conformidade com as boas práticas de código integrado na tela do código. Tenho a intenção montar um tutorial sobre isso mais para frente.

Para Python temos o Jedi, o melhor autocompletar que eu já vi para a linguagem, completamente diferente do padrão do Sublime que por exemplo apenas lista palavras já utilizadas, podendo enganar as vezes.

Obviamente o VIM não é amigável logo de cara, muitos tiveram o trauma de reiniciar o computador na primeira vez que abriram ele sem saber como fechar. Porém com o tempo você acaba pegando o costume dos atalhos que mais utiliza e nem se importa com os demais. Utilizando os menus do gVim temos o comando para fazer as tarefas direto no VIM e é possível decorar conforme a frequência de visualização dos mesmos. Também existe o Cream, que torna o VIM mais parecido com os demais editores de texto, vale a pena dar uma olhada, caso esse seja o seu desejo para um editor.

Todo mundo que utiliza o VIM sempre tem o problema de como configurar o .vimrc, porém como ele é totalmente customizável só com o uso você conseguirá deixá-lo da forma que desejar, porém para ajudar os iniciantes temos o Vim Bootstrap, basta selecionar as linguagens que deseja e mandar gerar o .vimrc.

A curva de aprendizagem pode ser grande, porém muitas pessoas conseguiram superá-la e não querem mais largá-lo, vele a pena dar uma estudada, o comando vimtutor pode ensiná-lo. Esse conhecimento pode salvá-lo, principalmente quando tiver que editar algum arquivo dentro de um access-point com Linux.

Editor Web: Brackets

Bracket

É muito difícil encontrar um programador que não saiba HTML, CSS e JavaScript, hoje esse trio é suportado em praticamente todos os dispositivos que possuem conexão com a internet. Porém além de saber utilizá-los, algo que auxilia e muito na hora de codificar é uma boa IDE. Também são interessantes as IDEs que são escritas com as próprias linguagens, que tende a integrar melhor com a forma de desenvolver daquela linguagem.

O Brackets é uma IDE para HTML, CSS e JavaScript (suporta outros formatos com plugins) escrita em HTML, CSS e JavaScript, como descrito no próprio programa: “Made with ♥ and JavaScript”. Essa IDE é um projeto open source da Adobe com código no GitHub e disponível para GNU/Linux, Mac e Windows, possuindo recursos muito interessante para o desenvolvimento web. Para os designs existe o “Live Preview”, que mostra no Google Chrome como o seu site está em tempo real (infelizmente ainda não é compatível com os demais navegadores), ou como demonstrado neste vídeo do YouTube (https://www.youtube.com/watch?v=xAP8CSMEwZ8) a montagem de um layout a partir de um arquivo “psd”, graças a integração com as outras ferramentas encontradas nos produtos da Adobe.

Porém os desenvolvedores também ganham ótimas ferramentas, além de poder debugar a própria IDE com as ferramentas de debug do Webkit. Existem extensões para as mais diversas funcionalidades, desde validados de código com as boas práticas, até integração com o Git mostrando linhas modificadas em arquivos, documentação na própria IDE e suporte a outros formatos de arquivos. Também existe extensões para mudar o tema, ToDo List, mostrar alguns sites como o Building Firefox OS e Can I use….

Com versões sendo lançadas mais ou menos no espaço de um mês, está sempre atualizado e vem adicionando recursos novos a cada versão, tanto que existem vídeos no site apenas para demonstrar as novidades. Se você tem algum contato com desenvolvimento web, ou interesses nesta área, vale muito a pena dar uma conferida nesta IDE.