Novidades do IntelliJ IDEA 2021.1

O IntelliJ IDEA 2021.1 vem com suporte a Java 16 e WSL 2, integração com o Space, Code With Me, uma janela de pré-visualização de HTML dentro do IDE, a alternativa de executar código em hosts SSH e contêineres do Docker, além de outras atualizações úteis. Você pode assistir a esta apresentação geral em vídeo ou continuar lendo para mais detalhes sobre as mudanças mais significativas!

Integração com o Space

Integração com o Space

Integração com o Space, nossa nova plataforma para desenvolvimento de software e colaboração em equipe, já está disponível e pronta para usar. Você pode se conectar à sua organização no JetBrains Space através da opção Get from VCS, localizada na tela de boas-vindas. Uma vez conectado, você pode visualizar e clonar repositórios de projeto, revisar o código de seus colegas de equipe e escrever scripts do Space Automation.

Suporte a WSL 2

Dependências externas de UX

Suporte a WSL 2 para projetos Java

Sabemos que você estava esperando por esta atualização! Agora você pode trabalhar com projetos Java localizados no WSL 2 usando o IntelliJ IDEA. O IDE pode detectar instalações JDK, instalar JDKs e compilar e executar projetos Maven e Gradle, assim como projetos que usam o sistema de build do IntelliJ IDEA.

Desenvolvimento colaborativo

Integração com o Space

Code With Me, um serviço para desenvolvimento colaborativo e programação em pares, agora vem pronto para usar no IntelliJ IDEA. Ele também inclui chamadas de vídeo e voz, levando a colaboração remota ao próximo nível. Sempre que você quiser falar com seus colegas, você pode iniciar chamadas de áudio e vídeo diretamente a partir do seu IDE JetBrains. O Code With Me funciona perfeitamente tanto para reuniões 1:1 como para sessões de grupo, onde você pode convidar dezenas de participantes. Para saber mais sobre essas atualizações, leia a nossa postagem no blog sobre o assunto.

Alvos de Execução (Run Targets)

Integração com o Space

O recurso Run Targets permite que você execute, teste, faça profiling e depure sua aplicação em contêineres Docker ou máquinas remotas. Atualmente, o IntelliJ IDEA Ultimate permite que você execute aplicações Java, testes JUnit, assim como projetos Maven, Gradle, Micronaut, Quarkus baseado em Maven e Spring Boot em alvos Docker, SSH e WSL. Para mais informações, veja esta postagem do blog.

Experiência do usuário

Pré-visualização de HTML no editor

Pré-visualização de HTML integrada

A nova pré-visualização em navegador integrada permite que você veja o resultado dos arquivos HTML rapidamente. Para abrir, clique no ícone com o logotipo do IntelliJ IDEA no widget situado no canto superior direito do editor. Se você fizer quaisquer alterações no HTML ou se alterar os arquivos CSS e JavaScript vinculados, a pré-visualização será atualizada na mesma hora.

Dependências externas de UX

Personalize dependências externas no escopo de busca

Deixamos o escopo de busca mais personalizável. Você pode configurar External Dependencies (dependências externas) ou para serem incluídas no escopo ou excluídas dele. Vá para Preferences/Settings | Appearance & Behavior | Scopes e use os botões à direita para alterar o status de External Dependencies.

Visualizador de memória HPROF

Acesso rápido a projetos recentes no Windows

Atualizamos o suporte para listas de atalhos do Windows e tornamos possível abrir seus projetos recentes clicando com o botão direito do mouse no ícone do IntelliJ IDEA na barra de tarefas ou no menu Iniciar.

Acessibilidade melhorada

Uma de nossas principais prioridades é tornar nosso IDE acessível a todos os usuários. Neste lançamento, acrescentamos mais rótulos aos elementos da interface do usuário na tela de boas-vindas, na tela Project Structure e no registro do VCS. Esses elementos, bem como os ícones da medianiz, agora são lidos corretamente quando um leitor de tela é ativado. Também estamos trabalhando para melhorar o suporte à acessibilidade para usuários macOS.

