Novidades do IntelliJ IDEA 2020.2

O IntelliJ IDEA 2020.2 permite revisar e mesclar solicitações pull do GitHub diretamente no IDE, navegar rapidamente entre avisos e erros em um arquivo por meio do widget inspections, exibir a lista completa de issues em um arquivo atual com a janela de ferramentas Problems e receber notificações quando as suas alterações podem comprometer outros arquivos. Você pode usar o Jakarta EE e obter melhor suporte para Quarkus, Micronaut e OpenAPI.

Java

Suporte para Java 15

Suporte para Java 15

Embora o lançamento do Java 15 ocorrerá apenas em setembro, o IntelliJ IDEA 2020.2 já está preparado para ele. O suporte para o recurso Records foi atualizado e agora está em sua segunda fase de demonstração. Também adicionamos suporte básico para classes seladas. E, é claro, o IntelliJ IDEA fornece suporte total para blocos de texto.

Assistente Jakarta EE

Dica de inserção de problemas relacionados

Se você introduzir erros alterando a assinatura de uma classe, método ou campo que possui usos externos, o IDE notificará você com uma dica de inserção. Clique na dica de inserção de problemas relacionados, e o IDE abrirá a janela de ferramentas Find com uma lista de todos os problemas relacionados que ocorrem em arquivos externos.

Suporte para Scala 3

Capacidade de criar várias inspeções de Pesquisa e substituição estruturais

O IDE permite localizar e, se necessário, substituir blocos de código que correspondem a um padrão específico usando o recurso Structural Search and Replace. Com o IntelliJ IDEA 2020.2, você pode criar vários modelos de pesquisa estrutural como inspeções. Para cada inspeção de SSR (Pesquisa e substituição estruturais), é possível especificar o nível de gravidade, adicionar descrições e habilitá-las ou desabilitá-las separadamente.

Suporte para Scala 3

Identificando causas de exceções em tempo de execução

Complementamos a análise de rastreamento de pilha de exceções com análises de fluxo de dados. Quando você clica no rastreamento de pilha, o IDE pode levá-lo ao local exato do seu código onde uma exceção aparece e oferece uma sugestão que pode ajudar a descobrir por que isso aconteceu.

Suporte para Scala 3

Melhor complementação automática para métodos da API Stream

O IntelliJ IDEA 2020.2 funciona ainda melhor com a API Stream. Em vez de precisar digitar 'stream()' e, em seguida, digitar a operação correta no stream, você pode começar a digitar o nome do método de stream dentro da própria coleção, e o IntelliJ IDEA inserirá 'stream()' automaticamente. Isso funciona para qualquer operação de stream.

Suporte para Scala 3

Escopos para introduzir variável

Com o IntelliJ IDEA 2020.2, a refatoração Introduce Variable pode substituir seletivamente as ocorrências de uma variável em um escopo intermediário. Agora, você pode escolher várias opções para substituição, em vez de se limitar a escolher apenas uma ou todas as ocorrências. O editor realça qual chamada será substituída por uma nova variável à medida que você passa o mouse sobre cada uma das opções.

Limpeza de modelos dinâmicos Java

Limpeza de modelos dinâmicos Java

Você não precisa mais procurar modelos relacionados ao Java, pois o novo nó Java inclui todos os grupos "plain", "surround", "other", "output" e "iterations". Você não se perderá ao procurar um modelo dinâmico para atender às suas necessidades. Um nó Groovy separado também está disponível.

Editor

Exibição Problems

Janela de ferramentas Problems

Adicionamos a janela de ferramentas Problems, que exibe os avisos e erros relacionados ao arquivo atual, juntamente com descrições dos problemas. Nessa janela de ferramentas, você pode clicar com o botão direito do mouse em um problema para navegar até a linha de código em que esse problema foi encontrado e corrigir um por um com Alt+Enter.

Widget Inspections do editor

Widget Inspections

O widget inspections simplifica a procura de avisos, erros e outros problemas e permite navegar facilmente entre eles pressionando F2 ou clicando nos ícones de seta. No widget de inspeções, é possível selecionar quais issues você deseja realçar: nenhum, apenas erros ou todos os problemas.

Visualização de intenções

Visualização de intenções

