O IntelliJ IDEA 2024.3 introduz uma variedade de novos recursos poderosos para elevar sua experiência de desenvolvimento. O IDE agora oferece uma representação da estrutura lógica do seu código, simplifica a experiência de depuração para aplicativos Kubernetes, fornece acesso ao log do Kubernetes em todo o cluster e tira oficialmente o modo K2 da versão Beta. Explore esta página para obter atualizações detalhadas em todas as áreas do IDE.
A janela de ferramentas Structure agora inclui uma estrutura de código Logical juntamente com a estrutura de código familiar Physical. Isso permite que você visualize não apenas as classes, os métodos e os campos, como também os links e as interações entre os componentes do seu projeto. Por exemplo, quando você abre um controlador em um aplicativo Spring Boot, pode ver seus endpoints e os componentes do aplicativo conectados automaticamente. Essa visualização aprimorada ajuda a entender a estrutura do projeto e permite que você navegue pelo projeto seguindo os usos do código e as conexões significativas.
Facilitamos ainda mais a depuração de aplicativos Kubernetes. Você pode ativar a depuração de túneis simplesmente clicando nas reticências ao lado do botão Debug e selecionando Add Tunnel for Remote Debug. Isso torna sua estação de trabalho uma parte virtual do cluster Kubernetes, permitindo que você troque um pod e depure microsserviços localmente com suas ferramentas preferidas. Outros microsserviços interagirão com sua estação de trabalho como se fosse o pod que você está depurando, com acesso total via rede ao resto do cluster. Até mesmo depuradores não compatíveis com Kubernetes funcionam perfeitamente. Além disso, a nova seção Forward Ports na interface do usuário do Kubernetes, na janela da ferramenta Services, simplifica o encaminhamento de portas.
O IntelliJ IDEA agora oferece acesso ao log do Kubernetes em todo o cluster com streaming e correspondência de padrões: ferramentas essenciais para desenvolvedores, bem como equipes de DevOps e SRE. Esse recurso fornece uma visão centralizada de todos os eventos em pods, nós e serviços, ajudando você a identificar problemas rapidamente sem precisar verificar manualmente cada log. O streaming em tempo real permite diagnósticos imediatos, enquanto a correspondência de padrões automatiza a detecção de eventos e erros importantes, como problemas de falta de memória ou atividade de rede incomum. Saiba mais sobre esse recurso e como usá-lo neste post do nosso blog.
No IntelliJ IDEA 2024.3, o modo K2 saiu oficialmente da versão beta e agora está estável e pronto para uso geral. O modo K2 melhora significativamente a estabilidade da análise de código, a eficiência do consumo de memória e o desempenho geral do IDE. O modo K2 agora oferece melhor paridade de recursos com Java e suporte para todos os recursos do Kotlin 2.1. Para explorar seus recursos, acesse Settings/Preferences | Languages & Frameworks | Kotlin.
O IntelliJ IDEA 2024.3 apresenta prompts de IA inline, oferecendo uma maneira perfeita de interagir com o AI Assistant diretamente no editor. Você pode digitar solicitações em linguagem natural, que o AI Assistant interpreta e converte instantaneamente em alterações de código, marcadas em roxo na medianiz para facilitar o rastreamento. Os prompts de IA inline são sensíveis ao contexto, incluindo automaticamente arquivos e símbolos relacionados para uma geração de código mais precisa. Esse recurso é compatível com os formatos de arquivo Java, Kotlin, Scala, Groovy, JavaScript, TypeScript, Python, JSON e YAML e está disponível para todos os assinantes do AI Assistant.
Nesta atualização, tornamos mais transparente e intuitivo o gerenciamento do contexto que o AI Assistant leva em conta em suas sugestões. Uma interface de usuário renovada permite que você visualize e gerencie todos os elementos incluídos como contexto, proporcionando total visibilidade e controle. O arquivo aberto e qualquer código selecionado nele agora são adicionados automaticamente ao contexto, e você pode adicionar ou remover arquivos com facilidade, conforme necessário, personalizando o contexto de acordo com o seu fluxo de trabalho. Além disso, você pode anexar instruções de todo o projeto para orientar as respostas do AI Assistant em toda a sua base de código.
Agora, você pode selecionar o modelo de chat com IA de sua preferência, escolhendo entre Google Gemini, OpenAI ou modelos locais na sua máquina. Essa seleção ampliada permite personalizar as respostas do chat com IA para se adequar ao seu fluxo de trabalho específico, oferecendo uma experiência mais adaptável e personalizada.
Na versão 2024.3, o mecanismo de fluxo de dados do IntelliJ IDEA trata os casos de definição de alias com mais precisão, o que resulta em menos falsos positivos nas inspeções e em uma experiência de programação mais confiável. Esse aprimoramento se aplica tanto ao Kotlin quanto ao Java, permitindo uma análise aprimorada em cenários em que as referências podem apontar para a mesma instância.
O formatador de código do IntelliJ IDEA agora permite que você mantenha linhas em branco entre as anotações e as declarações de campo, um estilo que é comumente usado em entidades JPA para melhorar a legibilidade. Anteriormente, o formatador removia essas linhas por padrão. A nova opção para controlar esse comportamento pode ser encontrada em Settings | Editor | Code Style | Java | Blank Lines.
Com o modo K2 habilitado, o IntelliJ IDEA oferece suporte a um par de recursos de linguagem experimental do Kotlin 2.1. Primeiro, agora você pode usar declarações não locais break
e continue
dentro de lambdas que estão sendo passadas como argumentos para funções inline. O outro recurso recém-suportado é a interpolação múltipla de sinais de cifrão, que facilita o trabalho com strings que incluem símbolos de literais $ e elimina a necessidade de soluções alternativas como ${'$'}
. Isso é particularmente útil ao declarar esquemas JSON no código, por exemplo.
O IntelliJ IDEA agora oferece a opção de usar a inferência de tipo baseada no compilador para chamadas de método inline transparentes no Scala 3. Esse aprimoramento melhora o suporte a bibliotecas que dependem de macros, desbloqueando todos os recursos baseados em tipos (como complementação de código, navegação, dicas de tipos etc.) para códigos baseados em macros. O recurso está atualmente em fase experimental.
O IntelliJ IDEA 2024.3 oferece suporte total para tuplas nomeadas, um novo recurso experimental no Scala 3.5 que se tornará padrão no Scala 3.6. Como o título sugere, tuplas nomeadas permitem que você nomeie os componentes de uma tupla para que eles possam ser acessados com nomes legíveis.
Além disso, o IntelliJ IDEA é melhor no reconhecimento de tipos opacos. Ele já era capaz de reconhecer a palavra-chave opaque
, mas, na prática, o IntelliJ IDEA tratou os tipos opacos da mesma forma que os aliases de tipo padrão (ou seja, transparentes). Os tipos opacos agora são tratados como tipos abstratos, ocultando suas definições subjacentes.
Quando você abre uma pasta que contém um arquivo project.scala
com a configuração do seu projeto, o IntelliJ IDEA agora reconhecerá que se trata de um projeto Scala CLI. Você também pode criar um novo projeto Scala CLI baseado em BSP no assistente New Project e adicionar novos arquivos Scala a ele, da mesma forma que nos projetos baseados em sbt.
O modelo de projeto do IntelliJ IDEA agora representa os projetos sbt com mais precisão, separando os códigos-fonte de produção e de teste em módulos distintos. O novo modelo aprimora o tratamento de dependências e permite configurar opções de compilador separadas para diferentes escopos. Esse recurso está atualmente na versão beta.
Reduzimos o número de situações em que eram necessárias múltiplas compilações. Por exemplo, nos casos em que as refatorações que afetam vários arquivos resultam em muitas solicitações de compilação. Na nova versão, o IntelliJ IDEA analisa e agrupa essas solicitações e, em seguida, emite uma única solicitação com um escopo de compilação mais amplo. Isso reduz a utilização de recursos da CPU e otimiza a experiência de realce do compilador.
Também corrigimos alguns casos extremos em que são exibidos erros duplicados do parser, tanto do parser do IntelliJ IDEA Scala quanto do compilador.
Com base no progresso feito na versão 2024.2, estamos aumentando o número de recursos essenciais que estão disponíveis enquanto o modelo do projeto está sendo criado e indexado. Na versão 2024.3, as verificações ortográficas e gramaticais estão acessíveis mesmo quando a indexação está em andamento. Isso permite que você capture erros, como aqueles em documentos Markdown e tags de documentação, sem esperar que a indexação seja concluída.
O widget Run atualizado permite que você inicie várias configurações ao mesmo tempo, mantendo pressionada a tecla Ctrl e clicando no ícone Debug no pop-up. Além disso, o widget exibe controles para todas as configurações em execução, fornecendo uma visão geral clara dos seus status e simplificando o gerenciamento.
Aumentamos o limite padrão de abas no editor para 30. Isso significa que agora você pode manter mais abas abertas antes que o IDE comece a fechar aquelas usadas menos recentemente. Você pode controlar essa configuração em Settings | Editor | General | Editor Tabs.
Otimizamos o posicionamento da ação Rename no menu de contexto quando ela é chamada em elementos no editor e na janela de ferramentas Project. A ação agora está no nível superior, tornando mais fácil para usuários que frequentemente usam o mouse renomear rapidamente arquivos, variáveis e outros elementos.
Por padrão, o IntelliJ IDEA agora realçará automaticamente todas as instâncias do texto que você selecionar em um arquivo. Isso facilita o rastreamento de onde o texto selecionado aparece no seu código. Se preferir o comportamento anterior, você pode desabilitar esse recurso em Settings | Editor | General | Appearance.
Facilitamos a distinção entre mensagens e arquivos i18n graças aos novos ícones dedicados. Essa atualização o ajuda a encontrar e gerenciar rapidamente os arquivos de localização em seus projetos, facilitando a diferenciação entre eles e os arquivos de configuração.
O pop-up New para adicionar arquivos às raízes de fontes Java agora mostra apenas as opções mais relevantes, reduzindo o excesso de informação e simplificando seu workflow. Se preferir a lista de templates anterior, você poderá restaurá-la facilmente acessando Settings | Advanced Settings | Java.
Habilitamos a barra de ferramentas flutuante para arquivos JSON, XML e YAML, o que facilita o acesso a ações baseadas em contexto e orientadas por IA. Basta selecionar qualquer trecho de código e a barra de ferramentas aparecerá com as ações disponíveis.
O novo terminal agora oferece processamento de comandos aprimorado, e o alinhamento de sua interface de usuário foi refinado, proporcionando uma experiência mais suave e intuitiva. O terminal agora é mais ágil e processa os comandos mais rapidamente. A alternância de sessão agora é perfeita, com retenção consistente de estado entre as abas para garantir que seu workflow não seja interrompido. A complementação automática acessa nomes de comandos, sinalizadores e caminhos mais rapidamente, reduzindo a digitação manual. Também introduzimos opções adicionais de personalização, inclusive para estilos de comando, nomes de sessão e variáveis de ambiente, proporcionando maior controle sobre o ambiente do terminal.
O AI Assistant agora ajuda a gerar títulos e descrições precisos para suas solicitações de pull e merge diretamente do IDE, simplificando seu workflow e garantindo que suas descrições sejam claras e concisas.
O recurso Find in Files foi aprimorado com um novo escopo de pesquisa, Project Files Excluding Git-Ignored. Esta opção exclui dos resultados das suas pesquisas quaisquer arquivos que constem nos arquivos .gitignore
, ajudando você a se concentrar apenas no código que for relevante ao fazer pesquisas no seu projeto.
Agora você pode gerenciar verificações em segundo plano durante o processo de commit com a nova opção Run advanced checks after a commit is done, em Settings | Version Control | Commit. Essa configuração permite decidir se testes e inspeções devem ser executados depois de você fazer um commit. Se quiser que essas verificações sejam concluídas antes do commit, basta desabilitá-las.
A tela Welcome agora mostra o nome do branch, o que ajuda a manter a organização ao lidar com várias versões do projeto e permite alternar facilmente entre os diretórios de trabalho.
Tornamos o uso do recurso HotSwap mais fácil e intuitivo. Esse recurso permite que você recarregue as classes modificadas durante uma sessão de depuração sem reiniciar o aplicativo. Agora, quando você edita o código com uma sessão ativa do depurador, o IntelliJ IDEA detecta automaticamente as alterações e solicita que você as recarregue por meio de um botão conveniente no editor. Isso simplifica o processo de desenvolvimento, permitindo atualizações de código em tempo real. Lembre-se de que o HotSwap tem algumas limitações, especialmente com alterações estruturais. Você pode saber mais sobre elas aqui.
Agora, você pode definir pontos de interrupção em exceções no editor. Com o cursor posicionado no bloco throw ou catch, abra o menu de contexto via ⌥ no macOS ou Alt+Enter no Windows/Linux e, em seguida, selecione Enable exception breakpoint. Esse novo recurso torna a configuração de pontos de interrupção em exceções mais conveniente, pois não é necessário abrir a caixa de diálogo Breakpoints ou procurar o rastreamento de pilha no console.
O IntelliJ IDEA 2024.3 elimina a necessidade de sobrecarregar seu código com logs e temporizadores quando você deseja medir o tempo de execução de várias linhas. Depois de invocar a ação Run to Cursor, você verá os tempos de execução de cada linha diretamente na janela do editor. Para uma análise mais aprofundada, use as mesmas informações na medianiz para detalhar os métodos chamados, cujas respectivas linhas também serão acompanhadas por dados de tempo de execução.
O IntelliJ IDEA 2024.3 enfrenta os desafios da solução de problemas em código assíncrono, onde as tarefas são agendadas num thread e executadas em outro, com cada uma mantendo seu próprio rastreamento de pilha. O IDE agora imprime um rastreamento de pilha combinado no console, em vez de apenas o rastreamento de pilha do worker, facilitando o rastreamento do fluxo de execução. Esse aprimoramento é ativado por padrão para testes.
O profiler foi aprimorado com um gráfico de uso de memória heap, que é exibido na aba Timeline acima das faixas de thread. Essa nova visualização ajuda a vincular as alocações de memória à atividade do thread, fornecendo informações valiosas que podem revelar possíveis vazamentos de memória e gargalos de desempenho.
Tornamos a compilação paralela o padrão no IntelliJ IDEA 2024.3. Nas versões anteriores, módulos de projeto eram compilados um de cada vez, o que não era a solução mais rápida para projetos grandes. Agora, você verá tempos de compilação mais rápidos para todos os projetos baseados em Maven compilados pelo IDE, com consumo otimizado de CPU e memória.
O IntelliJ IDEA agora detecta automaticamente problemas relacionados a SSL durante as sincronizações e builds do Maven. Se a causa for um certificado não confiável, o IDE se oferecerá para resolver o problema confiando no certificado, sem necessidade de etapas manuais. Essa atualização elimina o trabalho de vasculhar logs para encontrar erros de SSL difíceis de achar e remove a necessidade chata de gerenciar manualmente certificados no repositório de confiança do JDK.
Adicionamos suporte total aos repositórios locais divididos do Maven, um recurso introduzido no Maven 3.9. Ele permite que você separe os repositórios locais de acordo com suas necessidades. Você pode agrupá-los por repositório remoto, armazenar artefatos instalados localmente em uma pasta dedicada ou até mesmo categorizar artefatos por branch usando prefixos especializados. Anteriormente, a ativação de repositórios divididos no Maven podia causar falhas de sincronização no IntelliJ IDEA, levando a problemas de construção ou dependência. Agora, o suporte total garante uma sincronização suave e um gerenciamento eficiente do repositório.
O IntelliJ IDEA agora pode gerar automaticamente métodos de consulta derivados nos repositórios Spring Data. Se precisar de um método de consulta derivado, você não precisará mais atualizar o código-fonte do repositório manualmente. Basta começar a digitar o nome do método onde ele for necessário, e o IntelliJ IDEA sugerirá possíveis nomes de métodos, fornecerá a assinatura do método e tipo de retorno adequado, atualizando o código do repositório para você.
O IntelliJ IDEA 2024.3 introduz a capacidade de acessar variáveis de ambiente diretamente no cliente HTTP usando a sintaxe $env.ENV_VAR
. Isso permite mais flexibilidade ao gerenciar e usar variáveis em suas solicitações e scripts. Além disso, agora é possível importar e executar solicitações, todas de uma vez ou específicas por nome, de um arquivo .http
para outro.
O Ktor 3.0, um kit de ferramentas para criar aplicativos de servidor na JVM com Kotlin, foi lançado com novos recursos e desempenho aprimorado. Essa nova versão adota o Kotlin 2.0 e melhora o desempenho das operações relacionadas à E/S ao mudar para a biblioteca kotlinx-io. Saiba mais.
Simplificamos bastante a experiência de depuração de imagens nativas do GraalVM com containers do Docker, o que significa que agora você pode criar e depurar aplicativos Java nativos em qualquer plataforma. Basta especificar um container para criar seu aplicativo e outro para executá-lo na configuração de execução. Quando o aplicativo estiver em execução, você poderá depurá-lo não apenas no código Java, mas também no nível do assembler. Para facilitar a instalação, fornecemos imagens do Docker pré-configuradas com todos os softwares e bibliotecas necessários.
O suporte ao OpenTofu já está disponível. Essa atualização inclui o preenchimento automático de métodos de criptografia, provedores de chaves e inspeções de referências desconhecidas.
As ações de configuração de execução do Terraform podem ser acessadas em Search Everywhere, e o IDE detecta automaticamente variáveis e locais não utilizados para manter seu código limpo. Os controles para Init
, Validate
, Plan
, Apply
e Destroy
foram aperfeiçoados, e o formulário Run Configuration foi simplificado. Além disso, indicadores de uso aprimorados e avisos sobre recursos não utilizados melhoram a navegação e ajudam a identificar códigos inativos.
Builds de Dev Containers agora funcionam com mais facilidade em mecanismos Docker remotos, evitando erros quando os diretórios locais não podem ser acessados remotamente. A estabilidade na WSL também foi aprimorada, com melhor criação de imagens e conexões confiáveis.
O arquivo devcontainer.json
processa features
de maneira mais consistente, e a nova opção updateRemoteUID
evita conflitos de acesso definindo a identidade de usuário correta. As configurações do IDE em Dev Containers podem ser personalizadas através dos arquivos devcontainer.json
ou por meio do botão Add currently modified settings from IDE, com complementação automática de todas as opções disponíveis.
O IntelliJ IDEA 2024.3 oferece suporte estendido para o Docker Compose. Agora ele prioriza os arquivos .env
na complementação automática de env_file
, tornando a configuração do ambiente mais rápida. Novas opções de build - cache_to
, no_cache
, tags
e platforms
- oferecem maior controle sobre o armazenamento em cache e a segmentação por plataforma. O tratamento aprimorado de depends_on.required
e depends_on.restart
permite um gerenciamento mais eficaz da ordem de inicialização e desligamento dos containers dependentes.
Novas chaves, como deploy.placement.preferences
, deploy.resources.pids
e deploy.resources.reservations.devices
permitem a colocação flexível de serviços e limites de recursos. Builds multicontexto e bullds privilegiadas agora são compatíveis via build.additional_contexts
e build.privileged
.
Opções adicionais incluem configurações cgroup
, mapeamentos extra_hosts
personalizados e healthcheck.start_interval
. Configurações de porta aprimoradas e secrets.environment
agora simplificam o gerenciamento de segredos via variáveis de ambiente.
Continuamos a melhorar a confiabilidade dos projetos hospedados no Subsistema Windows para Linux (WSL) e abertos por desenvolvedores do Windows no IDE. Em particular, introduzimos o suporte a links simbólicos e melhoramos o desempenho ao mudar para soquetes Hyper-V para interação com a WSL. Continuamos a trabalhar em mudanças significativas na plataforma para melhorar o desempenho com ambientes remotos, incluindo a WSL.
O IDE agora oferece suporte para políticas de rede, que são usadas para gerenciar o tráfego de rede entre pods em um cluster. Eles permitem que você defina quais pods podem enviar ou receber tráfego de outros pods, serviços ou fontes externas. Os principais objetivos das políticas de rede são controlar e restringir o tráfego de rede, gerenciar o isolamento de pods, garantir a segurança e regular o acesso externo.
O IntelliJ IDEA agora exclui os resultados de node_modules
por padrão ao usar Find in Files nos diretórios do projeto, reduzindo a confusão de arquivos irrelevantes. Você pode restaurar o comportamento anterior habilitando a opção Search in library files when “Directory” is selected in Find in Files, em Settings | Advanced Settings.
Aprimoramos as dicas no editor para os componentes Vue, Svelte e Astro. A ação Show component usages agora encontra usos em importações e templates de markup. Também adicionamos um filtro Show Component Usages para excluir usos de componentes ao pesquisar referências de arquivos regulares. A refatoração Rename também foi atualizada com uma opção para incluir usos ao renomear um arquivo de componente.
Para projetos com o Angular 19, o IntelliJ IDEA agora assume como padrão o modo standalone para componentes, diretivas e pipes. Correções rápidas foram adicionadas para ajudar na conversão entre componentes standalone e não standalone. Importações standalone não utilizadas podem ser removidas automaticamente durante a reformatação do código ou por meio de uma nova inspeção. O suporte à sintaxe @let
também foi aprimorado.
Aprimoramos a experiência de trabalhar com o AI Assistant no editor. Agora, quando você pede ao AI Assistant para fazer algo com um trecho de código, o editor mostra um diff do código original e do gerado. As sugestões do AI Assistant são destacadas com uma cor diferente e marcadas com o ícone Revert na medianiz. Você também pode editar manualmente a consulta criada, no próprio diff. Suas alterações serão realçadas da mesma maneira. Por exemplo, você pode pedir ao AI Assistant para recuperar mais dados com uma consulta e, em seguida, adicionar uma cláusula ORDER BY
ao resultado gerado.
Algumas novas ações úteis para lidar com erros na execução de consultas SQL com o AI Assistant podem ser acessadas na área de mensagens de erro. Explain with AI abre o chat de IA mostrando um prompt já enviado automaticamente e a resposta do AI Assistant explicando o erro. A ação Fix with AI gera uma correção para o erro de execução da consulta no editor.
JOIN
Em certos casos, não é recomendável executar uma consulta com uma quantidade excessiva de cláusulas JOIN
, pois isso pode causar uma degradação do desempenho. Agora o editor pode identificar e realçar essas consultas. É possível habilitar essa inspeção nas configurações do IDE. Para isso, navegue até Editor | Inspections, expanda a seção SQL e selecione Excessive JOIN count.
Para tornar a paginação da grade mais perceptível em nosso editor de dados, movemos o controle da barra de ferramentas para a parte inferior central do editor de dados.
O IntelliJ IDEA agora oferece suporte à introspecção de fragmentos. Nas versões anteriores, o introspector só podia fazer uma introspecção completa dos esquemas nos bancos de dados MySQL e MariaDB, mas não podia atualizar os metadados de objetos individuais. Toda vez que era executada no console uma instrução de DDL que pudesse modificar um objeto no esquema do banco de dados, o IDE iniciava uma introspecção completa de todo o esquema. Isso era demorado e costumava atrapalhar o fluxo de trabalho.
Agora, o IntelliJ IDEA pode analisar uma instrução DDL, determinar quais objetos podem ser afetados por ela e atualizar somente esses objetos. Se você selecionar um único item no Database Explorer e chamar a ação Refresh, apenas um objeto será atualizado, em vez de todo o esquema, como era antes.
Os usuários do Linux devem observar que, a partir da versão 2024.3, o suporte ao menu global foi descontinuado no IntelliJ IDEA.