Novidades do IntelliJ IDEA 2021.3

IntelliJ IDEA 2021.3 fornece suporte para desenvolvimento remoto (Beta) e apresenta uma nova maneira de solucionar problemas de IDE com a ação Repair IDE.... Ele também traz atualizações de depurador e inspeção de condições constantes para Kotlin, junto com outras alterações valiosas. As breves descrições a seguir explicam esses e outros recursos dignos de nota com mais detalhes.

Principais atualizações

Desenvolvimento remoto

Desenvolvimento remoto
Beta
Ultimate

Agora, o IntelliJ IDEA Ultimate oferece suporte a uma versão Beta do nosso workflow de Desenvolvimento Remoto. Ele permite que você se conecte a uma máquina remota executando o back-end do IntelliJ IDEA de qualquer lugar do mundo. Todo o processamento acontece nessa poderosa máquina remota, e você pode trabalhar no seu projeto com a mesma perfeição como se estivesse na sua máquina local. Essa funcionalidade pode ser iniciada na tela de boas-vindas do IntelliJ IDEA ou em uma nova aplicação chamada JetBrains Gateway, que está disponível no JetBrains Toolbox App.

Além do mais, você pode criar, pré-construir, compartilhar, reproduzir, hibernar e gerenciar ambientes de desenvolvimento com o Space, uma plataforma unificada para todo o pipeline de desenvolvimento de software.

Confira esta postagem do nosso blog para mais detalhes.

Solução de problemas com o IDE

Solução de problemas com o IDE

O IntelliJ IDEA 2021.3 traz uma maneira nova e mais rápida de diagnosticar e corrigir problemas que estão fazendo com que seu IDE não funcione corretamente. Se o seu IDE não estiver funcionando corretamente, execute a nova ação Repair IDE... no menu File. Ela vai lhe orientar por uma sequência de etapas para resolver alguns dos problemas mais comuns.

Inspeção Constant conditions para Kotlin

Inspeção Constant conditions para Kotlin

Adicionamos a nova inspeção Constant conditions, que ajuda o IntelliJ IDEA a relatar condições e valores não triviais que são estaticamente conhecidos como sempre verdadeiros, falsos, nulos ou iguais a zero. Ela funciona da mesma maneira que a inspeção semelhante para Java e oferece suporte à maioria das mesmas verificações. Essa nova inspeção pode ser encontrada em Preferences/ Settings | Editor | Inspections | Kotlin | Probable bugs.

Atualizações do depurador para Kotlin

Smart Step Into

Quando você deseja depurar uma expressão com Lambdas e chamadas em cadeia, a ação Step Into oferece a funcionalidade de Smart Step Into por padrão. Ela realça os métodos os os Lambdas nos quais você entrar. Para usá-la, clique no botão Step Into, localizado no painel superior da janela de ferramentas Debug ou use o atalho F7. O IDE destacará então os locais onde é possível pode entrar no código, e você poderá selecionar a linha que deseja clicando nela.

Quadros de pilha inline

O depurador agora pode detectar funções inline do Kotlin e exibir chamadas de funções inline no painel de rastreamento de pilha. Você pode navegar até essas chamadas e também pode inspecionar e avaliar as variáveis de cada quadro.

Editor

Alterar o tamanho da fonte em todas as abas

Conforme solicitado, tornamos possível alterar o tamanho da fonte em todas as abas abertas simultaneamente com ⌘ + roda do mouse no macOS ou Ctrl + roda do mouse no Windows e Linux. Para habilitar essa recurso, acesse Preferences/ Settings | Editor | General, escolha Change font size with Command + mouse wheel in e selecione All editors. Se você selecionar Active editor, o atalho mudará o tamanho da fonte apenas no arquivo em que você está trabalhando no momento.

Visualização de intenções aprimorada

O IntelliJ IDEA tem uma opção útil que permite visualizar os resultados de ações de intenção e correções rápidas antes de as aplicar ao seu código. Esse recurso está disponível no menu Intention actions. Para ativar a visualização, pressione F1 no macOS ou Ctrl+Q no Windows e Linux.

Desde a sua introdução na v2020.1, continuamos trabalhando para melhorar a visualização de intenções. No IntelliJ IDEA 2021.3, ela funciona para mais ações de intenção e correções rápidas no Kotlin, e a mensagem “Preview isn't available” foi substituída por descrições HTML mais informativas das ações de intenção se que não suportadas. Além do mais, para uma ação que modifica vários arquivos, a visualização exibe parte de um resultado possível. Esse resultado parcial deve ser suficiente para dar uma ideia geral do que a ação mudará.

Suporte aprimorado para Markdown

Suporte aprimorado para Markdown

No IntelliJ IDEA 2021.3, é possível criar tabelas com facilidade. Basta abrir o menu de contexto e selecionar Insert | Table. É isso! Você pode selecionar o tamanho preferido usando a ação de passar o mouse ou o teclado.

A largura da célula na tabela será ajustada conforme você digita. Você pode editar o conteúdo da tabela usando as barras de ferramentas flutuantes.

