Novidades no PyCharm 2024.3

Prompts de IA dentro do editor e assistência à codificação no decorador dataclass_transform

AI Assistant

Prompts de IA dentro do editor

Prompts de IA diretamente no editor

Você pode interagir com o AI Assistant bem onde você faz a maior parte do seu trabalho: no editor. Empacou com um erro no seu código? Precisa adicionar documentação ou testes? Basta começar a digitar a sua solicitação em uma nova linha no editor. O PyCharm reconhecerá automaticamente a sua solicitação em linguagem natural e gerará uma resposta. Se a nova linha estiver indentada, inicie a sua solicitação com o prefixo $ ou ?.

O PyCharm coloca uma marca roxa na medianiz junto às linhas alteradas pelo AI Assistant, para que você possa ver facilmente o que foi alterado.

Se você não gostar da solicitação inicial, poderá gerar uma nova, teclando Tab. Você também pode alterar o texto inicial clicando no bloco roxo na medianiz ou simplesmente teclando Ctrl+\ (Windows) ou Cmd+\ (macOS).

Este recurso está disponível para arquivos de Python, JavaScript, TypeScript, JSON e YAML, além de notebooks do Jupyter.

Refine o contexto do seu prompt in-line

Deseja obter assistência para um argumento específico? Você pode restringir o quanto quiser o contexto usado pelo AI Assistant para sua resposta. Basta posicionar o cursor no contexto relevante, digitar o símbolo $ ou ? e começar a escrever. O PyCharm reconhecerá o seu prompt e considerará o contexto atual para suas sugestões.

Geração de documentação

Agora o PyCharm mostra a dica de inserção Generate with AI Assistant ao detectar o formato docstring. Este recurso ajuda você a usar a IA para acelerar o processo de geração de documentação.

Gerenciamento aprimorado do contexto

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.

Opção para escolher um provedor de modelo de chat

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.

Execução de código do chat de IA no console do Python

Faça iterações mais rápidas do código sugerido pelo AI Assistant, simplesmente executando trechos de código do chat de IA no console do Python. Clique no botão verde Run no canto superior direito da janela do código para verificar como funciona o trecho sugerido de código.

Acesso instantâneo à documentação do PyCharm

Agora o AI Assistant pode sugerir a melhor maneira de executar uma determinada tarefa no PyCharm, com base na última versão da documentação do IDE. Use o comando /docs para obter dicas sob medida para realizar as suas tarefas da forma mais eficiente.

Capacidade de reconhecer dataframes e variáveis em prompts

O AI Assistant agora é capaz de trabalhar com dataframes e variáveis em seus notebooks. Basta usar # antes do nome de uma dataframe ou variável e o AI Assistant ajudará você a analisá-la. O AI Assistant tem acesso direto ao resumo e às estatísticas do dataframe, o que permite que ele forneça os melhores resultados possíveis.

Você também pode navegar até a visualização Variables da janela de ferramentas Jupyter diretamente a partir do chat. Basta clicar no ícone de clipe de papel na menção do dataframe ou da variável.

Capacidade de converter loops for em compreensões de lista

Refatore seu código com mais rapidez com o AI Assistant, que agora pode ajudar você a transformar loops for gigantes em compreensões de lista. Esse recurso funciona para todos os loops for, incluindo loops aninhados e while.

Tratamento de erros de SQL pelo AI Assistant

Implementamos algumas ações úteis para o tratamento de erros de execução de consultas de SQL pelo AI Assistant. Agora, em cada mensagem de erro, o PyCharm mostra duas ações na lateral direita da mensagem: Explain with AI e Fix with AI.

Explain with AI abre o chat de IA, envia um prompt automático e dá a você a explicação do erro pelo AI Assistant.

Fix with AI gera uma correção do erro de execução da consulta, dentro do editor.

Essas duas novas ações funcionam de forma semelhante à das ações de intenção Fix SQL Problem Under Caret e Explain SQL Problem Under Caret.

Este recurso precisa que você anexe o esquema do banco de dados para poder sugerir explicações e correções apropriadas.

Complementação local de código em múltiplas linhas por IA PyCharm Professional

Agora o PyCharm Professional oferece sugestões de complementação de código em múltiplas linhas por IA executada localmente, com base no modelo de aprendizado de máquina usado na complementação de código em linhas inteiras, exclusivo da JetBrains. Observe que não usamos os seus dados para treinar esse modelo.

Tipicamente, a complementação local de código em múltiplas linhas gera 2–4 linhas de código em situações nas quais ela pode prever a próxima etapa lógica na sequência — por exemplo, dentro de loops, ao processar condições ou ao completar padrões comuns de código e trechos de código reutilizável.

Python

Assistência à codificação no decorador dataclass_transform (PEP 681)

Quando você estiver trabalhando com classes de dados personalizadas criadas através de bibliotecas que usem o decorador dataclass_transform, agora o IDE oferece a mesma assistência inteligente à codificação disponível para classes-padrão de dados. Por exemplo, você pode aproveitar o recurso de complementação de código para atributos e a inferência de tipos para assinaturas de construtores.

Notebooks do Jupyter PyCharm Professional

Instalação automática de vários pacotes

O PyCharm 2024.3 facilita a instalação dos pacotes que forem importados no seu código. Está disponível uma nova correção rápida para instalações automáticas em volume, permitindo que você baixe e instale vários pacotes com um só clique.

