Novidades do IntelliJ IDEA 2022.2

O IntelliJ IDEA 2022.2 inclui várias melhorias de qualidade na funcionalidade de desenvolvimento remoto, tornando-o mais elegante e estável. A partir da v. 2022.2, o IntelliJ IDEA usa o JetBrains Runtime 17, que aprimora a experiência e o desempenho do IDE de várias maneiras. O IntelliJ IDEA Ultimate adiciona suporte aos recursos Spring 6 e Spring Boot 3 e apresenta atualizações para várias outras frameworks. A nova versão fornece muitas outras atualizações e refinamentos dignos de nota, que são abordados em detalhes abaixo.

Principais atualizações

Desenvolvimento remoto

Melhorias no desenvolvimento remoto
Beta
Ultimate

Introduzimos um grande número de upgrades importantes para o desenvolvimento remoto no IntelliJ IDEA 2022.2, para tornar sua experiência mais estável e rica em recursos. Atualizações recém-lançadas trazem várias melhorias de qualidade. Conecte seu laptop via SSH ao IntelliJ IDEA instalado em um servidor remoto e usufrua de uma experiência fluida de desenvolvimento. Se você está usando o JetBrains Space para orquestrar os back-ends de maneira eficiente com a nova versão, pode gerenciar seus ambientes de desenvolvimento diretamente do IntelliJ IDEA. Saiba mais nesta postagem de blog.

A mudança do JBR 11 para o JBR 17

A mudança do JBR 11 para o JBR 17

As of v2022.2, all IntelliJ IDEA updates come with JetBrains Runtime 17 (JBR 17), which brings a significant IDE performance improvement, better security, enhanced rendering performance on macOS thanks to the Metal API, and more. Leia esta postagem no nosso blog para mais detalhes.

Suporte para recursos do Spring 6 e Spring Boot 3
Ultimate

Agora, o IntelliJ IDEA 2022.2 oferece suporte total aos recursos do Spring 6 e Spring Boot 3, incluindo novas classes @AutoConfiguration e @ConfigurationProperties com a nova sintaxe de vinculação de construtor sem uma @ConstructorBinding explícita. Não se esqueça de atualizar o IDE se quiser experimentar o Spring 6 ou mudar seus projetos para esta nova versão.

Experiência do usuário

Run Current File

Run Current File

Para facilitar a execução e a depuração de arquivos únicos sem ter uma configuração de execução dedicada, introduzimos a nova funcionalidade Run Current File, disponível no widget Run/Debug. Com ela, você pode executar e depurar o arquivo aberto no momento, e o IDE usará automaticamente o tipo de configuração de execução mais adequado para esse arquivo.

Atalho de teclado para alterar o tamanho da fonte globalmente

Há um novo atalho de teclado que altera o tamanho da fonte em todo o editor. Para aumentar o tamanho da fonte, pressione Alt+Shift+ponto. Para diminuí-la, pressione Alt+Shift+vírgula. Além disso, agora há um indicador de tamanho de fonte mostrando o tamanho da fonte atual junto com a opção de reverter para o padrão.

Ação Merge All Project Windows no macOS

Ação Merge All Project Windows no macOS

Para o macOS, introduzimos a capacidade de organizar seu espaço de trabalho combinando todas as janelas de projeto abertas em uma só, transformando cada janela em sua própria aba. Para realizar essa ação, acesse Window | Merge All Project Windows.

Configuração aprimorada para realçar inspeções

Agora, você pode configurar de que forma as inspeções aparecem no editor sem alterar seu nível de gravidade. Quando você deseja alterar o estilo de realce de inspeção, pode fazer isso usando o novo menu suspenso Highlighting in editor, que mostra convenientemente todas as opções disponíveis.

Barra de progresso de clonagem de repositório na tela de boas-vindas

Barra de progresso Cloning repository na tela de boas-vindas