Para criar uma nova linha, use Shift+Enter e Tab para navegar até a próxima célula.

Acesso rápido a todas as ações para guias

Acesso rápido a todas as ações para guias

Ficou mais fácil trabalhar com as guias do editor. Basta clicar nos três pontos no canto superior direito do painel da guia para acessar todas as ações da guia.

Experiência do usuário

Nova janela de ferramentas Bookmarks

Introduzimos a nova janela de ferramentas Bookmarks, destinada a substituir uma instância semelhante: Favorites. Portanto, de agora em diante, basta usar o atalho F3 no macOS ou F11 no Windows e Linux para marcar seus arquivos, pastas e classes como importantes.

Quando você adiciona um bookmark, por default, o IntelliJ IDEA o coloca no nó com o nome do seu projeto na janela de ferramentas Bookmarks. Cada vez que você adicionar um novo bookmark, ele aparecerá no topo da lista dentro desse nó. Você pode classificar seus marcadores por tipo usando a opção Sort Groups and Bookmarks nas configurações da janela de ferramentas. Você também pode criar novos nós e arrastar e soltar itens neles.

Capacidade de dividir a janela de ferramentas Run

Capacidade de dividir a janela de ferramentas Run

No lançamento v2021.3, tornamos possível dividir a janela de ferramentas Run com abas. Isto permite que você execute várias configurações simultaneamente e veja todos os resultados.

Para dividir a janela, arraste a aba que você deseja ver até a área destacada dentro da janela de ferramentas Run e solte-a lá. Para desfazer a divisão da janela novamente, clique com o botão direito no painel superior e selecione Unsplit no menu de contexto.

Pesquisa baseada em ML para ações no Search Everywhere

Pesquisa baseada em ML para ações no Search Everywhere

Ao pesquisar ações, Search Everywhere no IntelliJ IDEA agora funciona com machine learning por default. Treinamos uma fórmula baseada em ML que leva em consideração o seguinte:

  • O histórico de uso de ações de um usuário específico.
  • Frequências de uso de ações em toda a base de usuários.
  • Os comprimentos da consulta de pesquisa, o nome da ação e assim por diante.

Esperamos que você descubra que os modelos baseados em ML aumentam a qualidade da sua pesquisa e retornam resultados adequados às suas necessidades específicas.

Melhorias em Find Usages

Melhoria em Find Usages

Quando você procura usos de uma implementação de método via ⌥F7 no macOS ou Alt+F7 no Windows e Linux, o IDE não pergunta mais se você deseja encontrar os usos do método básico em um pop-up. Em vez disso, o IntelliJ IDEA usará métodos de hierarquia de nível superior como destinos para sua pesquisa por default. Se você deseja alterar este comportamento, desmarque a caixa de seleção Search for base method usages nas configurações da janela de ferramentas Find Usages, que você pode acessar clicando no ícone de engrenagem.

Reformulação de Show Usages

A caixa de diálogo Show Usages recebeu vários novos recursos úteis. Introduzimos a visualização do código-fonte por uso encontrado, que você pode ver clicando no ícone de quadrado no painel superior da barra de ferramentas. Outra atualização permite que você altere o escopo da sua pesquisa com a nova lista suspensa localizada ao lado do ícone Preview. Além do mais, a barra de título da janela agora mostra o tipo de elemento de código que você está procurando e o número de usos encontrados.

Outra atualização secundária, mas muito conveniente, permite definir a largura da caixa de diálogo, que o IDE manterá na próxima vez que você a invocar.

Reformulação de Empty Project e novos nós Multi-Module Project

No lançamento v2021.3, você notará algumas alterações nos nós do Assistente de Projeto do IntelliJ IDEA.

Agora você pode selecionar o nó Empty Project para criar um projeto básico para trabalhar com arquivos separados de diferentes tipos e adicionar classes Java e Kotlin. O IDE configurará automaticamente o projeto para que você possa compilá-lo se qualquer classe Java ou Kotlin estiver presente.

O novo nó Multi-Module Project permite criar um projeto com uma estrutura complexa desde o início. Assim que o projeto for criado, a caixa de diálogo Project Structure será aberta, e você poderá adicionar vários módulos.

Atualizações de acessibilidade

O IntelliJ IDEA 2021.3 aborda alguns problemas de acessibilidade para tornar o trabalho com o leitor de tela mais confortável. Em resposta às suas solicitações, desabilitamos o pop-up do widget da janela de ferramentas e o pop-up da documentação rápida que costumavam aparecer ao passar o mouse. Também corrigimos o problema de chamar a caixa de diálogo Go to Declaration.

Nesta versão, o suporte para acessibilidade no macOS também foi aprimorado. Resolvemos vários problemas com o foco da narração e tornamos possível para os leitores de tela detectarem os itens da lista no assistente de Novo Projeto quando você cria projetos. Para minimizar as distrações enquanto você está programando, diminuímos o número de dicas de ferramentas que reproduzem sons.

Java

Inspeção para rastreamento de strings inseguras