Sincronizando o modo de alto contraste no Windows com o tema IDE

Seu IDE agora aplicará automaticamente o tema de alto contraste quando você iniciar o IDE pela primeira vez, se você usar o modo de alto contraste no Windows.

Controle de versão

Suporte a solicitações pull

Melhor suporte a solicitações pull

A criação de solicitações pull agora leva menos tempo: basta clicar no ícone + na view Pull Requests e preencher todos os detalhes. Novas abas na parte superior da view contêm todas as informações sobre sua solicitação de pull. Se você clicar duas vezes em qualquer arquivo na aba Files, o IDE abrirá o diff no editor. Você também encontrará suporte para modelos de solicitação pull, que contêm o texto de descrição das suas solicitações pull.

Modelo de Git commit

Suporte a um modelo para Git commit

O IntelliJ IDEA suporta modelos de Git commit. Se você quiser criar uma mensagem de commit personalizada, você pode usar um modelo e preenchê-lo com as informações que achar importantes. O IDE vai mostrar esse texto como uma mensagem de commit inicial.

Inspeções pré-commit

Configure um perfil para inspeções pré-commit

Agora é fácil escolher um perfil de inspeção de código antes de fazer commit das alterações no VCS. Clique no ícone de engrenagem para mostrar as opções de commit, marque a caixa de seleção Analyze code, clique em Choose profile e selecione o perfil desejado. Seu IDE irá usá-lo para inspecionar seu código antes do commit.

Dicas de inserção de URL

Obter arquivos de outra branch

Na versão v2021.1, você pode obter um arquivo de outra branch na caixa de diálogo Compare with branch. Você deve simplesmente selecionar o arquivo que deseja obter e clicar no novo ícone de seta para baixo que fica ao lado de Show diff.

Branches aprimorados

Save to Shelf

Nossa nova ação Save to Shelf permite que você copie suas alterações para a Shelf enquanto as mantém nas suas alterações locais. Você pode acessar esta ação através das teclas ⇧⌘A no macOS (Ctrl+Shift+A no Windows ou Linux) e digitando ‘Save to Shelf’.

Integração com Perforce

O plugin Perforce é agora totalmente compatível com o IntelliJ IDEA Community Edition e vem integrado ao seu IDE. The source code for this plugin is available on GitHub.

Editor

Fonte ajustável

Opções para espessura de fontes

É muito importante poder escolher uma fonte para o editor que você possa olhar por longas horas de programação sem cansar. As configurações de tipografia incluídas recentemente deixam essa escolha um pouco mais fácil e personalizada. Na versão v2021.1, você pode ajustar a espessura da sua fonte principal e da fonte em negrito através de Preferences / Settings | Editor | Fonts.

Maximize as abas na view repartida

Maximize as abas na view repartida

Sempre que várias abas que dividem o editor verticalmente estiverem abertas, você pode clicar duas vezes em qualquer uma delas para maximizar a janela do editor para aquela aba específica. Para trazer a janela de volta ao tamanho original, basta clicar nela duas vezes novamente.

Suporte JSONPath

O IntelliJ IDEA agora oferece suporte a expressões JSONPath com as sintaxes Goessner ou Jayway. Para arquivos JSON, você pode chamar a ação Evaluate JSONPath Expression através de Edit | Find para escrever queries em JSONPath. Para arquivos que contêm partes gravadas em JSONPath, você pode usar a mesma funcionalidade e adicionar uma entrada JSON para testar sua query JSONPath.

Suporte a JSON Lines

Suporte a JSON Lines

IntelliJ IDEA has support for the newline-delimited JSON Lines format, which is used for working with structured data and logs. O IDE reconhece os tipos de arquivo .jsonl, .jslines, .ldjson e .ndjson.

Profiler Ultimate

Nós redesenhamos a interface do usuário do profiler. A janela Home se tornou mais informativa e agora é mais rápido anexar um profiler ao processo. Também acrescentamos duas novas ações que podem ser acessadas através do botão direito do mouse sobre um aplicativo em execução: Capture Memory Snapshot, para tirar snapshots *.hprof das suas aplicações e CPU and Memory Live Charts, que abre uma aba com ferramentas de visualização para rastrear o consumo de recursos.