Para avaliar os possíveis resultados da aplicação de ações de intenção, você pode visualizar os resultados antes de aplicá-los ao seu código. Pressione Alt+Enter para chamar Show Context Actions e selecione a ação de intenção necessária. Em seguida, pressione Alt+Space no macOS ou Ctrl+Shift+I no Windows e Linux para exibir a visualização de resultados.

Verificador ortográfico aprimorado

O verificador ortográfico incorporado foi aprimorado: ele funciona muito mais rápido, filtra sugestões irrelevantes e classifica sugestões válidas com base no contexto. Além disso, o IDE detecta a linguagem dos primeiros parágrafos de um arquivo e sugere a ativação do modelo de linguagem correspondente.

Controle de versão

Suporte completo a solicitações pull do GitHub

Os detalhes de solicitações pull abertas agora estão a um clique de distância, em uma janela de ferramentas vertical separada. A janela principal do editor mostra a conversa, e você pode adicionar comentários diretamente. Resultados da verificação pré-submissão são exibidos na parte inferior da janela. Se você tiver permissão para gerenciar solicitações pull, agora poderá navegar por elas, atribuí-las, gerenciá-las e mesclá-las, além de exibir e enviar comentários e aceitar alterações diretamente do IDE.

Confira mais detalhes no nosso blog

Caixa de diálogos de ações do Git aprimoradas

Para este lançamento, revisamos a consistência visual das caixas de diálogo Merge, Pull e Rebase. Também aprimoramos a caixa de diálogo para que ela identifique claramente quais comandos do Git serão executados e também incluímos algumas opções que estavam faltando. Também adicionamos --rebase e --no-verify às caixas de diálogo Pull e Merge, respectivamente.

Exibição de resultados melhorada para a ação Compare branches

Exibição de resultados melhorada para a ação Compare branches

Quando você compara dois branches no IntelliJ IDEA 2020.2, o IDE mostra suas submissões em uma só exibição, abrindo seus logs no editor. Em contraste com a janela de ferramentas VCS, essa exibição tem espaço suficiente para um relatório completo sobre quais submissões estão em cada branch e quais arquivos são afetados.

Submissões locais de squash a partir do log

Submissões locais de squash e drop a partir do log

Agora, você pode selecionar e fazer squash de várias submissões em um branch local. Na janela de ferramentas Git, abra a guia Log, selecione submissões locais e escolha Squash Commits. Se você decidir alterar a mensagem de submissão, todas as alterações nessas submissões serão colocadas em uma única submissão junto com a mensagem atualizada. Além disso, agora você pode descartar submissões do log do Git.

Suporte para Git instalado no WSL2

O IntelliJ IDEA 2020.2 permite que você use o Git instalado no WSL2 ao trabalhar com projetos de sistemas de arquivos Linux ou Windows. Depois que você abrir um projeto do WSL, o IDE mudará automaticamente para o Git e permitirá o uso de todos os recursos relacionados.

Frameworks e tecnologias

Suporte para Jakarta EE 9 Ultimate

Estamos prontos para o lançamento do Jakarta EE 9 em setembro e já oferecemos suporte para todos os recursos disponíveis para o Jakarta EE, incluindo Bean Validation, JSF, JAX-RS, WebSocket, Servlets, JSP, JSON-P, JSON-B, Security e as especificações EJB e JTA.

Assistente Jakarta EE

Assistente de projetos Java Enterprise Ultimate

Se você precisar criar um projeto Java EE 8 ou Jakarta EE 9, agora pode fazer isso usando o assistente para novo projeto. Um novo projeto Jakarta EE está a poucos passos de distância. Configure-o selecionando a versão Java, a ferramenta de compilação, as extensões e outras opções.

Suporte para arquivos de configuração Quarkus: .properties e YAML Ultimate

Para facilitar o trabalho com arquivos de configuração Quarkus, o IDE agora fornece realce e complementação de código, além de colorir o código não utilizado em cinza em arquivos de configuração .properties e YAML. Além disso, você pode saltar diretamente entre os arquivos de configuração e os beans configurados e vice-versa.

Suporte para CDI Quarkus aprimorado Ultimate