O IntelliJ IDEA agora avisa sobre perigos como injeção de SQL e falhas de XSS, vazamentos de dados confidenciais e desserialização insegura. Também evita que você transmita dados inseguros para métodos seguros. Esses avisos adicionais são fornecidos pela nossa nova inspeção Non-safe string is passed to a safe method.

Para que essa inspeção funcione, você precisa anotar strings como @Untainted ( “segura”) ou @Tainted (“não segura”). Essas anotações se tornarão válidas quando você adicionar a dependência org.checkerframework.​checker.​tainting.​qual.

Outras novas inspeções Java

Adicionamos duas inspeções que podem ajudar você a simplificar seu código. A primeira sugere que você substitua collect(toList()) por .toList(). Você pode usá-la com Java 16 e versões superiores. Outra inspeção solicita que você substitua collection.addAll(List.of("x")) por collection.add(x) e map.putAll(Map.of("a", "b")) por map.put("a", "b").

Refatorações aprimoradas

Quando você introduz uma variável local em Java, as configurações aplicáveis a ela não aparecem mais em um pop-up que costumava cobrir o código que você estava escrevendo. Em vez disso, você pode acessar essas opções clicando no ícone de engrenagem ao lado de uma variável ou usando o atalho ⌥⇧O no macOS ou Alt+Shift+O no Windows.

Também melhoramos a refatoração Introduce parameter. Quando você invoca essa refatoração, com ⌥⌘P no macOS ou Ctrl+Alt+P no Windows e Linux, o IDE pergunta onde você deseja substituir as ocorrências. Depois que você fizer essa seleção, um ícone de engrenagem aparecerá. Se você clicar nele, poderá definir mais configurações para a refatoração.

Classpath personalizável em Run/Debug Configurations

Classpath personalizável em Run/Debug Configurations

Às vezes, você pode precisar definir classpaths personalizados na caixa de diálogo Run/Debug Configurations por configuração. Desta versão em diante, é possível fazer isso selecionando Modify options | Modify classpath.

Kotlin

Refatoração Extract Constant

Refatoração Extract Constant

Introduzimos uma nova refatoração que permite extrair constantes no Kotlin. Para usá-la, coloque o cursor em uma string e pressione ⌥⌘C no macOS ou Ctrl+Alt+C no Windows e Linux.

Melhorias na inspeção Possibly blocking call in non-blocking context

Melhorias na inspeção Possibly blocking call in non-blocking context

A inspeção Possibly blocking call in non-blocking context avisa se você usar uma corrotina no contexto errado. Neste lançamento, a inspeção funciona não apenas como um aviso, mas também como uma correção rápida dependente do contexto.

Além do mais, fizemos algumas melhorias adicionais. Essa inspeção agora abrange mais casos, e você pode personalizá-la para que ela funcione melhor no seu ambiente específico.

Dicas inline para intervalos

Dicas inline para intervalos

Às vezes, pode ser difícil entender as várias maneiras de declarar os intervalos para os quais o Kotlin oferece suporte. Para facilitar um pouco, adicionamos dicas inline que explicam com sinais matemáticos simples o que as palavras ou símbolos nas faixas significam. Se você não precisa desse recurso, pode desativá-lo facilmente clicando com o botão direito do mouse em uma dica e selecionando Disable ‘Ranges’ hints type.

Melhor assistente New Project

Melhor assistente New Project

Reformulamos o layout do assistente New Project, adicionando dicas de ferramentas para todos os campos, para que você possa entender facilmente quais informações eles requerem. A seção de modelos também recebeu uma atualização: removemos alguns dos modelos pouco populares e adicionamos um novo que permite criar um aplicação Web Compose.

E, finalmente, a etapa de configuração do projeto tornou-se muito mais simples. Agora, você só precisa preencher os campos básicos.

Scala

Melhorias no suporte ao Scala 3

Melhorias no suporte ao Scala 3

O foco principal deste lançamento foi o suporte ao Scala 3. Adicionamos realce, navegação e complementação automática para marcadores end. Agora, existe complementação automática para as palavras-chave given, using e export, as soft keywords e a sintaxe silenciosa. O leitor TASTy agora pode analisar package object, bem como variação e limites em tipos superiores. O realce de erros de lexer e parser agora é significativamente mais rápido. Existem mais inspeções que são compatíveis com o Scala 3. Melhoramos a resolução de importações given e membros com suporte final de nível superior e abstract lazy val.

Uma opção para abrir projetos com compilação cruzada Scala 3/Scala 2 como Scala 2

Uma opção para abrir projetos com compilação cruzada Scala 3/Scala 2 como Scala 2

Muitos projetos que devem ser compilados para Scala 2 e Scala 3 são modelados como projetos Scala 3 compilados para Scala 2, embora tecnicamente sejam projetos Scala 2.

Abrir projetos como Scala 2 permite que o IDE use a versão correta do Scala, além de ser um comportamento mais confiável.

Análise de fluxo de dados para Scala

Análise de fluxo de dados para Scala

O plug-in Scala agora oferece suporte à análise de fluxo de dados, que pode ajudar você a detectar erros de programação com mais facilidade. Você pode ler a postagem recente do nosso blog para mais detalhes.