Java

Suporte a Java 16

O IntelliJ IDEA oferece suporte básico para Java 16, que foi lançado em março de 2021. Algumas das atualizações incluem a nova possibilidade de uma classe interna declarar membros que são explícita ou implicitamente estáticos, além de mudanças em Stream.collect(toUnmodifiableList()), que agora virou stream.toList(). O IDE mostra o item toList() em primeiro lugar, na lista de complementação de código para streams.

Novas inspeções para análise de fluxo de dados

O IntelliJ IDEA poderá lhe avisar quando arrays estiverem sendo inicializados com tamanho negativo. Ele também reconhece os métodos Arrays.copyOf() e Collection.toArray(). Além do mais, o IDE oferece suporte a métodos para unboxing ou conversão de inteiros, tais como Integer.longValue() e Byte.intValue().

Outras inspeções novas e melhoradas

Agora você pode evitar casts desnecessários estreitando o tipo dos parâmetros do loop for-each. Outra inspeção permite que você simplifique a sintaxe do código ao trocar as chamadas .filter() e .map() se o filtro usa o mesmo valor produzido pelo mapper. Além disso, a inspeção que substitui StringBuffer por StringBuilder foi atualizada para cobrir mais casos.

Formatação para métodos builder encadeados

Novas opções de formatação para métodos builder encadeados ajudam a melhorar sua legibilidade. Você pode configurar o formatador em Preferences/Settings | Editor | Code Style | Java | Wrapping and Braces dentro do menu drop-down Chained method calls. A opção Builder methods permite que você crie uma lista de métodos que o IDE perceberá como métodos builder, fazendo com que cada um seja colocado numa linha separada. Quando a caixa de seleção Wrap first call for selecionada, o primeiro método builder também aparecerá em linha separada. Você também pode acrescentar recuos manualmente e, se marcar a caixa de seleção Keep builder methods indents, o IDE vai deixá-los intactos.

Kotlin

Realce mais rápido em Kotlin

Realce mais rápido de problemas de código

A análise de código em tempo real permite detectar erros e warnings com muito mais rapidez. Em comparação com versões anteriores, o IntelliJ IDEA 2021.1 realça os problemas de código quase que instantaneamente. O mecanismo de complementação de código agora funciona mais rápido e a capacidade de resposta do IDE a travamentos melhorou bastante.

Realce mais rápido em Kotlin

Preenchimento de código aprimorado

O mecanismo de complementação de código no Kotlin oferece funções que requerem parâmetros de tipo. Quando você seleciona uma função dessas, o IDE acrescenta o parâmetro de tipo correto ao código anterior.

Melhor cobertura de código

Agora, o executor de cobertura de código do IntelliJ IDEA oferece suporte total a funções inline e corrotinas em Kotlin.

Melhorias em refatorações

Nós reformulamos a interface do usuário para a refatoração Change Signature e incluímos uma nova caixa de seleção que permite definir o parâmetro adicionado como o default.

Atualizações do depurador para Kotlin

O depurador do IntelliJ IDEA pode avaliar expressões "get" em Kotlin e mostrá-las na view "Variables". Seu IDE também permite que você pule direto para a fonte a partir de lá.

Kotlin UML

Diagramas de classe UML para Kotlin

Diagramas de classe UML agora funcionam com código Kotlin compilado para a JVM e podem mostrar tanto classes Java como classes Kotlin. Pretendemos suportar diagramas UML para outros backends Kotlin em breve.

Scala

Kinds em Type Diff

Kinds em diffs de tipo

Não é comum que desenvolvedores do Scala usem tipos de classe superior (higher-kinded types), mas quando usam, eles gostam de usá-los com estilo. A dica de ferramenta diff agora suporta kinds.

Complementação em machine learning

Complementação em machine learning

Esta versão inclui a complementação de código Scala com base em machine learning. Você pode ativar este recurso em Settings | Editor | Code Completion | ML | Scala.

