Para a primeira postagem desse blog, pensei em falar sobre um editor de código que venho usando há algum tempo, e que tenho gostado bastante! :) Eu estou falando do Geany! Um editor de código/IDE super levinho, mas que tem todas as funcionalidades que você vai precisar pra trabalhar no projeto que precisar, por ser bastante versátil. O Geany foi escrito em C e C++, mas também há código escrito em outras linguagens, como Python e Fortran. O editor de textos em si, é baseado no widget do Scintilla, que é escrito em C++

Aliás, acho que seria legal começar explicando qual é a diferença entre um editor de código e uma IDE:

Basicamente, uma IDE é um editor de textos que traz diversas funcionalidades que um programador precisa, pode se limitar a um único escopo de programador, como no caso das IDEs da Jetbrains, que tem uma IDE especial para cada linguagem de programação que eles suportam. Quando comparamos editor de texto com uma IDE, precisamos lembrar que programadores não apenas escrevem código, e muito do trabalho de desenvolvimento dá envolvido em debug, compilação, empacotamento e outras coisas. Uma IDE provavelmente vai ter ferramentas que ajudam nesse sentido.

Mas voltando ao assunto…

Aqui vai uma foto da aparência inicial do Geany no Linux Mint:

Tela inicial do Geany

Bem agradável, mas pra mim a interface é um pouco poluída, gosto de ver o mínimo de botões possíveis, já que o meu fluxo de trabalho é focado no uso do teclado, então certos botões acabam sendo se tornando bem desnecessários. :P

Barra lateral do Geany

Esta é a barra lateral, nela é comum encontrar informações relacionadas ao arquivo ou projeto que está trabalhando, dependendo dos plugins que tiver instalado, você vai ver outras coisas. Por exemplo, se estiver trabalhando com markdown, você pode instalar um plugin que adiciona uma pré-visualização do resultado em HTML na barra lateral. Outros plugins, como o gerenciador de projetos, vai adicionar um mini explorador de arquivos na barra lateral, que é uma funcionalidade quase que indispensável numa IDE. Bem, isso é a barra lateral, com certeza não é nada especial do Geany, mas é bem legal a forma como ela foi implementada. :3

Janela de mensagens do Geany

Essa é a janela de mensagens! Aqui você vai encontrar mensagens de estado, e registros, por exemplo, ao salvar um arquivo, você vai ser notificado na aba “Estado”. Na aba “Compilador” você vai receber os retornos gerados pelo compilador executado, bem como você receberia num terminal mesmo. Também tem a aba “Mensagens” é nela que você vai receber avisos, citações, registros e outras coisas, é geralmente onde um plugin vai enviar mensagens para o usuário.

Terminal do Geany na janela de mensagens

Ainda há a aba “Terminal”, que nela você vai ver um terminal com o shell do usuário do sistema, é só um terminal bem simples, é um atalho bem legal de se ter. :) Mas só uma observação sobre o terminal: Caso você use um atalho que já seja usado no terminal, como ctrl + a, ele vai ser lido pela aba de terminal, enquanto ela estiver focada.

Editor do Geany

Esse é o widget do Scintilla! É aí onde você vai escrever seus códigos ou textos, parece ser um editor de códigos simples né? Mas na verdade ele vem com algumas funcionalidades muito úteis! :) Bom, falando do básico:

Dá pra dobrar o seu código! Por exemplo, essa classe “StdClass”, dá pra ver um sinal de menos ao lado esquerdo da sua definição, ao clicar, o bloco todo vai ser minimizado. Isso é útil pra esconder código que você não vai ler agora, realmente, super útil ;)

Também temos edição com múltiplos cursores!

Exemplo de uso dos multiplos cursores no Geany

Para isso, é só apertar alt + shift + seta pra cima ou pra baixo, na direção onde quer adicionar o novo cursor, daí é só começar a escrever :) Nesse caso, eu usei pra comentar várias linhas ao mesmo tempo, mas para isso eu também poderia ter utilizado o atalho ctrl + e

O editor também tem auto completador! Ele completa automaticamente um termo que já exista no arquivo. Para usar é bem simples: Comece escrevendo o começo da palavra, pelo menos os 3 primeiros caracteres, após isso, aperte ctrl + espaço, e um menu com as opções disponíveis vai aparecer. Infelizmente não vou conseguir mostrar isso, já que o menu some quando eu aperto o botão de tirar print 7w7 Também tem como auto completar termos que não estão no documento, mas pra isso você precisa fazer uma configuração que eu ainda não entendi como faz :P Quando eu aprender vou atualizar o post, ou criar um novo só sobre isso.

Agora, falando de funcionalidades mais avançadas, que são comuns de uma IDE, temos suporte a coisas como linting, que é basicamente um processo de análise do código, que é feito por um software que costuma ser externo.

No Geany, algumas linguagens tem suporte oficial a linting, outras exigem uma configuração especial, mas nada muito difícil de fazer. Por exemplo, python tem suporte a linting, que é feito pelo pycodestyle, então você vai precisar instalar esse separadamente, provavelmente você vai encontrar nos repositórios do PIP. Para usar, é só abrir um arquivo com código python, ir no meno “construir” e clicar em “lint”, e quase imediatamente, na janela de mensagens você vai ver todos os diagnósticos gerados pelo pycodestyle. Linguagens como ruby, bash, java, c e c++ também vão ter suporte a essa funcionalidade, deve ter mais, mas eu não lembro agora :P Você também pode adicionar o suporte a linting para outras linguagens também, mas isso eu vou explicar em outro post, onde vou ensinar algumas coisas sobre como configurar o geany :)

Também tem como configurar snippets! Na pasta de configurações do Geany, você deve encontrar um arquivo chamado “snippets.conf”, lá você vai poder configurar com uma sintaxe bem simples, todos os snippets que precisar! Snippets são atalhos para código que você escreve com frequência, como uma estrutura de classe, função, ou o template básico de html. Basta escrever o snippet, por exemplo: html, e apertar “tab” que o Geany vai expandir o snippet e escrever toda a estrutura básica do html.

Eu tenho um arquivo com vários snippets que uso, vou disponibilizar junto com todo o resto da minha configuração, vou ver onde vou colocar isso, mas vou deixar em um lugar bem fácil de achar no blogue, então dá uma procurada depois x3

Bom, pra um primeiro post, eu acho que já tá de bom tamanho, o Geany é um editor que me chamou muuuuuita a atenção recentemente, então provavelmente ainda vou falar muito sobre ele aqui no blogue!

Também tem outros editores que amo! Como o vim e o nano, um pouquinho do emacs também, mas esse eu usei muito pouquinho 7w7

Enfim, é isso, espero que tenham gostado da leitura! E… até depois! :3