Os 8 melhores plugins do IntelliJ para melhorar sua experiência de programação
26 de agosto de 2021
0 minutos de leituraPara muitos desenvolvedores, uma boa IDE é como um canivete suíço: uma ferramenta que reúne, em um único programa, todo tipo de recurso necessário no dia a dia. Por isso, muitos desenvolvedores trabalham principalmente na IDE favorita, em vez de abrir várias ferramentas com funções específicas.
O relatório sobre o ecossistema JVM de 2021, lançado recentemente, mostra que o IntelliJ IDEA é de longe a IDE mais usada no ecossistema Java. No entanto, o relatório também indica que mais da metade dos desenvolvedores usa várias IDEs no sistema local. Por isso, talvez você queira ampliar os recursos da sua IDE com extensões ou plugins que atendam às suas necessidades e facilitem o uso. Neste post, apresentamos oito plugins prontos para uso em produção, disponíveis gratuitamente no marketplace, que podem melhorar sua experiência de programação.
As versões atuais do IntelliJ IDEA já vêm com muitos plugins, incluindo Maven, Gradle, Lombok, Docker e vários outros. A equipe da JetBrains também oferece muitos plugins para linguagens e frameworks específicos. Essa é uma das razões pelas quais eles quase sempre funcionam perfeitamente com o IntelliJ IDEA. Neste post, porém, vou destacar ótimos plugins adicionais, principalmente de terceiros, que trazem algo a mais para a sua rotina.
1. Maven Helper
No ecossistema Java, o Maven continua sendo o sistema de build mais usado e também oferece gerenciamento de dependências. O plugin Maven Helper, de Vojtech Krassa, oferece ferramentas simples para navegar pelas dependências, por exemplo, em uma visualização em árvore, e encontrar conflitos entre elas.

Além disso, você pode predefinir e combinar objetivos do Maven para executar com um clique ou pelo menu de contexto. Isso inclui executar objetivos de plugins. No exemplo abaixo, criei um objetivo adicional que chama o objetivo package e ignora os testes.

2. Rainbow Brackets
Este é um plugin pequeno, simples e elegante que pode facilitar muito a sua vida. O Rainbow Brackets usa cores diferentes para colchetes e parênteses aninhados. Assim, fica muito mais fácil identificar onde termina uma expressão entre parênteses sem passar o cursor sobre ela.
Ele funciona com várias linguagens, como Java, Scala, Clojure, Kotlin, Python, Haskell, Agda, Rust, JavaScript, TypeScript, Erlang, Go, Groovy, Ruby, Elixir, ObjectiveC, PHP, HTML, XML, SQL, Apex language, C#, Dart, Pug/Jade, Bash e Vue.js.
No exemplo de Java abaixo, os parênteses coloridos diferentes facilitam bastante a leitura da linha com String.format(). Além disso, como o plugin é compatível com Clojure, talvez ele seja a solução que torne a sintaxe de Clojure menos ilegível para nós, meros mortais.

3. Presentation Assistant
Parte do meu trabalho é fazer apresentações, o que também envolve bastante programação ao vivo. Sempre que chamo uma função usando um atalho de teclado, o plugin Presentation Assistant mostra na tela a função e a combinação de teclas que usei. Assim, fica muito fácil para as pessoas acompanharem e reproduzirem o que estou fazendo.
Além disso, quando chamo uma função usando o mouse, o plugin também exibe uma mensagem com o atalho correspondente. Ou seja, sempre que uso o mouse para acessar um recurso do IntelliJ que tem um atalho, vejo e aprendo a combinação na hora.

4. RoboPOJOGenerator
Conectar sua aplicação a um endpoint REST é uma tarefa bastante comum hoje em dia. Na maioria dos casos, você precisa transformar a saída JSON do endpoint em uma representação de objeto na aplicação. Criar manualmente objetos para saídas JSON grandes pode ser bem trabalhoso. Felizmente, o plugin RoboPOJOGenerator faz o trabalho pesado por você. Basta inserir a saída JSON no gerador e, se quiser, escolher os frameworks que pretende usar. O RoboPOJOGenerator cria os POJOs (Plain Old Java Objects) com as anotações correspondentes aos frameworks escolhidos para Java e Kotlin. Na minha opinião, é um ótimo plugin para economizar tempo!