Complementação automática para opções do compilador Scala

Complementação automática para opções do compilador Scala

Existem toneladas de opções diferentes no compiler Scala, e poucos programadores as aprendem de cor. Além disso, essas opções variam dependendo da versão do Scala em uso.

Agora, você pode preencher automaticamente as opções aplicáveis e até mesmo ver a documentação rápida para cada uma delas.

Dicas embutidas para intervalos

Dicas embutidas para intervalos

Você já se perguntou se 1 to 3 é um intervalo inclusivo ou exclusivo? E o que dizer de 1 until 3? Ou Range(1, 3)? Deixe suas dúvidas de lado: agora a resposta é clara.

JavaScript

Nova inspeção para atualização de dependências

Nova inspeção para atualização de dependências
Ultimate

O IntelliJ IDEA 2021.3 permite que você atualize seus pacotes npm para a versão mais recente diretamente do editor. Abra o arquivo package.json, coloque o cursor na versão do pacote que você deseja atualizar e depois pressione ⌥⏎ no macOS ou Alt+Enter no Windows e Linux e selecione Update ‘package name’ to the latest version. Uma correção rápida também será exibida quando você passar o mouse sobre a versão do pacote.

Complementação de código aprimorada em HTML

Complementação de código aprimorada em HTML
Ultimate

Melhoramos o funcionamento da complementação de código em HTML. Sempre que você digitar um nome de tag ou uma abreviação no editor, ou chamar o complementação de código, o IntelliJ IDEA mostrará sugestões relevantes imediatamente. Antes, ele só os mostraria essas sugestões se você digitasse <. Além disso, a complementação de código para referências de entidades de caracteres deve funcionar melhor agora.

SSH

Suporte de proxy para conexões SSH

Este novo recurso muito aguardado permite que você especifique um servidor proxy HTTP ou SOCKS para sua configuração SSH em Preferences/Settings | Tools | SSH Configurations. Na nova seção HTTP/SOCKS, você pode selecionar o tipo de proxy, inserir um nome de host e uma porta e aplicar a autenticação com um nome de usuário e senha, se necessário. Também é possível sincronizar suas configurações de proxy SSH com as configurações globais do IDE. Para fazer isso, marque a caixa de seleção Use global IDE proxy settings.

Profiler

Comparar snapshots .jfr

Comparar snapshots .jfr
Ultimate

Agora, é fácil verificar se as alterações feitas funcionaram no programa ou causaram uma regressão. Para fazer isso, basta abrir dois snapshots que você deseja comparar na janela da ferramenta Profiler. No snapshot mais recente, clique no ícone diff e selecione o snapshot que você usará como linha de base. O IDE exibirá o resultado na forma de gráfico em degradê, árvore de chamadas ou lista de métodos.

Suporte para Async Profiler 2.0 no Windows
Ultimate

Na v2021.2, adicionamos suporte para o Async Profiler 2.0 às versões macOS e Linux do IntelliJ IDEA. A partir do lançamento v2021.3, a versão do Windows também oferece suporte ao Async Profiler 2.0 para uso imediato. Esse suporte fornece uma experiência de criação de perfil mais suave e também melhora a maneira como as funções nativas são exibidas em snapshots.

Ferramentas de compilação

Configurações do Maven reprojetadas

Configurações do Maven reprojetadas

Este lançamento segue algumas etapas para melhorar nossas configurações de execução/depuração e, desta vez, as configurações do Maven receberam uma reformulação significativa. Os principais parâmetros estão todos agrupados em uma tela, enquanto opções adicionais estão disponíveis por meio das opções Modify.

Suporte para .mvn/maven.config

Suporte para .mvn/maven.config

Se você deseja definir as configurações do Maven para cada projeto no arquivo .mvn/maven.config, vá para Preferences/ Settings | Build, Execution, Deployment | Maven e selecione Use settings from .mvn/maven.config na parte inferior da tela. Lembre-se de que as configurações deste arquivo substituem as configurações padrão da UI do Maven.

Controle de versão

Checkout and Rebase onto Current para branches remotos

Checkout and Rebase onto Current para branches remotos

Quando você precisa fazer check-out do branch selecionado e fazer rebase sobre um branch que está atualmente em check-out, use a ação Checkout and Rebase onto Current, que estava anteriormente disponível apenas para branches locais. No IntelliJ IDEA 2021.3, você também pode usá-lo para ramificações remotas.

Configurações de VCS reorganizadas

Melhoramos a forma como as configurações em Preferences/Settings | Version Control são estruturadas e tornamos algumas das configurações críticas mais fáceis de descobrir. O nó Version Control agora serve como ponto de partida para navegação, com links para todas as configurações disponíveis. Se você for para o nó Git a partir de lá, perceberá que dividimos todas as configurações em seções que representam os processos mais importantes: Commit, Push e Update. Além disso, os parâmetros dentro dessas seções agora são organizados de maneira mais lógica. Além do mais, adicionamos um nó separado para Mapeamentos de diretório, e as operações de segundo plano agora estão ativadas por default. O nó Background não existe mais.