A barra de progresso Cloning repository agora aparece na tela de boas-vindas do IDE e é mostrada diretamente na lista de projetos, o que a torna mais clara e fácil de usar.

Novo campo Description para marcadores mnemônicos

Novo campo Description para marcadores mnemônicos

A caixa de diálogo Add Mnemonic Bookmark foi atualizada com um campo Description, para que agora você possa adicionar uma descrição opcional ao seu marcador imediatamente.

Editor

Nova configuração para desativar o fechamento automático de comentários em bloco

Nova configuração para desativar o fechamento automático de comentários em bloco

Agora, é possível desabilitar o fechamento automático de comentários em bloco ao pressionar a tecla Enter. Para fazer isso, acesse Settings / Preferences | Editor | Smart Keys e desmarque a caixa de seleção Close block comment na seção Enter.

Acesso mais rápido a configurações de complementação de código

Acesso mais rápido à função Code Completion Settings

Agora você pode acessar Code Completion Settings e configurar suas preferências diretamente do botão de três pontos verticais no pop-up de complementação de código.

Novo painel de notificações para ajustar associações de tipos de arquivo

Novo painel de notificações para ajustar associações de tipos de arquivo

Quando um arquivo é explicitamente associado a um texto sem formatação por engano, o IntelliJ IDEA agora notifica você sobre a associação incorreta do tipo de arquivo e sugere sua redefinição diretamente no editor, sem que você precise fazer isso manualmente em Settings / Preferences.

Nova ação para gerar sumários em arquivos Markdown

Nova ação para gerar sumários em arquivos Markdown

Agora, é possível gerar facilmente sumários em arquivos Markdown com base nos cabeçalhos dos documentos. Essa nova ação está disponível nos menus pop-up Insert e Generate, que você pode invocar por meio do atalho Alt+Insert ou clicando com o botão direito do mouse. O IDE inserirá um sumário na posição atual do cursor e o delimitará com tags <!-- TOC -->, para que você possa atualizá-lo mais tarde chamando o mesmo menu.

Java

Inspeções e complementação de código aprimoradas

Implementamos uma série de alterações nas inspeções Java para ajudar você a rastrear possíveis bugs e simplificar o código. Por exemplo, a inspeção Standard ‘Charset’ object can be used foi aprimorada e agora reconhece .name() e .toString(). O IDE agora pode avisar você quando variáveis de padrão ocultam campos, e ele também captura chamadas Objects.requireNonNullElse sem sentido. Várias inspeções Java relacionadas a JUnit foram convertidas em inspeções de JVM e, portanto, agora também estão disponíveis em Kotlin. Além disso, a complementação de código agora sugere literais .class quando aplicável.

Para saber mais sobre outras melhorias relacionadas ao Java, leia a postagem no nosso blog.

Kotlin

Suporte para recursos do Kotlin 1.7.0

Suporte para recursos do Kotlin 1.7.0

Adicionamos suporte para os recursos introduzidos no Kotlin 1.7.0, a versão mais recente da linguagem. O IDE agora renderiza corretamente os tipos definitivamente não anuláveis e fornece uma inspeção útil para requisitos de opt-in.

Suporte para análises de fluxos de dados no depurador Kotlin

Suporte para análises de fluxos de dados no depurador Kotlin

Integramos o depurador Kotlin com a funcionalidade DFA (Data Flow Analysis), para que agora ele mostre dicas de DFA indicando quais condições são verdadeiras e quais branches serão executados. Anteriormente, essa integração estava disponível somente para Java, mas agora também é compatível com o Kotlin.

O construtor nativo do IntelliJ IDEA usa a versão do compilador Kotlin configurado no projeto

A partir da v2022.2, o compilador Kotlin incluído não é mais usado com o construtor nativo do IntelliJ IDEA. Agora, tanto os builds locais e de CI são executados com a versão do compilador Kotlin declarada nas configurações do projeto. Essa alteração elimina inconsistências entre builds locais e de CI que apareciam anteriormente devido à incompatibilidade da versão do compilador empacotado e a versão definida no arquivo de build do projeto. Saiba mais nesta postagem de blog.