Phases e Units no gráfico de compilação

Além dos módulos, agora os gráficos de compilação podem mostrar fases e unidades, para que você tenha uma visão ainda mais detalhada da sua compilação. Abra a janela de ferramentas Build, selecione o nó Chart e escolha o nível de detalhe desejado com a opção Level.

Modelo para plug-ins na plataforma IntelliJ

Modelo para plug-ins na plataforma IntelliJ

The sbt-idea plugin makes it possible to develop IntelliJ Platform plugins using Scala and sbt. Agora existe um modelo de assistente de projeto integrado para deixar o processo ainda mais fácil (este recurso depende do Plugin DevKit).

Ferramentas de compilação

Visualizador de memória HPROF

Trouxemos de volta a possibilidade de personalizar configurações ao importar projetos Maven. Para ativar esta opção, marque Show settings dialog for new Maven projects em File | New Projects Settings | Preferences for new Projects | Build, Execution, Deployment | Build Tools | Maven.

Frameworks e tecnologias Ultimate

Suporte a solicitações pull

Nova inspeção para substituir http://

Seu IDE agora destaca usos do protocolo http:// e oferece a conversão para https://. Esta inspeção é ativada por default. Você pode adicionar URLs à lista de URLs ignoradas ou desativar a inspeção de todo o projeto ou partes dele em Preferences/Settings | Editor | Inspections | SecurityLink with unencrypted protocol.

Suporte a solicitações pull

Cliente HTTP melhorado

Se você executar uma solicitação do cliente HTTP, a resposta aparecerá na janela da ferramenta "Services", que, nesta versão, inclui atualizações na interface do usuário e UX. Você pode contrair a estrutura do HTML, JSON ou XML retornado, assim como copiar seu corpo, ocultar números de linha, escolher o formato de exibição e rolar rapidamente para o início e o fim da resposta.

Suporte SSL no cliente HTTP

Suporte SSL no cliente HTTP

É possível definir configurações de SSL no cliente HTTP se você usar a autenticação de cliente SSL para protocolos https://. Para fazer isso, clique em Add environment file e selecione Private. O IDE irá automaticamente criar um arquivo onde você poderá incluir suas configurações SSL. A complementação de código irá ajudar com isso.

Suporte para a interface de usuário do Swagger

Novos assistentes de projeto para frameworks JVM

Nós redesenhamos os assistentes para a criação de projetos Spring, Micronaut, Quarkus e MicroProfile. Começar um novo projeto requer apenas duas etapas! Todas as informações essenciais são agrupadas de forma conveniente na primeira tela, enquanto que a segunda tela apresenta configurações específicas do framework. A nova interface do usuário é mais organizada e o processo de criação do projeto é mais simples.

Suporte a solicitações pull

Suporte melhorado para JPA

Adicionamos ícones redesenhados à medianiz para projetos que incluem entidades JPA. Esses ícones são clicáveis e contêm uma lista das ações mais úteis para entidades e seus atributos. Também melhoramos o suporte JPA no Kotlin e em projetos multi-módulo.

Console JPA para o Jakarta EE 9

Console JPA para o Jakarta EE 9

Agora é possível usar o console JPA para escrever e executar queries JPQL nos projetos Jakarta EE 9.

Novo esquema de cores para diagramas UML

Novo esquema de cores para diagramas UML

Temos boas notícias para aqueles que utilizam nosso tema claro: os diagramas UML vêm com um novo esquema de cores que os deixa mais organizados e legíveis.

Melhorias para Swagger

O Swagger oferece suporte a especificações com referências a arquivos externos ($ref). Além do mais, a view Structure para arquivos de especificação inclui mais nós, incluindo Security, Callbacks e Examples.

Gerador de objeto de página Selenium

O IntelliJ IDEA agora suporta uma ferramenta experimental que detecta os elementos DOM de uma aplicação web. Antes de usá-lo, instale o plug-in Selenium UI Testing.