Com a versão atual do IDE, você pode usar a navegação na medianiz para beans injetados e inspeções atualizadas, que funcionam perfeitamente com a sintaxe Quarkus simplificada. Além disso, o IntelliJ IDEA 2020.2 oferece suporte para anotações @DefaultBean, @AlternativePriorty e injeção apenas por qualificador (não é necessário usar @Inject).

Suporte para a interface de usuário do Swagger

Suporte para a interface de usuário do Swagger Ultimate

Com a recém-adicionada integração da interface do usuário do Swagger, agora é possível visualizar sua OpenAPI em um painel embutido no editor IntelliJ IDEA. Esta é uma ótima atualização para simplificar testes.

Assistente Jakarta EE

Diff Swagger Ultimate

O IDE foi aprimorado para poder calcular uma diff estrutural entre as especificações da OpenAPI. Conhecendo os detalhes do Swagger/OpenAPI, o IntelliJ IDEA 2020.2 compara arquivos JSON ou YAML com base em sua estrutura, e você pode visualizar a diff detectada. Para fazer isso, escolha "Compare Open API Specifications" no menu de contexto ou chame essa ação na caixa de diálogo Search Everywhere.

Assistente Jakarta EE

Geração de projetos para Micronaut Ultimate

Aqui está outra atualização útil para o assistente de novo projeto e o framework Micronaut. Adicionamos a possibilidade de criar novos projetos Micronaut diretamente do assistente. Configure o projeto passo a passo e comece a trabalhar com ele num piscar de olhos.

Suporte de fila de mensagens para o Micronaut e a API do Amazon SQS Ultimate

Se a sua aplicação Micronaut usa comunicação assíncrona via RabbitMQ ou Kafka, essa atualização é perfeita para você. Navegue por filas de mensagens e tópicos usando ícones de medianiz, localize usos e use a complementação para nomes. Você pode se beneficiar com o mesmo conjunto de recursos da API do Amazon SQS.

Geração de solicitações HTTP de clientes REST JAX-RS e MicroProfile

Geração de solicitações HTTP de clientes REST JAX-RS e MicroProfile Ultimate

Para facilitar a criação e o teste de solicitações HTTP, o IntelliJ IDEA gerará automaticamente solicitações HTTP JAX-RS e MicroProfile e, em seguida, as abrirá no cliente REST incorporado. Você pode até mesmo usar ações de intenção para gerar solicitações HTTP em qualquer URL se o seu projeto usar uma das frameworks empresariais: Spring, JAX-RS, Retrofit, OkHttp ou Micronaut.

Complementação de código de URL para testes REST Assured

Complementação de código de URL para testes REST Assured Ultimate

Atualizamos os testes REST Assured com complementação de código para referências de caminhos de URL e navegação até os recursos relacionados.

O plug-in Selenium adiciona integração ao Selenoid Ultimate

Agora, o plug-in Selenium integra-se ao Selenoid e fornece uma maneira fácil de executar um novo ambiente de teste diretamente do arquivo browsers.json. Todas as imagens necessárias do navegador serão extraídas automaticamente quando o contêiner Selenoid for iniciado.

Profiler

Visualizador de memória HPROF

Visualizador de memória HPROF Ultimate

A mecânica aprimorada do visualizador ajuda a analisar o heap, apontando partes do código que usam grandes quantidades de memória e detectando as causas de vazamentos de memória. O visualizador de memória HPROF exibe os tamanhos retidos calculados dos objetos, os caminhos mais curtos para as raízes do coletor de lixo, a árvore de dominadores para objetos (objetos retidos) e referências recebidas.

Experiência do usuário

Indexação mais rápida com índices compartilhados pré-compilados

Agora, você pode acelerar a indexação baixando índices gerados em outra máquina em vez de os compilar localmente. Use índices compartilhados pré-compilados para JDKs ou gere e distribua índices compartilhados personalizados para uma compilação de IDE de destino. Basta instalar o plug-in Shared Indexes. Saiba mais.

Realce e complementação durante a indexação

Novas possibilidades durante a indexação

Enquanto o IntelliJ IDEA 2020.2 está indexando seu projeto, agora você pode continuar escrevendo o código. O IDE agora oferece sugestões de complementação de código para Java e PHP durante a indexação.

Terminal

Possibilidade de executar recursos do IDE a partir do Terminal

Opção para executar recursos IDE a partir do Terminalr