Desempenho aprimorado do IDE para o Kotlin

Nosso trabalho mais recente para otimizar índices afetou positivamente a velocidade e o desempenho do IDE para realce de código, complementação e o recurso Find Usages.

Scala

Melhor suporte para Scala 3

Melhor suporte para Scala 3

A partir da v2022.2, o IntelliJ IDEA pode ler tipos match de arquivos .tasty, analisá-los adequadamente, resolver variáveis de tipos, usá-las como argumentos de tipo, oferecer suporte a inspeções e mostrar tipos como texto. On top of that, we’ve added support for Option-less extractors , type lambdas and polymorphic function types , type-level compiler intrinsics , and ? as a wildcard together with _ in Scala 2.13.9 and 2.12.16. O código copiado e colado agora também é recuado corretamente.

Novas inspeções do Scala

Novas inspeções do Scala

O IntelliJ IDEA 2022.2 agora avisa quando a palavra-chave return está sendo usada dentro de uma função anônima para sair da função sem executar todo o código dentro dela. Isto geralmente não é um uso desejado e pode resultar numa implementação com vazamentos e custos de desempenho ocultos. Há um novo aviso acionado quando um parâmetro private ou class oculta uma variável de superclasse. Além disso, um erro é exibido quando você tenta substituir uma variável de uma maneira que é proibida pelo compilador. Esses novos avisos podem ser configurados para serem exibidos se as suas respectivas opções de compilador (-Xlint:nonlocal-return e -Xlint:private-shadow) estiverem presentes.

Divisão de uma lista de elementos separados por vírgulas em linhas separadas

Divisão de uma lista de elementos separados por vírgulas em linhas separadas

Se você tiver uma linha de código excessivamente longa porque contém uma lista de argumentos ou elementos em uma coleção, agora pode usar a ação Put arguments on separate lines no menu pop-up para dividir essa lista rapidamente em várias linhas. O oposto também é possível: se você acha que uma lista de várias linhas é curta o suficiente, pode usar a ação Put arguments on one line para transformá-las em uma só linha.

Realce baseado no compilador para o Scala

Realce baseado no compilador para o Scala

O realce baseado no compilador foi ajustado para a melhor utilização de recursos. O IDE agora respeita as configurações de realce de arquivo definidas pelo usuário. A compilação agora é acionada em menos casos e usa menos threads em segundo plano. O escopo de compilação foi reduzido ao módulo relevante e ao escopo de origem.

O recurso Safe Delete agora está disponível para parâmetros de tipo

O recurso Safe Delete agora está disponível para parâmetros de tipo

A ação Safe Delete remove um elemento da definição e todas as suas chamadas. Essa ação agora também funciona para parâmetros de tipo.

Groovy

Suporte para GINQ

Suporte para GINQ

We’ve added support for Groovy-Integrated Queries (GINQ). O IDE agora fornece realce de sintaxe, complementação de código e inspeções para esse recurso do Groovy 4.

Segurança

Importação de certificados SSL confiáveis

Agora, o IntelliJ IDEA 2022.2 pode ajudar você a importar certificados SSL confiáveis de armazenamentos confiáveis do sistema. Ele usará automaticamente os certificados personalizados específicos para o seu ambiente corporativo. Nenhuma ação adicional é necessária da sua parte, pois tudo deve funcionar imediatamente.

Profiler

Gráficos para CPU e memória de heap disponíveis durante o profiling

Gráficos CPU e Heap Memory disponíveis durante o profiling
Ultimate

Atualizamos o IntelliJ Profiler, facilitando a coleta de snapshots. Agora, quando você inicia o profiling, os gráficos dinâmicos CPU e Heap Memory aparecem lado a lado com o console. Como resultado, você pode ver o desempenho da sua aplicação enquanto também coleta muitos snapshots da mesma aplicação dentro do período desejado de profiling.