Nova janela de ferramentas Changes

Nova janela de ferramentas Changes ("Alterações")

A partir do IntelliJ IDEA 2021.3, seu IDE mostra a diferença entre commits numa janela de ferramentas Changes separada, localizada à esquerda do editor.

Nova ação Push All up to Here

Nova ação Push All up to Here

Temos uma nova ação que permite fazer push apenas dos commits nos quais você está confiante e deixar o restante para depois.

Ela permite que você faça push dos commits até aquele que você selecionou na aba Log da janela de ferramentas Git. Para usá-la, selecione o commit no qual você deseja interromper o processo, clique nele com o botão direito para chamar o menu de contexto e selecione a nova ação Push All up to Here.

Alinhamento do realce de alterações

Alinhamento do realce de alterações

Adicionamos a nova opção Align Changes Highlighting nas configurações da tela Diff, que podem ser encontradas no ícone de engrenagem. Este recurso facilita a leitura Diff, especialmente quando há modificações complexas, porque alinha as linhas inalteradas para que elas sejam exibidas uma ao lado da outra. Isto ajuda você a ver com mais clareza o código que foi adicionado ou removido.

Terminal

Suporte para ConPTY no Windows

Suporte para ConPTY no Windows

In v2021.3, we’ve introduced support for the new ConPTY API on Windows. It addresses several issues users were having with the old implementation, which was based on winpty, and adds support for 24-bit colors in the terminal.

Suporte para digitação antecipada

Suporte para digitação antecipada

Nosso suporte de digitação antecipada (typeahead) recém-adicionado no terminal IntelliJ IDEA prevê modificações de texto e as exibe instantaneamente em cinza claro. Este recurso permite que você digite no terminal com a mesma rapidez em uma máquina local ou remota.

Depurador

Avaliar expressões a partir do depurador

Avaliar expressões a partir do depurador

Neste lançamento, melhoramos a capacidade de descoberta do recurso Evaluate. Anteriormente, quando os usuários precisavam computar algo, muitos deles recorriam ao uso de watches. Eles simplesmente criavam um watch e o removiam, em vez de usar a caixa de diálogo Evaluate. O campo Evaluate agora pode ser acessado diretamente na janela de ferramentas Debug, tornando-o a maneira mais conveniente de computar expressões mais óbvias.

Frameworks e tecnologias

Solicitações gRPC no cliente HTTP
Ultimate

O cliente HTTP do IntelliJ IDEA fornece suporte básico para solicitações gRPC. Quando você digita a palavra-chave GRPC para iniciar sua solicitação, o cliente HTTP oferece complementação de código. Portanto, seu IDE exibe prompts sobre todos os serviços gRPC conhecidos, métodos unários e de streaming de servidor de um servidor específico e, o mais importante, campos do corpo da solicitação.

Outro novo recurso permite que você gere uma solicitação gRPC no cliente HTTP. Para fazer isso, basta clicar nos ícones de medianiz em seus arquivos .proto.

Respostas binárias no cliente HTTP

Respostas binárias no cliente HTTP
Ultimate

O cliente HTTP pode detectar imagens nas respostas e exibir visualizações delas no console de resposta.

Suporte para streams de texto e streams JSON no cliente HTTP
Ultimate

Ao testar aplicações de streaming no IntelliJ IDEA, você não precisa mais esperar que um stream termine, pois o cliente HTTP exibirá a saída instantaneamente. Isso agora é possível porque adicionamos suporte para os seguintes tipos de conteúdo: text/event-stream, application/stream+JSON e application/x-ndjson. Você também será notificado quando um stream terminar.

Redirecionamento da saída para arquivo personalizado ou diretório no cliente HTTP
Ultimate

No cliente HTTP, é possível redirecionar a saída para um arquivo ou diretório personalizado. Você pode usar dois operadores para redirecionamentos forçados e flexíveis:

  • O operador >> sempre cria um novo arquivo, adicionando um sufixo -n ao nome do arquivo se o nome do arquivo solicitado já existir.
  • O operador >>! irá sobrepor o arquivo se ele já existir.

Suporte para identificadores de solicitações HTTP
Ultimate