5. Snyk Vulnerability Scanner
O plugin Snyk Vulnerabilty Scanner ajuda você a desenvolver aplicações Java com mais segurança. Ele verifica tanto as dependências de terceiros em busca de problemas de segurança conhecidos quanto o seu código personalizado.
Para as dependências de código aberto, ele recomenda uma versão do pacote que não contenha a vulnerabilidade. Se o pacote vulnerável for uma dependência transitiva, o plugin informa qual versão de nível superior você precisa atualizar. Se não houver uma dependência de nível superior corrigida, ele informa se existe uma versão da dependência transitiva que resolva o problema de segurança e qual é ela.
No seu código personalizado, o Snyk Vulnerabilty Scanner reconhece padrões de código vulneráveis, como injeção de SQL, cross-site scripting (XSS) e travessia de diretório. Ele mostra onde isso ocorre no código, o fluxo da vulnerabilidade e possíveis soluções que podem ajudar você a se proteger, reunidas a partir de código aberto. É como um corretor ortográfico para o seu código, que ajuda a evitar erros de segurança.
Para saber mais sobre esse plugin, leia o post do blog: Como corrigir problemas de segurança em Java enquanto programa no IntelliJ IDEA

6. AsciiDoc
Adoro o AsciiDoc. Embora seja parecido com Markdown, o AsciiDoc é um formato de texto altamente configurável e que atende às necessidades da maioria das pessoas. Você pode converter AsciiDoc para formatos como PDF, EPUB, HTML e muitos outros.
O plugin AsciiDoc facilita a criação, a edição e a visualização prévia de arquivos AsciiDoc no editor. Por exemplo, uso o plugin para escrever a documentação do meu código e gerar uma página HTML para a web ou um PDF, caso alguém prefira esse formato.
Fazer isso diretamente na IDE é ótimo e, com mais de 2,1 milhões de downloads, não sou o único que valoriza essa excelente extensão para o IntelliJ IDEA.
7. Randomness
O plugin Randomness é uma ferramenta pequena e muito útil. Quando o vi pela primeira vez, pensei: “Ok, isso pode ser interessante, mas será que vou usar tanto assim?”. Acabou que uso muito mais do que imaginei. A ferramenta gera dados aleatórios, como números, strings, palavras reais e UUIDs. Ela também pode criar arrays de um tipo específico.
Como faço muitas demonstrações, é muito prático poder gerar dados aleatórios ou uma coleção de dados com um atalho de teclado. Também uso o plugin nos meus testes de unidade para gerar dados aleatórios. A saída é altamente configurável, então você pode ajustá-la às suas necessidades.
Alguns exemplos: o tamanho de um array, o conjunto de caracteres usado em uma string aleatória e o tamanho de uma palavra. A única mudança que fiz foi configurar para que um array não gere mais os colchetes [], apenas o conteúdo. Assim, posso criar facilmente uma List com o método List.of() em Java, como no exemplo abaixo.

8. SonarLint
O plugin SonarLint é ótimo para garantir a qualidade do código. Ele ajuda a identificar code smells, maus hábitos e possíveis bugs. Por padrão, usa regras estáticas baseadas, em linhas gerais, em uma combinação das regras do PMD, findbugs e checkstyle. Um dos pontos fortes do plugin é que ele mostra informações em tempo real e se integra aos recursos do Git no IntelliJ. Antes de você fazer o commit do código, ele avisa se houver algum problema.
Se você usa o SonarQube ou o SonarCloud, pode sincronizá-los com o SonarLint local para aplicar ao seu código o mesmo conjunto de regras. Ainda assim, o SonarLint também é uma ótima ferramenta para qualquer desenvolvedor que o use de forma independente.

Como já vimos, o Snyk Vulnerability Scanner não é redundante em relação ao SonarLint. Pelo contrário: embora o SonarLint possa encontrar problemas relacionados à segurança, esse não é o foco principal dele, e o Snyk é muito melhor nisso. Por outro lado, o SonarLint é atualmente muito melhor para encontrar os mais variados tipos de bugs e problemas de estilo do que o plugin da Snyk. No fim das contas, uso os dois plugins ao mesmo tempo e acho que eles se complementam.
Comece a participar de desafios de Capture the Flag
Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.



