Novidades do IntelliJ IDEA 2022.1

O IntelliJ IDEA 2022.1 apresenta o Dependency Analyzer para facilitar o gerenciamento de dependências e a resolução de conflitos, um assistente New Project atualizado para refinar o lançamento de novos projetos e a janela de ferramentas Notifications, que oferece uma maneira nova e simplificada de receber notificações do IDE. Ele também inclui uma série de outras melhorias notáveis que são abordadas detalhadamente a seguir.

Principais atualizações

Dependency Analyzer

Dependency Analyzer

O recém-introduzido Dependency Analyzer fornece informações abrangentes sobre todas as dependências Maven e Gradle usadas em seus projetos e subprojetos. Ele ajuda você a detectar e resolver dependências conflitantes, remover dependências idênticas e verificar se elas estão presentes em bibliotecas diferentes, além de navegar facilmente pelas dependências para corrigir as configurações de build.

Assistente New Project aprimorado

Reformulamos a interface do assistente New Project para simplificar a criação de novos projetos. Você pode iniciar rapidamente um projeto vazio. Use as opções pré-configuradas para Java, Kotlin, Groovy e JavaScript ou use geradores se tiver projetos mais complexos.

Nova janela de ferramentas Notifications

Nova janela de ferramentas Notifications

A instância de Event Log foi substituída por uma nova janela de ferramentas Notifications. Essa janela destaca sugestões e notificações importantes e úteis com mais clareza e as mantém organizadas em uma janela de ferramentas dedicada. Para mais detalhes, consulte a postagem no nosso blog.

Experiência do usuário

Maven Archetype no assistente New Project

O gerador de projeto Maven Archetype atualizado no assistente New Project introduz a funcionalidade de pesquisa ao digitar quando você navega por arquétipos, a capacidade de gerenciar um catálogo de arquétipos durante a criação de módulos e a capacidade de inserir propriedades necessárias por arquétipo.

Dicas embutidas aprimoradas

Implementamos dicas embutidas do Code Vision aprimoradas que fornecem insights instantâneos sobre seu código diretamente no editor. A lista de métricas exibidas agora inclui herdeiros, usos, autores de código e problemas relacionados. Agora, as métricas estão todas habilitadas por padrão e podem ser modificadas nas configurações de Inlay Hints. Essas configurações também foram atualizadas e receberam uma nova UI de configuração.

Abas uniformemente divididas

Você pode distribuir o espaço de trabalho uniformemente entre as abas do editor para que todas tenham a mesma largura. Para configurar isso, acesse Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits.

Exportar diagramas UML para outros formatos

Exportar diagramas UML para outros formatos
Ultimate

Agora, é possível exportar diagramas UML como arquivos yEd .graphml, JGraph .drawio, Graphviz .dot, Graphviz .dot com posições, além de arquivos Mermaid .md, Plantuml e IntelliJ IDEA .uml, o que os torna compatíveis com ferramentas de terceiros.

Nova caixa de diálogo Structural Search and Replace

A caixa de diálogo Structural Search and Replace agora apresenta uma lista de todos os modelos para facilitar a navegação entre eles. Além disso, a caixa de diálogo apresenta um ícone Pin Dialog e caixas de seleção Injected code e Match case reorganizadas.

Segurança

Plug-in Package Сhecker
Ultimate

IntelliJ IDEA 2022.1 can now detect vulnerabilities in Maven and Gradle dependencies used in your projects by checking across the Checkmarx SCA Database and the National Vulnerability Database, thanks to the Package Сhecker plugin that is bundled with IntelliJ IDEA Ultimate.

Saiba mais nesta postagem de blog.

Editor

Execução de comandos a partir de arquivos Markdown

Execução de comandos a partir de arquivos Markdown

Ao trabalhar com arquivos Markdown que contêm instruções com comandos a serem executados, você pode executar esses comandos diretamente do arquivo usando os ícones de execução na medianiz.

Copy code snippet para arquivos Markdown