Agora, é possível chamar recursos do IDE diretamente do Terminal. Com o IntelliJ IDEA 2020.2, você pode executar comandos realçados em suas GUIs correspondentes, usando o atalho Ctrl + Enter / Cmd + Enter. Se quiser executar os comandos realçados no modo de depuração, use Ctrl + Shift + Enter / Cmd + Shift + Enter.

Saiba mais sobre esse recurso em nosso post do blog.

Ferramentas de compilação

Suporte para Maven Wrapper

O IntelliJ IDEA 2020.2 agora oferece suporte ao Maven Wrapper, que instala automaticamente a versão necessária do Maven no seu projeto. Se o Maven Wrapper estiver presente e configurado, o IDE o usará automaticamente e importará as alterações quando elas forem necessárias.

Controle de versão do Maven por projeto

Agora, você pode definir uma versão do Maven para cada projeto, em vez de usar a abordagem anterior, que usava a mesma versão do Maven para todos os projetos abertos.

Apresentação da saída de ferramentas de compilação

Para fornecer uma experiência do usuário mais consistente, agora estamos exibindo a saída de compilação do construtor nativo do IntelliJ IDEA na janela de ferramentas Build, em vez de na janela de ferramentas Messages.

Melhor insight do código em arquivos build.gradle

O IntelliJ IDEA 2020.2 fornece navegação e complementação de nomes de projetos em arquivos build.gradle.

JavaScript e TypeScript

Novas intenções e inspeções inteligentes

Novas ações de intenção para melhorar a produtividade Ultimate

Por exemplo, agora, você pode converter rapidamente um loop for com um índice numérico em um método de array forEach. A leitura de comentários da documentação em arquivos JavaScript e TypeScript também ficou mais fácil, pois agora você pode renderizá-los diretamente no editor, minimizando qualquer distração.

Suporte para o Vuex e a API Composition

Prettier como formatador padrão Ultimate

A partir deste lançamento, ficou mais fácil definir o Prettier como o formatador padrão para organizar seu código. Basta marca a caixa de seleção On code reformat nas configurações, e o IDE usará o Prettier sempre que você reformatar seus arquivos .js, .ts, .jsx e .tsx. Se necessário, você pode adicionar outros tipos de arquivos também.

Limpeza de modelos dinâmicos Java

Suporte para Nuxt.js Ultimate

Adicionamos suporte para Nuxt.js e configurações de estilo de código específicas do Vue - ótimas notícias se você trabalha com o framework Vue.js.

Banco de dados

Editor separado para valores de células

Editor separado para valores de células Ultimate

Este lançamento introduz algumas ferramentas valiosas para os casos em que você tem um valor longo em uma célula. A partir deste lançamento, é possível visualizar e editar valores longos em um painel separado. O painel do editor tem um modo de quebra flexível que pode ser alternado na barra de ferramentas à direita.

Nova interface do usuário para valores booleanos

Nova interface do usuário para valores booleanos Ultimate

Ficou mais fácil observar e editar valores booleanos, que agora são mostrados como valores brutos em vez de como caixas de seleção. Você pode digitar f, t, d, n, g ou c para inserir os valores correspondentes de false, true, default, null, generated e computed. Se você digitar qualquer outra coisa, receberá uma lista suspensa com os valores possíveis.

Visualização DML no editor de dados

Visualização DML no editor de dados Ultimate

Agora, você pode visualizar uma consulta com suas alterações no editor de dados. Para isso, clique no botão DML que ficará ativo se houver alterações pendentes.

Suporte para Scala 3

Dialeto do Google BigQuery Ultimate

Adicionamos suporte parcial para o Google BigQuery. O IDE realça corretamente as consultas e oferece assistência de codificação para elas.

Scala

Importação automática para elementos implícitos

Importação automática para elementos implícitos

Embora você possa usar View | Show Implicit Hints para exibir elementos implícitos (até mesmo os ausentes), importar um elemento implícito nunca foi uma tarefa fácil.

A nova ação "Auto-import for implicits" funciona exatamente como a ação "Auto-import for unresolved references". O pop-up automático torna o recurso mais detectável, mas também é possível desabilitar o pop-up automático e chamar a correção rápida Import… com Alt + Enter (mais informações).

Importação automática para elementos implícitos

Tratamento de chaves com base em recuo