Capacidade de executar linhas específicas no console do Jupyter

Agora o PyCharm permite que você execute apenas linhas selecionadas de código diretamente no console do Jupyter, sem ter que executar a célula inteira. Este recurso facilita a depuração ou verificação rápida das saídas de trechos específicos de código, dando mais flexibilidade e eficiência ao seu fluxo de trabalho.

Capacidade de abrir saídas de tabelas do Jupyter na janela Data View

Visualize saídas de tabelas do Jupyter na janela de ferramentas Data View, para acessar recursos poderosos, como mapas de calor, formatação, recortes e funções de IA para análises incrementadas de dataframes. Basta clicar no ícone Open in Data View para começar a usar.

Renomeação in-line de variáveis e funções locais

Agora você pode renomear variáveis, funções e símbolos locais diretamente no editor, sem ter que abrir um diálogo. Basta selecionar a entidade que você deseja renomear e teclar Shift+F6.

Data View PyCharm Professional

Filtragem de dados sem código

Agora, você pode filtrar os dados na janela de ferramentas Data View e em dataframes sem escrever uma linha sequer de código. Clique no ícone Filter no canto superior direito da janela de ferramentas ou em uma dataframe e depois selecione as opções de filtragem que quiser usar. Os resultados do filtro podem ser observados imediatamente na mesma janela.

Essa funcionalidade funciona com todas as frameworks Python compatíveis, incluindo pandas, Polars, NumPy, PyTorch, TensorFlow e Hugging Face Datasets.

Experiência do usuário

Realce das ocorrências de um texto selecionado

Por padrão, o PyCharm agora realçará automaticamente todas as instâncias do texto que você selecionar em um arquivo. Isso facilita verificar onde o texto selecionado aparece em todo o seu código. Você pode personalizar o recurso em Settings | Editor | General | Appearance.

Verificações ortográficas e gramaticais durante a indexação

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.

Optimized placement for the Rename action

Otimizamos a posição da ação Rename no menu de contexto, quando este for invocado para 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.

Widget Run: opção para iniciar várias configurações simultaneamente

O widget Run atualizado permite que você inicie várias configurações simultaneamente, 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.

Aumento do limite padrão de abas

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.

Depurador

Especificação da porta de depuração PyCharm Professional

Agora o PyCharm permite que você especifique uma única porta de depuração para todas as comunicações, simplificando a depuração em ambientes restritos, como o Docker ou o WSL. Depois de especificar a porta nas configurações do depurador, este será executado como um servidor e todas as comunicações entre ele e o IDE passarão pela porta especificada.

Bancos de dados PyCharm Professional

Barra de ferramentas flutuante para a paginação

Para tornar mais fácil perceber a paginação em grade no editor de dados, movemos o controle da barra de ferramentas para o meio do rodapé do editor.

Inspeção para excesso de cláusulas 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. Você pode 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.

Introspecção de fragmentos e atualização inteligente das propriedades de objetos no MySQL e MariaDB

Agora o PyCharm permite a 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 PyCharm pode analisar uma instrução de DDL, determinar quais objetos podem ser afetados por ela e atualizar apenas 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.

Desenvolvimento Web PyCharm Professional

Melhoria na navegação e renomeação de componentes de frameworks

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 modelos de marcação. 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.

Resultados de pesquisa mais limpos para diretórios

O PyCharm 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.

VCS

Geração do título e da descrição em solicitações de pull e merge

Agora o AI Assistant ajuda a gerar títulos e descrições corretos para as suas solicitações de pull e merge, diretamente do IDE, otimizando o seu fluxo de trabalho e garantindo que as suas descrições sejam claras e concisas.

Atualizações no Find in Files

O recurso Find in Files ganhou 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.

Opção para desabilitar verificações pré-commit em segundo plano

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.

Frameworks e tecnologias PyCharm Professional

Atualizações no cliente de HTTP

O PyCharm 2024.3 introduz a capacidade de acessar variáveis de ambiente diretamente do cliente de HTTP, usando a sintaxe $env.ENV_VAR. Isso permite mais flexibilidade ao gerenciar e usar variáveis nas suas solicitações e scripts. Além disso, agora também é possível executar solicitações a partir de um arquivo .http incluído — todas de uma vez ou uma solicitação específica, pelo nome — e ignorar as variáveis.

Suporte aprimorado para Dev Containers

As compilações 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 <0>updateRemoteUID evita conflitos de acesso definindo a identidade de usuário correta. As configurações do IDE em Dev Containers podem ser personalizadas por meio 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.

Melhorias no novo terminal Beta

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 avisos mais rapidamente. A alternância de sessão agora é perfeita, com retenção consistente de estado entre as guias 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 entrada manual. Também introduzimos opções adicionais de personalização, inclusive para estilos de prompt, nomes de sessão e variáveis de ambiente, proporcionando maior controle sobre o ambiente do terminal.

Logs de clusters Kubernetes

O PyCharm 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.

Melhorias no Docker Compose

O PyCharm 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 compilação - cache_to, no_cache, tags e <0>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 contêineres 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. Compilações com vários contextos e compilações 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 por meio de variáveis de ambiente.

Aprimoramentos de OpenTofu e Terraform

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.