Copy code snippet para arquivos Markdown

Com o novo Copy code snippet em blocos de Markdown, você pode copiar o conteúdo para a área de transferência sem esforço, com apenas um clique.

Markdown Editor Floating Toolbar atualizada

A Markdown Editor Floating Toolbar reformulada agora oferece a funcionalidade de criação de listas e um menu suspenso que permite selecionar estilos de cabeçalho. Como ela é personalizável, você pode preenchê-la com todas as opções necessárias.

Reformatação de código no LightEdit

Reformatação de código no LightEdit

Aprimoramos o modo LightEdit para que você possa fazer ainda mais sem precisar criar ou abrir um projeto dedicado. Agora, você pode realizar a reformatação do código no modo sem projeto.

Nova inspeção Incorrect formatting

Nova inspeção Incorrect formatting

Implementamos a inspeção Incorrect formatting, que notifica você quando a formatação atual de um arquivo não corresponde às configurações de estilo de código.

Melhorias na formatação

Para consistência de formatação no código, a opção Add a space at line comment start foi ampliada com uma caixa de seleção Enforce on reformat que é ativada automaticamente. Ela está disponível por padrão para Java, Kotlin e Groovy e modifica apenas comentários de linha que começam com símbolos alfanuméricos.

Suporte ao modo de simulação no formatador de linha de comando

O formatador de linha de comando oferece suporte a um modo dry run para validar arquivos de projeto. Se um arquivo precisar de formatação, ele sairá com um status diferente de zero.

Java

Suporte para Java 18

O IntelliJ IDEA 2022.1 oferece suporte a novos recursos do Java 18, lançado em março de 2022. O IDE agora oferece suporte a snippets de código, mudanças na correspondência de padrões em expressões switch e muito mais. Para obter detalhes, consulte esta postagem no nosso blog.

Descompilador Java

O descompilador Java agora é mais compatível com a versão Java 17. Ele oferece suporte a construtores de linguagem modernos, como tipos "sealed" e correspondência de padrões, apresenta uma decompilação melhor da expressão switch que recebe um string, fornece anotações de tipo e detecta constantes comuns.

Melhor suporte para JUnit 5

Adicionamos suporte para os novos recursos introduzidos no JUnit 5.7, incluindo suporte para anotações @EnabledIf/DisabledIf, @NullSource/EmptySource e @TempDir.

Template Surround with try/catch atualizado

Template Surround com try/catch atualizado

O template Surround with try/catch atualizado agora lança novamente uma exceção encapsulada em uma RuntimeException em vez de a consumir.

Kotlin

Suporte ao Kotlin 1.6.20

O IntelliJ IDEA 2022.1 suporta o Kotlin 1.6.20 e, portanto, os recursos de linguagem mais recentes, como suporte para compilação paralela, um protótipo de receptores de contexto e melhor compartilhamento de código em todos os alvos Kotlin, agora estão disponíveis no IDE. Saiba mais sobre as novas atualizações do Kotlin nesta postagem do nosso blog.

Desempenho aprimorado do IDE para o Kotlin

A otimização de índices de pacotes aumentou significativamente a velocidade do IDE ao realizar complementação de código, realce e operações relacionadas à pesquisa de referências. O número e o escopo dos casos de reindexação ocorridos após as alterações de código também diminuíram.

Melhorias no depurador

Introduzimos algumas melhorias e atualizações úteis para a funcionalidade Smart Step Into ao depurar projetos Kotlin. Também solucionamos vários problemas com pontos de interrupção.

Integração do plug-in Kover

To ensure better Kotlin code coverage, the Kover plugin has been integrated with IntelliJ IDEA.

Groovy

Plug-in Package Сhecker

Suporte a templates Postfix para Groovy

A complementação de código para Groovy agora oferece suporte à maioria dos templates postfix semelhantes a Java, como arg, cast, for, iter, nn, notnull, null, not, throw, try, var, par, sout, serr, while, new, reqnonnull e return.

Frameworks e tecnologias