Suporte para funções inline do Kotlin

Suporte para funções inline do Kotlin
Ultimate

As funções inline do Kotlin agora são mostradas junto com as demais em Flame Graph, Call Tree e Method List, permitindo visualizar o tempo de CPU dessas funções e otimizá-lo, se necessário. Este recurso funciona atualmente em sistemas Linux e macOS e apenas está disponível para a opção Start profiling. Estamos trabalhando para adicionar suporte ao Windows e em breve o incluiremos no modo Attach.

Frameworks e tecnologias

Suporte para novos clientes HTTP declarativos no Spring 6
Ultimate

O Spring Framework 6 permite definir um cliente HTTP como uma interface Java com métodos anotados. O IntelliJ IDEA 2022.2 fornece complementação de URLs, navegação e integração com o cliente HTTP para essas interfaces.

Complementação de URLs e navegação para rotas do Spring Cloud Gateway
Ultimate

Agora, o IntelliJ IDEA Ultimate fornece complementação de URLs, a funcionalidade Search Everywhere e dicas Find Usages para URLs do Spring Cloud Gateway. Você pode gerar facilmente uma solicitação HTTP ou encontrar todas as rotas de gateway usando a janela de ferramentas Endpoints.

Melhorias de insights de código para testes de microsserviços JVM e mock frameworks
Ultimate

O IntelliJ IDEA 2022.2 realça automaticamente os corpos JSON/XML em testes com APIs Java populares, como Spring WebTestClient, RestAssured, WireMock e MockServer. Como resultado, esses fragmentos de dados apresentam melhor legibilidade e são mais fáceis de editar. Você também pode usar complementação de URL e navegação para a declaração nesses locais em seus testes.

Depurador nativo GraalVM experimental para Java
Ultimate

O IntelliJ IDEA 2022.2 agora pode ajudar você com a depuração de binários de imagem nativa do GraalVM. Você pode anexar o depurador a qualquer executável baseado em GraalVM ou iniciar sua aplicação com o depurador anexado. A configuração de execução correspondente será criada automaticamente para projetos Maven/Gradle. Essa integração é experimental e requer a instalação da versão de desenvolvimento do GraalVM e deste plug-in.

Navegação aprimorada entre fontes Protobuf e Java

Navegação aprimorada entre fontes Protobuf e Java
Ultimate

Agora, você pode navegar facilmente até o código gerado a partir de .proto e vice-versa. Certifique-se de que os plug-ins gRPC e Protocol Buffers estejam habilitados.

Melhorias no insight de código para o Spring Shell

Melhorias no insight de código para o Spring Shell
Ultimate

O IntelliJ IDEA 2022.2 agora reconhece comandos de CLI declarados com a biblioteca Spring Shell e verifica sua correção.

Suporte aprimorado para endpoints JAX-RS
Ultimate

Agora, o IntelliJ IDEA oferece suporte corretamente a padrões de URL de serviços Web comuns JAX-RS declarados como @ApplicationPath e sub-recursos em complementação de URLs, navegação e Find Usages.

Suporte para endpoints WebSocket no cliente HTTP
Ultimate

O IntelliJ IDEA Ultimate 2022.2 oferece suporte a conexões WebSocket, permitindo que você crie solicitações e envie e receba mensagens.

Suporte para endpoints GraphQL no cliente HTTP

Suporte para endpoints GraphQL no cliente HTTP
Ultimate

Agora, o IntelliJ IDEA Ultimate pode enviar consultas GraphQL via protocolos HTTP e WebSocket imediatamente. Para http:// e https://, são usadas solicitações HTTP simples, enquanto ws:// e wss:// são delegados para o executor WebSocket.

Melhorias na UI/UX para o cliente HTTP
Ultimate