Você pode adicionar identificadores de solicitação como comentários via @name ou como texto no primeiro separador (###). O IDE entende esses identificadores e permite que você invoque solicitações através deles na janela de ferramentas Services, assim como nas caixas de diálogo Run Configuration, Run Anything e Search Everywhere.

Suporte à linguagem de template Qute

Suporte à linguagem de template Qute
Ultimate

O Qute está agora entre as linguagens de template suportadas. Isto significa que o IntelliJ IDEA oferece realce de código, complementação automática e outros recursos úteis para ajudar você a desenvolver templates para seu projeto Quarkus.

Resolução e complementação de referências partir de arquivos de especificações secundárias

Resolução e complementação de referências partir de arquivos de especificações secundárias
Ultimate

O IntelliJ IDEA pode detectar quando suas especificações OpenAPI estão distribuídas por vários arquivos e vinculadas via $ref e fornecerá a complementação.

Novas anotações bloqueantes e não bloqueantes para código reativo

Novas anotações bloqueantes e não bloqueantes para código reativo
Ultimate

We’ve made 2 additions to the JetBrains annotation collection. Depois de adicionar 'org.jetbrains:annotations:23.0.0' às dependências do seu projeto, você pode anotar suas classes e métodos como @Blocking ou @NonBlocking. Isto permitirá que o IDE detecte chamadas bloqueantes em contextos não bloqueantes, como corrotinas Kotlin ou código reativo com o Project Reactor, o RxJava e o SmallRye Mutiny.

Além do mais, o IDE oferece suporte automático para as anotações correspondentes do Micronaut e SmallRye Mutiny.

Melhorias na detecção de código bloqueante no Spring e Java EE

Melhorias na detecção de código bloqueante no Spring e Java EE
Ultimate

O IntelliJ IDEA agora detecta mais casos de código bloqueante no Spring e Java EE, incluindo JpaRepository e CrudRepository do Spring Data, RestTemplate e JdbcTemplate, métodos de interface Spring Feign, chamadas JPA EntityManager e quaisquer métodos e classes anotados como @Transactional.

Configurações reformuladas do Spring Boot

Configurações reformuladas do Spring Boot
Ultimate

Reformulamos a caixa de diálogo Run/Debug Configurations para projetos Spring Boot. O design é semelhante às configurações atualizadas anteriormente para Java. A nova interface apresenta as configurações principais em uma tela e permite que você configure mais parâmetros por meio de Modify Options.

Melhorias de suporte para arquivos de aplicações Spring Boot

Melhorias de suporte para arquivos de aplicações Spring Boot
Ultimate

O IntelliJ IDEA agora fornece complementação de código em arquivos de configuração adicionais (propriedades ou arquivos .yaml) quando uma chave spring.config.import é usada para fazer referência a outro arquivo. Ele também melhorou a definição de arquivos de configuração Spring Boot complexos e personalizados.

Referências a application.yaml

Referências a application.yaml
Ultimate

Para projetos Spring Boot, o IDE agora oferece suporte para complementação de código e localização de usos para referências a application.yaml de @Value, @Scheduled e Environment.getProperty().

Melhor suporte a @NamedQuery usado em repositórios Spring Data

Melhor suporte a @NamedQuery usado em repositórios Spring Data
Ultimate

Agora, a Complementação de métodos de consulta funciona para consultas declaradas como @NamedQuery em projetos Spring Data JPA. Você também pode navegar até a definição de uma @NamedQuery através do ícone de medianiz.

Suporte Kotlin para o CDI Java EE
Ultimate

A partir da versão v2021.3, você poderá usar todas as inspeções de CDI em arquivos Kotlin. Anteriormente, essas inspeções funcionavam apenas em arquivos Java. Além disso, adicionamos ícones de medianiz CDI em arquivos Kotlin. Eles permitem que você navegue facilmente até pontos de injeção ou candidatos a injeção, criadores de beans, métodos de descarte e eventos.

Melhorias de diagramas de classe UML
Ultimate

Aceleramos todos os processos para diagramas de classe UML, tanto em Java quanto em Kotlin. A abertura do diagrama, a alternância entre categorias, zoom e a funcionalidade de desfazer/refazer agora demoram muito menos. Outras mudanças perceptíveis incluem uma nova grade, realce de membros e um pop-up de visualização rápida da documentação.

Se você precisar controlar a aparência do diagrama, use o menu de contexto e selecione Appearance.

Ferramentas de banco de dados

Aggregates no editor de dados

Aggregates no editor de dados
Ultimate

Adicionamos a capacidade de mostrar uma exibição Aggregate para um intervalo de células. Este é um recurso aguardado há muito tempo que ajudará você a gerenciar os seus dados e evitará que você tenha que criar consultas adicionais! Isto torna o editor de dados mais poderoso e fácil de usar, deixando-o um passo mais próximo das planilhas do Excel e do Google.

Basta selecionar o intervalo de células cuja exibição você deseja mostrar e depois clicar com o botão direito e selecionar Show Aggregate View.

Mapeando a fonte de dados DDL e a real

Mapeando a fonte de dados DDL e a real
Ultimate

Esta versão é uma continuação lógica da anterior, que introduziu a capacidade de gerar uma fonte de dados DDL com base numa fonte de dados real. Agora, esse workflow tem suporte total. Você pode:

  • Gerar uma fonte de dados DDL a partir de uma fonte de dados real: veja o anúncio da versão 2021.2.
  • Usar a fonte de dados DDL para mapear a fonte de dados real.
  • Comparar e sincronizar as duas fontes em ambas as direções.

Apenas como lembrete, uma fonte de dados DDL é uma fonte de dados virtual cujo esquema é baseado num conjunto de scripts de SQL. Armazenar esses arquivos no Sistema de Controle de Versões (VCS) é uma maneira de manter o seu banco de dados sob o VCS.

Há uma nova aba DDL mappings nas propriedades de configuração dos dados. Nessa aba, você pode definir qual fonte de dados real será mapeada para cada fonte de dados DDL.

Mapeando a fonte de dados DDL e a real

Nova janela de diff do banco de dados
Ultimate

A nova janela Database Diff está disponível no menu de contexto. Ela tem uma UI melhorada que mostra claramente no painel direito o resultado que você obterá depois de executar a sincronização.

A legenda do painel direito mostra o que significam as cores em relação ao resultado em potencial:

  • Verde e itálico: o objeto será criado.
  • Cinza: o objeto será excluído.
  • Azul: o objeto será alterado.

A guia Script preview mostra o script de resultado, que pode ser aberto em um novo console ou executado a partir deste diálogo. O resultado desse script é aplicar alterações para fazer o banco de dados à direita (o destino) ser uma cópia do banco de dados à esquerda (a origem).

Além da guia Script preview, há mais duas guias no painel inferior: Object Properties Diff e DDL Diff. Elas mostram as diferenças entre as versões específicas do objeto nos bancos de dados de origem e de destino.

Níveis de introspecção

Níveis de introspecção
Oracle
Ultimate

Introduzimos três níveis de introspecção para bancos de dados Oracle:

  • Nível 1: os nomes de todos os objetos com suporte, bem como suas assinaturas, exceto nomes de colunas de índice e variáveis de pacote privativas
  • Nível 2: tudo, menos o código-fonte
  • Nível 3: tudo

A introspecção é mais rápida no nível 1 e mais demorada no nível 3. Use o menu de contexto para alternar o nível de introspecção conforme apropriado.

O nível de introspecção pode ser configurado só para um esquema ou para todo o banco de dados. Os esquemas herdam seu nível de introspecção do banco de dados, mas o nível também pode ser configurado de forma independente.

O nível de introspecção é representado pelos ícones em forma de pílula encontrados junto ao ícone da fonte de dados. Quanto mais a "pílula" estiver preenchida, maior o nível. Um ícone azul significa que o nível de introspecção foi configurado diretamente, enquanto um ícone cinza significa que o nível foi herdado.

Ferramentas de controle de qualidade

Editor de objetos de página

Edição de objetos de página do Selenium

Uma grande atualização trouxe suporte para automação de testes da interface do usuário no Selenium. Agora, o editor visual pode ajudar você a manter as classes de objetos de página existentes. Antes, só era possível gerar novas classes de objetos de páginas, mas agora você pode até mesmo atualizar as classes de objetos de página existentes diretamente, sem um editor visual. O IntelliJ IDEA detectará as classes de objetos de página automaticamente e as indicará com um ícone correspondente no painel de medianiz. Ao clicar no painel de medianiz, o usuário pode abrir um editor visual e obter novos elementos a serem adicionados à classe de objeto da página.

Dados de teste

Dados de teste

O plug-in mais recente do Test Automation Kit recebeu um algumas pequenas correções de bugs, mas também um recurso útil em múltiplas configurações do gerador de dados. Agora, você pode modificar o prefixo, o sufixo e o delimitador com uma definição multilinha.

Gerenciamento de testes

Hierarquia de execução de testes

Implementamos suporte para execuções de testes multinível. Agora, você pode criar várias execuções de testes subordinadas para domínios de funcionalidade específica ou tipos de testes. Cada execução de teste principal agrega os resultados das execuções de testes subordinadas e fornece estatísticas resumidas de todas as execuções de teste relacionadas.

Etapas compartilhadas

Se você optar por gerenciar casos de teste em arquivos Markdown usando nosso recurso “Local TMS”, você poderá declarar facilmente as etapas de teste e compartilhá-las entre múltiplos casos de teste. As etapas compartilhadas são declaradas como um caso de teste regular com um ID numérico exclusivo. Você pode fazer referência a esse caso de teste em outros casos de teste, e o IntelliJ IDEA substituirá essas etapas de caso de teste referenciadas ao gerar visualizações, execuções de testes ou templates de código para um teste automático.

Kubernetes

Melhorias na formatação para templates Helm

Melhorias na formatação para templates Helm
Ultimate

Você pode formatar seus templates Helm e ter certeza do resultado correto. Corrigimos todos os problemas relacionados, e a formatação é agora muito mais confiável. Para ver a melhoria, acesse Code | Reformat code or Reformat file ou pressione ⌥⌘L no macOS ou Ctrl+Alt+L no Windows e Linux.

Realce de elementos de bloco em templates Helm

Realce de elementos de bloco em templates Helm
Ultimate

Adicionamos realce de elementos de bloco como if, else, range, with e define em templates Helm. Isso facilita muito o trabalho com código que contém inclusões de templates Go.

Injeção de linguagem em recursos ConfigMap

Injeção de linguagem em recursos ConfigMap
Ultimate

O IntelliJ IDEA agora suporta injeções automáticas de código de várias linguagens em recursos ConfigMap para chaves com extensões como .yaml, .json, .properties, etc. As partes de código injetadas são destacadas em verde, e é possível usar nossa funcionalidade de insight de código dentro delas, incluindo complementação de código, realce de erros e outros.

Capacidade de repetir o último comando

Capacidade de repetir o último comando
Ultimate

Agora, é possível executar novamente o comando helm mais recente na janela de ferramentas Services. Tudo que você precisa fazer é clicar no novo ícone localizado no canto superior direito. Por exemplo, você executa o comando helm lint e, depois de concluído, pode clicar no ícone para repeti-lo.

Docker

Conexão com o Docker a partir do Minikube

Conexão com o Docker a partir do Minikube

Agora, é fácil conectar-se a um daemon Docker do Minikube. Em Preferences/ Settings | Build, Execution, Deployment, selecione o botão de opção Minikube. No campo próximo a ele, o IDE exibirá automaticamente os ambientes docker-daemon detectados do Minikube que você pode usar para se conectar.

Processo de conexão mais fácil

Processo de conexão mais fácil

A conexão com o Docker ficou mais rápida, pois você pode simplesmente clicar duas vezes no nó necessário ou usar o novo atalho - ⌘Enter no macOS ou Ctrl + Enter no Windows e Linux. A ação Start container também pode ser chamada com esse atalho.

Nova ação Clean up

Nova ação Clean up

The new Clean up action works just like the prune terminal command. Ao clicar com o botão direito no nó Networks, Volumes, Containers ou Images , você pode selecionar Clean up, e o IDE excluirá os objetos não usados. Você também pode aplicar essa ação ao nó raiz do Docker para remover todos os objetos desnecessários com um clique.

Suporte para Compose V2

IntelliJ IDEA supports Compose V2, which allows you to run Docker Compose commands as docker compose, instead of docker-compose (with a dash).

Para ativar essa opção, vá para Preferences/Settings | Build, Execution, Deployment | Docker| Tools e marque a caixa de seleção Use Compose V2.

Camadas de imagens

Camadas de imagens

Image layers allow you to track all the commands that are applied to images. Para acessá-los, selecione uma imagem e acesse a aba Layers. A partir daí, ao escolher um comando, você pode clicar no link Analyze image for more information no lado direito da tela para obter informações mais detalhadas sobre as alterações aplicadas a cada camada.

Salvar contêiner como imagem

Salvar contêiner como imagem

Se você tiver um contêiner pré-configurado que deseja usar mais tarde, poderá salvá-lo como uma imagem localmente e enviá-lo para continuar a usá-lo remotamente quando precisar. Vá para a janela de ferramentas Services, clique com o botão direito do mouse no contêiner e selecione Image | Save as a new Image.

Atualizações do Registro

Adicionamos várias alterações ao registro do Docker. First off, the IDE now displays all available registries in separate nodes in the Services tool window. Anteriormente, apenas havia suporte para o registro do Docker Hub. No lançamento v2021.3, adicionamos suporte para o GitLab (registry.gitlab.com) e o JetBrains Space (<username>.registry.jetbrains.space).

Você pode expandir os nós de registro na janela de ferramentas Services, selecionar a imagem necessária e enviá-la ao local desejado. Se você tiver várias conexões Docker, o IDE perguntará de onde extrair a imagem. É possível enviar imagens para qualquer registro adicionado e, na caixa de diálogo Push, o IDE detectará automaticamente os namespaces disponíveis no registro fornecido, permitindo que você selecione um na lista drop-down.

Por último, mas não menos importante, você pode usar a complementação para imagens dos registros do JetBrains Space, GitLab e Docker Hub.

Suporte para Podman

IntelliJ IDEA now supports Podman as an alternative way to manage pods, containers, and images. Before using Podman in the IDE, configure a connection yourself.

Depois de instalar e configurar o Podman no seu sistema operacional, você poderá se conectar a ele via Preferences/Settings | Build, Execution, Deployment | Docker, selecionando o botão de opções TCP socket e preenchendo os campos obrigatórios.

Integração com o Space

Criar solicitações de merge e revisões de código a partir do IDE

Agora, você pode criar solicitações de merge e revisões de código para seus projetos no Space. Existem duas opções diferentes:

  • Clique no ícone + na barra de ferramentas superior da janela de ferramentas Code Reviews e selecione a ação desejada.
  • Na aba Log da janela de ferramentas Git, clique com o botão direito do mouse sobre o commit na lista e escolha Space | Create merge request ou Create code review.

Para mais detalhes, veja esta postagem do blog ou consulte os gifs abaixo.

Marcar arquivos como visualizados

Marcar arquivos como visualizados

Todos os arquivos que você ainda não revisou ao realizar uma revisão de código permanecerão marcados com pontos azuis até que você os abra. Dessa forma, você não perderá nenhuma mudança essencial. Se quiser retornar às alterações mais tarde, você pode selecionar Mark as Not Viewed no menu de contexto. Esse recurso também funciona para solicitações pull do GitHub.

Outros

  • O IntelliJ IDEA agora suporta o Android Studio Arctic Fox, 2020.3.1.
  • Adicionamos suporte ao Groovy 4, incluindo insight de código completo, inspeções de funcionamento e ações de intenção. Recursos adicionais, como expressões switch e tipos "sealed" também são suportados.