Suporte para microsserviços Go
Ultimate

O IntelliJ IDEA Ultimate agora oferece suporte para microsserviços Go, fornecendo recursos como referências de caminhos de URL, endpoints, Search Everywhere e ícones de medianiz. Os recursos estão disponíveis após a instalação do plug-in Go e atualmente funcionam apenas com funções de biblioteca padrão. Mais detalhes aqui.

Melhorias no insight de código para o Spring Data Mongo
Ultimate

Ao trabalhar com o Spring Data MongoDB, o IntelliJ IDEA agora realça consultas JSON, complementa operadores e campos de documentos e fornece navegação até a janela de ferramentas Database a partir de entidades mapeadas.

Melhor suporte para arquivos .proto

Melhor suporte para arquivos .proto
Ultimate

Há uma nova ação de intenção para arquivos .proto que adiciona instruções de importação ausentes para referências de mensagens não resolvidas. Depois de adicionar as instruções import ausentes, o IDE fornece sugestões de complementação para referências de mensagens.

Suporte para reflexão gRPC

Suporte para reflexão gRPC
Ultimate

Com o IntelliJ IDEA Ultimate, agora você pode executar solicitações e obter complementação de nomes de serviços e métodos diretamente de uma instância de servidor em execução. The project does not need to contain .proto files, but the server should support gRPC reflection.

Melhorias no suporte para Thymeleaf

Melhorias no suporte para Thymeleaf
Ultimate

O IntelliJ IDEA Ultimate agora oferece melhor suporte para o Thymeleaf, incluindo menos inspeções com falsos positivos, desempenho aprimorado do IDE ao editar modelos Thymeleaf e níveis de inspeção e realce ajustados para que você receba as notificações corretas.

Complementação em arquivos de configuração do Helidon
Ultimate

A framework Helidon agora tem melhor suporte no IntelliJ IDEA Ultimate. O IDE agora fornece complementação de chaves de configuração em arquivos de propriedades e arquivos .yaml e oferece suporte para as ações Go to Declaration e Quick Doc.

Ferramentas de compilação

Barra de progresso atualizada para Gradle

Barra de progresso atualizada para Gradle

Introduzimos uma barra de progresso para processos Gradle, como download de dependências e importação de artefatos. Ele permite que você acompanhe exatamente o que está acontecendo com os arquivos e faça uma estimativa de quando o processo será concluído.

Suporte para módulos de teste separados no plug-in Maven compiler

Suporte para módulos de teste separados no plug-in Maven compiler

Adicionamos funcionalidade experimental ao plug-in do compilador Maven. Agora, ele permite definir níveis de linguagem diferentes separadamente para fontes de produção e teste. Você pode ativar esta opção em Preferences/Settings | Build, Execution, Deployment | Build Tools | Maven | Importing.

VCS

Informações sobre o autor do Código fornecidas por meio de dicas embutidas

Informações Code Author fornecidas por meio de dicas embutidas

Atualizamos a funcionalidade Code Vision para que o IntelliJ IDEA agora possa fornecer instantaneamente informações sobre autoria de código com base no histórico do VCS. Dicas embutidas Code Author estão habilitadas por padrão em Preferences / Settings | Editor | General | Inlay Hints | Code Vision.

Recurso Annotate with Git Blame atualizado

Recurso Annotate with Git Blame atualizado

Aprimoramos a funcionalidade do recurso Annotate with Git Blame para facilitar a investigação das alterações introduzidas. O IDE realça a diferença entre as linhas diretamente no editor quando você passa o mouse sobre uma anotação e abre a janela de ferramentas Git Log quando você clica nela.

Commit Details atualizado na janela de ferramentas Git

Commit Details atualizado na janela de ferramentas Git

Agora, Commit Details inclui informações sobre assinaturas GPG e status de build. Antes, esses dados eram mostrados apenas como uma coluna no log do Git.

Git File History: nova interface do usuário sem índice

Git File History: nova interface do usuário sem índice