Implementamos algumas melhorias na UI/UX para o cliente HTTP. Em primeiro lugar, apresentamos uma maneira conveniente de selecionar um ambiente de execução usando um ícone na medianiz. Para habilitá-lo, escolha a opção Select Environment Before Run na caixa de combinação Run with. Em segundo lugar, melhoramos exibição Response, adicionando uma barra de progresso que permite acompanhar o processo de download.

URLs clicáveis em valores de string JSON, YAML e .properties

URLs clicáveis em valores de string JSON, YAML e .properties
Ultimate

Agora, arquivos JSON, YAML e .properties apresentam referências da Web inseridas automaticamente dentro de valores que começam com http:// e https://. Você pode abrir esses links facilmente em um navegador Web com um único clique, ou pode gerar uma solicitação no cliente HTTP a partir do menu Context Actions (Alt+Enter).

Suporte aprimorado para anotações Bean Validation

Suporte aprimorado para anotações Bean Validation
Ultimate

O IntelliJ IDEA 2022.2 agora fornece referências e suporta recolhimento de atributos de mensagem em anotações Bean Validation no Java e no Kotlin. Você pode usar a complementação para chaves de mensagem ou navegar até suas declarações nos arquivos i18n ValidationMessages.properties.

Plug-in reformulado para o AWS CloudFormation

Plug-in reformulado para o AWS CloudFormation
Ultimate

Reformulamos o plug-in para o AWS CloudFormation, atualizando esquemas de metadados e melhorando a complementação de propriedades. Você pode instalar a versão atualizada do plug-in acessando o JetBrains Marketplace.

Suporte para Jakarta Persistence 3.1
Ultimate

IntelliJ IDEA now supports all of the features in Jakarta Persistence 3.1, including the new JPQL syntax, functions, and types, and it provides language highlighting and code completion for them.

Docker

Complementação de imagens do Docker em testes com Testcontainers

Complementação de imagens do Docker em testes com Testcontainers

IntelliJ IDEA 2022.2 introduces image completion for the Testcontainers API where you can find all available Docker images and their versions. Clique na referência para abrir a URL do Docker Hub correspondente no seu navegador da Web.

Upload de imagens locais do Docker no Minikube e outras conexões

Upload de imagens locais do Docker no Minikube e outras conexões

Agora, é possível copiar imagens facilmente de um daemon do Docker para outro usando a nova ação Copy Docker Image, que salva a imagem em um arquivo e a envia para a conexão escolhida.

Conexão automática do Docker na reinicialização do IDE

Conexão automática do Docker na reinicialização do IDE

Agora, o IntelliJ IDEA 2022.2 conecta-se automaticamente ao Docker depois que você reinicia o IDE. Esta nova configuração fica ativa como padrão, mas pode ser alterada em Settings / Preferences | Advanced Settings | Docker.

Opções de conexão do Docker para diferentes daemons do Docker

A partir da v2022.2, o IntelliJ IDEA integra-se ao Colima e ao Rancher para oferecer suporte a mais opções para estabelecer conexões com um daemon do Docker.

Kubernetes

Integração com o Kubernetes e o Telepresence

Integração com o Kubernetes e o Telepresence
Ultimate

The Kubernetes plugin for IntelliJ IDEA 2022.2 provides integration with the Telepresence tool in order to intercept HTTP requests from services in the Kubernetes cluster and route them to your service running locally. Isso permite depurar esses serviços com mais facilidade e executar apenas o subconjunto necessário de serviços localmente.

Ferramentas de controle de qualidade

Estrutura de página Web aprimorada no Page Object Editor

Estrutura de página Web aprimorada no Page Object Editor

A UI da estrutura de páginas Web foi significativamente aprimorada. Agora, você pode ler confortavelmente as partes mais importantes, como o nome da tag, o ID e as classes CSS aplicadas, graças ao realce do formato de texto.

Navegação fácil através de ícones de medianiz

Navegação fácil através de ícones de medianiz

Agora, você pode navegar facilmente de volta para um elemento de página simplesmente clicando em seu ícone na medianiz.