Adicionar e remover chaves é parte integrante da vida cotidiana dos programadores Scala. Para facilitar essa tarefa, primeiro adicionamos uma intenção para embrulhar e desembrulhar expressões, mas ela tinha que ser chamada manualmente. Em seguida, oferecemos suporte para adicionar e remover chaves complementares automaticamente.

Agora, podemos fazer ainda melhor — ambas as chaves são adicionadas e removidas automaticamente e em tempo real com base em recuos de código. Dessa maneira, você pode tentar um recuo significativo enquanto mantém as chaves, mesmo no Scala 2. Para aproveitar esse recurso, simplesmente pare de pensar nas chaves e deixe o IDE fazer o trabalho.

Complementos de primeira classe

No Scala, um complemento de classe ou traço e o objeto complementar têm uma relação especial. Há muito tempo refletimos isso na exibição Project, mas, em outros casos, costumávamos tratar complementos como quaisquer outras classes ou objetos.

Agora, mostramos ícones navegáveis da medianiz para complementos (configurável em Settings | General | Editor | Gutter Icons). Você também pode navegar até um complemento usando Go To em uma palavra-chave class, trait ou object. Agora, membros de objetos complementares podem ser facilmente completados ou importados automaticamente.

Renderização Scaladoc no editor

Renderização Scaladoc no editor

A marcação Scaladoc é fácil de editar, mas não é tão fácil de visualizar - você precisa percorrer macros, tags e colunas *. Agora, podemos renderizar o Scaladoc diretamente no editor, para que ele fique nítido e conciso (você pode alternar a renderização em Editor | General | Appearance).

Também aprimoramos a renderização Scaladoc no pop-up Quick Documentation - agora, ela pode lidar adequadamente com parágrafos, listas e macros.

Melhorias no preenchimento de código

Além de melhorar a precisão e a velocidade da complementação de código, introduzimos duas novas capacidades distintas. Primeiro, agora você pode complementar automaticamente o nome do método e seus argumentos em uma única etapa, desde que os valores apropriados estejam presentes no escopo atual.

Segundo, agora você pode aplicar uma função "estática" a um argumento usando a notação de pontos, que pode ser usada em conjunto com tipos de dados algébricos (ADTs). Essa funcionalidade faz parte do Hoogle Completion – nossa tentativa de reimaginar o Hoogle em uma linguagem que não usa o sistema de tipos Hindley-Milner (trabalho em progresso).

Docker

Conecte-se ao Docker com segurança

Conecte-se ao Docker com segurança

O IntelliJ IDEA 2020.2 permite que você se conecte com segurança ao Docker no Windows, pois adicionamos suporte para conexões TLS ao daemon do Docker a partir do IntelliJ IDEA.

Kubernetes

Vários arquivos de configuração

Vários arquivos de configuração Ultimate

Agora você pode especificar um arquivo kubeconfig personalizado em Preferences / Settings | Build, Execution, Deployment | Kubernetes. Como alternativa, clique no botão Show Settings… na visualização Services ao selecionar um item raiz do Kubernetes. Você também pode especificar um arquivo kubeconfig personalizado globalmente ou para um projeto atual. Em outras palavras, você pode ter um arquivo kubeconfig separado para cada um dos seus projetos.

Suporte para ConfigMap e Secret

Suporte para ConfigMap e Secret Ultimate

Adicionamos complementação para ConfigMaps/Secrets do projeto atual e do cluster. Os itens do cluster estão marcados em azul na lista de complementação. Agora, você pode navegar de um uso de ConfigMap/Secret até o recurso correspondente de ConfigMap/Secret no projeto ou cluster. O mesmo vale para chaves ConfigMap/Secret.

Outros

  • O IntelliJ IDEA 2020.2 inclui todas as alterações do Android Studio 4.0. Saiba mais agora.
  • O IntelliJ IDEA pode detectar se você está usando um leitor de tela e, se estiver, habilitará automaticamente os recursos de acessibilidade do IDE.
  • O IntelliJ IDEA 2020.2 permite usar caracteres emoji Unicode no Linux. Prepare-se para decolar. 🚀
  • Para evitar problemas de desempenho e renderização, agora oferecemos uma nova integração com o JCEF para executar plug-ins do IntelliJ Plataform.