A nova interface do usuário para a janela de ferramentas Git File History agora é independente do processo de indexação. Os dados são representados com uma nova interface, mesmo que o índice Log esteja desativado.

Alterações sugeridas em comentários de solicitações pull

Alterações sugeridas em comentários de solicitações pull

Ficou mais fácil trabalhar com alterações sugeridas no IntelliJ IDEA, pois agora você pode aplicar ou submeter alterações localmente no IDE.

Definir ferramentas diff e merge externas por tipo de mídia de arquivo

Definir ferramentas diff e merge externas por tipo de mídia de arquivo

O IntelliJ IDEA 2022.1 agora permite especificar diferentes ferramentas externas de diff e merge com base no tipo de arquivo. Para configurá-las, acesse Settings / Preferences | Tools | Diff & Merge | External Diff Tools.

Profiler

Configuração de profiler único com base no Async Profiler
Ultimate

A nova configuração do profiler, IntelliJ Profiler, foi implementada. Ele combina o poder do Async Profiler e do Java Flight Recorder e nos aproxima da meta de implementar uma ferramenta de profiling única e completa para todas as plataformas.

Depurador

Reset Frame

Reset Frame

Na tela Frames da janela de ferramentas Debugger, removemos a ação Drop Frame da barra de ferramentas e a disponibilizamos com um ícone inline Reset Frame.

Rótulos de abas ocultos

Rótulos de abas ocultos

Para maximizar o espaço utilizável na janela de ferramentas Debugger, os rótulos das abas agora estão ocultos por padrão. Para torná-los visíveis novamente ou personalizar sua localização, use a opção Show Tab Labels em Layout Settings.

Ferramentas de controle de qualidade

Melhorias no Page Object Editor

O plug-in Selenium UI Testing obteve uma grande melhoria em seu Page Object Editor. Otimizamos o workflow e reformulamos a interface do usuário para garantir que apareçam menos elementos de distração. Você pode adicionar instantaneamente elementos de página da página Web ao código em tempo real e continuar editando sem sair do Page Object Editor. Você também pode escolher qual tipo de seletor usar ao adicionar um novo elemento de página ao código.

Novo assistente Page Object

O novo assistente Page Object permite que você escolha a linguagem e o framework de automação de testes ao criar uma nova classe de objeto de página. Também disponibilizamos o assistente para todos os pontos do seu código em que haja uma dependência da biblioteca Selenium. Se quiser experimentar nossa geração automática de objetos de página com diferentes frameworks e modelos personalizados sem criar um novo arquivo, há um modo de experimentação especial disponível em Tools | Open Selenium Page Object Playground.

Kubernetes

Editar recursos no cluster

Editar recursos no cluster
Ultimate

A modificação de recursos carregados do cluster agora pode ser feita na aba do editor.

Caminho personalizado para o kubectl

Caminho personalizado para o kubectl
Ultimate

Você pode configurar manualmente um caminho para o kubectl, se ele não estiver no local-padrão. Para definir seu caminho personalizado, acesse Settings/Preferences | Build, Execution, Deployment | Kubernetes | Path to kubectl executable.

Ação de encaminhamento de portas na tela Services

Ação de encaminhamento de portas na tela Services
Ultimate

A funcionalidade de encaminhamento de portas para pods agora está disponível. Para encaminhar portas, você pode usar o ícone na barra de ferramentas ou escolher o item do menu de contexto.

Ação Describe Resource na tela Services

Ação Describe Resource na exibição Services
Ultimate

Há uma nova ação Describe Resource para todos os recursos da tela Services. Você pode chamá-la pelo menu de contexto ou usar o botão da barra de ferramentas.

Suporte a Events em cluster
Ultimate

Eventos de cluster agora são exibidos em nó separado da tela Services, fornecendo dados sobre eventos recentes no sistema. Para ver os eventos de um pod específico, chame Describe Resource nele e procure a seção Events nos resultados da ação.

Suporte para Werf
Ultimate