Você pode acessar essa nova ferramenta via Tools | Generate Selenium Page Object. Na caixa de diálogo que se abre, insira o endereço de uma página web, selecione qualquer elemento DOM e adicione-o na área abaixo. De lá você consegue alterar a linguagem do elemento ou framework. Nosso gerador de objeto de página oferece suporte a Java, Kotlin e Groovy e frameworks como Selenium, FluentLenium, Selenide, Geb, Atlas e JDI Light.

Você pode personalizar os modelos de código de cada framework.

Kubernetes Ultimate

Exclusão rápida de recursos

Exclusão rápida de recursos

É possível excluir todos os recursos de cluster no contexto atual a partir do editor: basta clicar no ícone "Run" na medianiz e selecionar Delete.

Support a componentes Kustomize 3.7.0

Você pode escolher os novos componentes do Kustomize 3.7.0 na lista drop-down com a versão do Kustomize em Settings/Preference | Languages & Frameworks | Kubernetes.

Suporte a kind: List

Suporte a kind: List

Se você precisa trabalhar com o que é retornado pelo comando kubectl get <resource type> -o yaml ou organizar recursos em listas, o IDE agora suporta kind: List. Em cada recurso da lista, você pode renomear rótulos e usar assistência de código e navegação através dos ícones da medianiz. Você também pode converter uma List num arquivo YAML multi-documentos e vice-versa.

Valores não-default para projetos Helm

É possível criar arquivos values.yaml personalizados. O IDE considera que arquivos que possuem “values” nos seus nomes são arquivos values. Selecione Configure Helm Parameters, Helm Lint ou Helm Template no menu de contexto para abrir uma caixa de diálogo onde você poderá configurar quais arquivos values serão usados pelo modelo de gráfico. Você também pode adicionar valores manualmente, colando-os na área Additional values desta caixa de diálogo.

Docker

Configurações de execução/depuração melhoradas

A caixa de diálogo Run/Debug Configuration agora é mais concisa e ajustável. Para acrescentar todas as opções de construção necessárias, clique em Modify options. Para acrescentar opções de execução, clique em Modify. O IDE agora valida cada opção para se garantir que é compatível. Suportamos todas as opções existentes para o Docker Compose. A complementação de código agora funciona para Dockerfiles Run Options e Image ID or name.

Suporte a BuildKit

Suporte a BuildKit

Incluímos suporte experimental para o BuildKit, que agiliza a criação de projetos. Além disso, a construção de estágios nomeados separada de todo o Dockerfile multiestágio agora ficou mais fácil. Você só precisa clicar no ícone martelo próximo ao nome do estágio que o IDE vai construir a imagem usando o BuildKit.

Melhorias na interface do usuário de Dockerfiles muiltiestágio

Melhorias na interface do usuário de Dockerfiles muiltiestágio

Se você usa Dockerfiles multiestágio, agora é possível dobrar estágios e ver uma linha separadora distinta entre eles.

Cancelamento da execução do Docker

Cancelamento da execução do Docker

É possível rapidamente interromper a execução do Dockerfile. Para isto, vá para a janela da ferramenta Services, selecione o item em execução, chame o menu de contexto e clique em Stop Deploy.

Variáveis de ambiente e macros para mounts do Docker

Variáveis de ambiente e macros para mounts do Docker

Agora, ao usar bind mounts, é possível inserir um caminho para um diretório na máquina host mais rapidamente. O mecanismo de complementação permite que você selecione macros e variáveis de ambiente na opção "Bind mount" em Run/Debug Configurations.

Complementação de imagens em Dockerfiles

Complementação de imagens em Dockerfiles

A complementação de código agora funciona para nomes de imagens.

JavaScript Ultimate

Suporte aprimorado para Stylelint

Inspecting your CSS code with Stylelint is now easier. Agora você pode corrigir problemas usando este linter popular em apenas alguns cliques. Passe o mouse sobre um problema no seu arquivo ou coloque o sinal de intercalação sobre ele, pressione Alt+Enter e selecione Stylelint: Fix current file. Além disso, agora você pode especificar um caminho para o arquivo de configuração no campo correspondente em Preferences / Settings | Languages & Frameworks | Style Sheets | Stylelint.