Nomenclatura de objetos de página a partir da URL

Nomenclatura de objetos de página a partir da URL

Ao criar um novo arquivo de objetos de página, o assistente agora oferece um campo de URL opcional. Se o endereço Web estiver incluído, o assistente sugerirá um nome de arquivo de objetos de página com base no endereço do link. Além disso, a URL inserida é carregada automaticamente quando o Editor de objetos de página é aberto.

Movimento automático do cursor até as extremidades de blocos de código

Movimento automático do cursor até as extremidades de blocos de código

Ao adicionar novos elementos de página ao seu código, o cursor agora se move automaticamente até o final do bloco de código adicionado, para que você possa navegar facilmente por ele e simplesmente continuar editando.

Criar um novo objeto de página a partir do menu de contexto

Criar um novo objeto de página a partir do menu de contexto

Sempre que você digita uma nova classe de objeto de página não referenciada ao trabalhar em uma existente, pode corrigir o aviso de código não resolvido simplesmente navegando até o menu de contexto do aviso e criando um novo objeto de página.

Ferramentas de banco de dados

Opção para importar múltiplos arquivos CSV

Opção para importar múltiplos arquivos CSV
Ultimate

Para a v2022.2, aprimoramos o processo de importação de arquivos, implementando a capacidade de selecionar vários arquivos CSV e importá-los de uma só vez.

Nova UI para a caixa de diálogo Modify

Nova UI para a caixa de diálogo Modify
Ultimate

A nova UI para a caixa de diálogo Modify tornou-se a opção padrão. A partir da versão 2022.2, todos os objetos filho de uma tabela podem ser adicionados e editados usando essa nova UI. A UI antiga permanecerá disponível no menu de contexto.

Saiba mais

Modos de resolução Playground e Script

Modos de resolução Playground e Script
Ultimate

Para tornar a resolução de objetos de banco de dados em scripts SQL mais precisa, implementamos dois modos de resolução: Playground e Script. O primeiro é a melhor opção quando seu arquivo é apenas um conjunto de consultas desconectadas que são independentes umas das outras e não possuem uma sequência específica. O segundo é melhor quando suas consultas têm uma lógica sequencial e devem ser executadas como um único script.

Saiba mais

Desenvolvimento Web

Suporte para componentes standalone Angular

Suporte para componentes standalone Angular
Ultimate

Temos trabalhado ativamente no suporte ao Angular 14 no IntelliJ IDEA 2022.2. A adição mais importante que fizemos neste lançamento foi o suporte para componentes Angular standalone. Agora, o IntelliJ IDEA reconhece corretamente componentes, diretivas e pipes marcados como standalone: true.

Suporte aprimorado para Vue 3

Suporte aprimorado para Vue 3
Ultimate

O IntelliJ IDEA 2022.2 oferece suporte aprimorado para o Vue 3. Por exemplo, ele agora entende o estreitamento de tipos em diretivas v-if/else. Além disso, foram feitas melhorias no suporte ao Pinia, a solução de gerenciamento de estado recomendada pela equipe do Vue que funciona como um armazenamento global. Tanto a complementação quanto a resolução agora funcionam no Vue com a biblioteca do Pinia, e você pode navegar até ações e propriedades de estado no armazenamento.

Suporte para TypeScript 4.7

Suporte para TypeScript 4.7
Ultimate

O IntelliJ IDEA 2022.2 inclui o TypeScript 4.7, oferecendo suporte a novos recursos de linguagem, como moduleSuffixes e ESM no Node.js. Ele inserirá automaticamente a extensão .js na instrução de importação se module estiver definido como node16 ou nodenext no seu arquivo tsconfig.json. Além disso, o IDE oferece suporte ao campo typesVersions em arquivos package.json.

Outros

  • O plug-in para Android que acompanha o IntelliJ IDEA agora fornece todos os recursos do Android Studio Chipmunk, incluindo suporte para o Android Gradle Plugin (AGP) 7.2.x.