Introduzimos suporte limitado ao editor para werf.yaml e arquivos de template Helm relacionados, incluindo funcionalidade de complementação de código, inspeções, sugestões de correção rápida, refatoração/renomeação para .Values.werf.image.* e validação de alguns campos, como boolean e int.

Suporte à importação de valores filho para o Helm

Suporte à importação de valores filho para o Helm
Ultimate

O IntelliJ IDEA Ultimate agora oferece suporte para importar valores filho por meio de configurações import-values que afetam a complementação/navegação de objetos incorporados em templates.

Docker

Nova interface do usuário da tela Services

Nova interface do usuário da tela Services

Para o IntelliJ IDEA 2022.1, reformulamos significativamente a UI do Docker na janela de ferramentas Services. A reforma foi implementada para containers, imagens, redes e volumes.

Suporte para destinos do Docker Compose

O suporte para destinos do Docker Compose já está disponível. Por exemplo, para executar uma aplicação Spring Boot em um destino do Compose, acesse a configuração de execução, crie um destino do Compose via Manage targets e execute a aplicação.

Suporte para o Docker Registry V2

Suporte para o Docker Registry V2

Adicionamos suporte para a API HTTP V2 do Docker Registry para uso com o Docker 1.6+. Você pode criar registros do Docker V2 simples ou protegidos por senha e realizar todas as ações comuns, como visualizar, enviar e extrair imagens.

Desenvolvimento remoto

Mais configurações para servidores remotos
Ultimate

O desenvolvimento remoto agora apresenta um widget Backend Control Center, que mostra a carga da CPU, memória, capacidade do disco e outros parâmetros que podem ser necessários para monitorar o status do back-end.

Uma nova configuração de segurança agora permite que você use o encaminhamento de chaves SSH para autenticar o acesso a repositórios git da sua máquina remota. Como alternativa, você pode usar o auxiliar SSH-agent para fazer isso.

Agora, você pode especificar o caminho de download e os locais exatos para o back-end do IDE na sua máquina remota.

Cliente thin local adiciona novos recursos

Cliente thin local adiciona novos recursos
Ultimate

O JetBrains Client agora oferece suporte a mais editores de arquivos, para que você possa trabalhar não só com arquivos baseados em texto, mas também com imagens PNG, diagramas UML, arquivos Jupyter Notebook e recursos de layout do Android.

Run with coverage e uma janela Profiler foram adicionadas ao menu da medianiz. O menu de contexto agora inclui janelas de ferramentas para Maven e Gradle, e itens de submenu mais úteis foram adicionados.

Também melhoramos a funcionalidade de depuração e disponibilizamos várias ações para que você possa examinar seu código sem esforço ao desenvolver remotamente.

Ferramentas de banco de dados

Copiar múltiplos objetos

Copiar múltiplos objetos
Ultimate

Agora, você pode selecionar várias tabelas e copiá-las para outro esquema. Selecione as tabelas e pressione F5 para abrir a caixa de diálogo de exportação. Ao exportar uma única tabela, você pode mapear as colunas, ver o DDL da nova tabela e alterá-lo.

O IDE oferece suporte à exportação entre DBMS, o que significa que o esquema de destino pode pertencer a qualquer banco de dados do seu projeto. Saiba mais nesta postagem no nosso blog.

MongoDB: Edição de campos em resultados

MongoDB: Edição de campos em resultados
Ultimate

Agora, você pode editar os resultados em coleções do MongoDB com a mesma facilidade que em bancos de dados relacionais. Você também pode editar conjuntos de resultados obtidos via .find(). Isso funcionará mesmo se algum método de cursor que modifique o resultado, como sort() ou limit(), tiver sido executado depois de .find().

Cancelando instruções em execução

Cancelando instruções em execução
Ultimate

A lógica para cancelar instruções em execução foi atualizada. Agora, está mais claro que a solicitação está sendo cancelada, e não desativamos mais as fontes de dados sem aviso prévio. Para obter mais informações, leia esta postagem no nosso blog.