Documentação MDN integrada

MDN documentation is now bundled with IntelliJ IDEA. Isto ajudará a evitar problemas de conectividade com o site do MDN e fará com que a documentação no editor apareça mais rapidamente nos seus arquivos HTML, CSS e JavaScript. A documentação integrada também se tornará mais informativa: por exemplo, você agora poderá ver detalhes sobre as versões de navegador com suporte para APIs JavaScript.

Especificidade dos seletores para folhas de estilo

When working with style sheets, you can now check the specificity of your selectors – just hover over a selector that you want to check. Como alternativa, concentre-se em um seletor e pressione F1/Ctrl+Q para ver essas informações no pop-up Documentation.

Ferramentas de banco de dados Ultimate

Para uma descrição mais detalhada dessas e de outras atualizações das ferramentas de banco de dados, consulte a página Novidades.

Interface do usuário para permissões de acesso

Interface do usuário para permissões de acesso

Adicionamos uma interface do usuário para editar permissões de acesso ao modificar objetos. A janela Modify user, que você pode invocar em um usuário no Database Explorer com Cmd/Ctrl+F6, agora tem uma IU para adicionar concessões a objetos. Essas atualizações estão disponíveis para PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server e Sybase.

Modelos dinâmicos de contexto

Modelos dinâmicos de contexto

Introduzimos uma solução para gerar declarações simples diretamente a partir do "Database Explorer": modelos dinâmicos. Você pode adicionar seus próprios modelos ou editar os existentes via Preferences/Settings | Editor | Live Templates no nó SQL.

Copiar e colar em banco de dados

Ações diretas

Simplificamos a navegação – Go to declaration (Ctrl/Cmd+B) chamado num objeto no SQL agora leva você ao DDL e não para a árvore do banco de dados. Também incluímos um atalho para a ação Select in database tree: Alt+Shift+B para Windows/Linux e Opt+Shift+B para macOS.

Melhor ordenação da base de dados

Melhor ordenação

Melhoramos o processo de ordenar dados. Um novo campo ORDER BY funciona de forma semelhante ao campo WHERE (que antes era chamado Filter): insira uma cláusula funcional para aplicá-la à consulta da tabela. Se você quiser usar ordenação no lado do cliente (o IntelliJ IDEA não irá executar novamente a consulta nem ordenar os dados na página atual), desmarque Sort via ORDER BY. Outra atualização é que a ordenação não é 'empilhada' por default. Se você clicar no nome de uma coluna que deseja usar para ordenar os dados, a ordenação baseada nas outras colunas será ignorada.

Copiar e colar em banco de dados

Facilidade para copiar e colar fontes de dados

Os atalhos mais famosos do mundo, Ctrl/Cmd+C/V/X, agora funcionam para copiar, cortar e colar fontes de dados. Quando você copia uma fonte de dados, seu XML é copiado para a área de transferência que você pode compartilhar através de aplicativos de mensagens. Você também pode usar a ação "Paste" para colar um pedaço de XML de outro lugar. Se você recortar e colar uma fonte de dados dentro de um projeto, ela será apenas movida. Não há necessidade de senha. A senha é necessária em todos as outras situações.

Edição de dados no MongoDB

Edição de dados no MongoDB

Agora você pode editar dados em coleções MongoDB. Uma pré-visualização da declaração também está disponível. Para deixar a edição mais flexível, incluímos a capacidade de alterar o tipo de campo a partir da interface do usuário. Você pode fazer isto a partir do menu de contexto do campo ou através do editor de valor.

Outros

Suporte integrado a índices compartilhados

O suporte a índices compartilhados publicamente disponíveis está incorporado ao IntelliJ IDEA Community Edition. Você não precisa instalar um plugin dedicado. Em vez disso, você pode usar o recurso de índices compartilhados do IDE.

Android

O IntelliJ IDEA agora suporta todas as atualizações do Android Studio 4.1.1.

Suporte a bnd-maven-plugin

O IntelliJ IDEA agora pode importar configurações de facetas OSGI a partir do bnd-maven-plugin.