Cancelar conexões sem desativar a fonte de dados

Cancelar conexões sem desativar a fonte de dados
Ultimate

Agora, você pode interromper o processo de criação de uma conexão sem desativar a fonte de dados. Se você clicar no botão Cancel enquanto a conexão estiver sendo criada, ela será interrompida, e uma mensagem ‘Connection canceled’ será exibida. Leia mais sobre essa atualização nesta postagem do nosso blog.

Desenvolvimento Web

Melhor suporte ao Next.js

Melhor suporte ao Next.js
Ultimate

Graças ao suporte incorporado ao React, todos os principais recursos já devem estar funcionando nos seus projetos Next.js. O IntelliJ IDEA 2022.1 adiciona suporte para alguns itens específicos de cada framework, como páginas. O IDE resolverá os caminhos usados na propriedade href dos seus componentes Link, bem como em formulários e outras tags. A complementação de código, a navegação e as refatorações também funcionarão.

Suporte para o Volta

Suporte para o Volta
Ultimate

Neste lançamento, adicionamos a integração adequada com o Volta, um gerenciador de ferramentas JavaScript. O IntelliJ IDEA 2022.1 reconhece automaticamente o Yarn e o npm instalados usando o Volta.

Scala

Melhorias no suporte ao Scala 3

Melhorias no suporte ao Scala 3

Agora, é possível complementar métodos extension automaticamente. Além disso, o editor oferece a opção de importar métodos extension e instâncias given automaticamente. Novas inspeções para o modificador infix e a anotação @targetName podem ajudar você a manter um estilo de código consistente. Melhoramos significativamente o desempenho do leitor .tasty e, agora, a indexação de bibliotecas Scala 3 é até duas vezes mais rápida.

Novo assistente para projetos Scala

Novo assistente para projetos Scala

Ficou ainda mais fácil configurar um novo projeto Scala. Com o novo assistente New Project, você pode selecionar um JDK de projeto, sistema de build desejado e versão Scala numa única etapa.

Exportações de alias

Exportações de alias

A maioria das coisas em Scala é formada por aliases, incluindo String, Seq, List, Set e Map. Isso afeta o realce de sintaxe, as opções GoTo, Quick Documentation, Quick Definition, Find Usages e Optimize Imports, bem como outros recursos do IDE, porque eles atuam em aliases em vez de em definições reais. Para melhorar a experiência do usuário, o editor agora trata os aliases na biblioteca padrão como exportações transparentes, de modo que, por exemplo, List implica scala.collection.immutable.List em vez de scala.List.

Inspeção Unused declaration

Inspeção Unused declaration

Anteriormente, a detecção de declarações não utilizadas era limitada a associações private. Agora, a inspeção Unused declaration oferece suporte a associações públicas introduzidas por classes, métodos, variáveis, parâmetros e assim por diante.

Dicas embutidas para intervalos

Upgrades no depurador Scala

Neste lançamento, fizemos um esforço para reformular e simplificar o depurador Scala. Atualizamos o tratamento de objects, parâmetros de construtor primários, instâncias de class, Array, lazy val e coleções de valores e também melhoramos a avaliação de expressões.

Integração com o Space

Comentários de revisão de código: Post Now ou Save as Draft

Comentários de revisão de código: Post Now ou Save as Draft

Ao revisar alterações de código no IDE, agora você pode escolher quando publicar um comentário de revisão de código.

  • Post Now publica imediatamente o comentário na revisão de código e notifica imediatamente o autor e outros envolvidos.
  • Save as Draft agrupa todos os comentários e os envia de uma só vez quando você aprova alterações ou aguarda uma resposta.

For more details, check out this blog post.

Atalhos de teclado para revisão de código

Atalhos de teclado para revisão de código

Aprimoramos a interface do usuário de revisão de código mostrando atalhos de teclado aplicáveis. Ao postar um comentário de revisão de código, você pode usar Enter para adicionar uma nova linha. Ctrl+Enter irá salvar ou postar o comentário.