Nouveautés de PyCharm 2024.3

Prompts d'IA inline et assistance au codage pour le décorateur dataclass_transform

AI Assistant

Prompts d'IA inline

Prompts d'IA directement dans l'éditeur

Vous pouvez interagir avec l'AI Assistant là où vous travaillez le plus souvent : dans l'éditeur. Vous vous retrouvez bloqué par une erreur dans votre code ? Vous avez besoin d'ajouter de la documentation ou des tests ? Saisissez simplement votre requête sur une nouvelle ligne dans l'éditeur. PyCharm interprète automatiquement vos requêtes en langage naturel et génère une réponse. Si la nouvelle ligne est en retrait, utilisez le symbole $ ou ? comme préfixe de votre requête.

PyCharm place une marque en violet dans la gouttière à côté des lignes modifiées par l'AI Assistant pour vous permettre de voir facilement ce qui a été mis à jour.

Si vous n'êtes pas satisfait de la suggestion initiale, vous pouvez en générer une nouvelle en appuyant sur la touche Tab. Vous pouvez également ajuster l'entrée initiale en cliquant sur le bloc violet dans la gouttière ou en utilisant Ctrl+\ (Windows) ou Cmd+\ (macOS).

Cette fonctionnalité est disponible pour les fichiers Python, JavaScript, TypeScript, JSON et YAML, et pour les notebooks Jupyter.

Précisez le contexte de votre prompt inline

Vous avez besoin d'assistance pour un argument spécifique ? Vous pouvez réduire le contexte que l'AI Assistant va utiliser pour ses réponses autant que vous le souhaitez. Placez simplement le curseur dans le contexte souhaité, tapez le symbole $ ou ? et commencez à écrire. PyCharm reconnaîtra votre prompt et prendra le contexte actuel en compte pour ses suggestions.

Générer de la documentation

PyCharm affiche maintenant l'indication inline Generate with AI Assistant lorsqu'il détecte le format docstring. Cette fonctionnalité permet d'utiliser l'IA pour accélérer le processus de génération de documentation.

Gestion du contexte améliorée

Avec cette mise à jour, nous avons amélioré la transparence et l’intuitivité de la gestion du contexte pris en compte par l’AI Assistant pour ses suggestions. Une interface utilisateur remaniée vous permet d'afficher et de gérer chaque élément inclus en tant que contexte, pour une visibilité et un contrôle complets. Le fichier ouvert et tout le code sélectionné qu'il contient sont désormais automatiquement ajoutés au contexte, et vous pouvez facilement ajouter ou supprimer des fichiers selon vos besoins, en personnalisant le contexte pour l'adapter à votre workflow. Vous pouvez en outre joindre des instructions à l’échelle du projet pour cadrer les réponses de l’AI Assistant dans toute votre base de code.

Possibilité de choisir un fournisseur de modèle de chat

Vous pouvez à présent sélectionner votre modèle de chat d’IA préféré, qu'il s'agisse de Google Gemini, d'OpenAI ou de modèles locaux sur votre ordinateur. Cette sélection étendue vous permet de personnaliser les réponses du chat par IA en fonction de votre workflow et de bénéficier d'une expérience plus flexible et adaptée.

Exécution du code depuis le chat par IA dans la console Python

Itérez plus rapidement sur le code suggéré par l'AI Assistant en exécutant simplement des extraits de code depuis le chat par IA dans la console Python. Cliquez sur le bouton vert Run dans le coin supérieur droit de l'extrait de code suggéré pour voir vérifier comment il fonctionne.

Accès instantané à la documentation de PyCharm

L'AI Assistant peut désormais suggérer la meilleure façon d'effectuer une tâche donnée dans PyCharm en fonction du dernier état de la documentation de PyCharm. Utilisez la commande /docs pour obtenir des conseils personnalisés sur la façon la plus efficace d'exécuter vos tâches.

Capacité de reconnaissance des dataframes et des variables dans les prompts

L'AI Assistant est désormais capable de travailler avec des dataframes et des variables dans vos notebooks. Placez simplement # avant le nom d'un dataframe ou d'une variable et l'AI Assistant vous aidera à l'analyser. L'AI Assistant a un accès direct au résumé et aux statistiques du dataframe, ce qui lui permet de vous fournir les meilleurs résultats possibles.

De plus, vous pouvez accéder à la vue Variables de la fenêtre d'outil Jupyter directement depuis le chat. Cliquez simplement sur l'icône trombone dans votre mention du dataframe ou de la variable.

Possibilité de convertir des boucles for en compréhensions de listes

Refactorisez votre code plus rapidement avec l'AI Assistant, qui peut désormais vous aider à transformer d'énormes boucles for en compréhensions de listes. Cette fonctionnalité est disponible pour toutes les boucles for, y compris pour les boucles imbriquées et les boucles while.

Traitement des erreurs SQL par l'AI Assistant

Nous avons implémenté deux actions pratiques pour le traitement des erreurs d'exécution des requêtes SQL avec l'AI Assistant. Dorénavant, pour chaque message d'erreur, PyCharm affichera deux actions dans la partie droite du message d'erreur : Explain with AI et Fix with AI.

Explain with AI ouvre le chat IA, envoie un prompt automatique et vous donne l'explication de l'erreur générée par l'AI Assistant.

Fix with AI génère un correctif pour l'erreur d'exécution de la requête dans l'éditeur.

Ces deux nouvelles actions fonctionnent de la même façon que les actions d'intention Fix SQL Problem Under Caret et Explain SQL Problem Under Caret.

L'utilisation de cette fonctionnalité requiert d'attacher le schéma de base de données pour la suggestion des explications et des correctifs appropriés.

Complétion de code multiligne locale assistée par IA PyCharm Professional

PyCharm Professional fournit maintenant des suggestions de saisie semi-automatique de code multiligne locale assistée par IA, qui sont basées sur le LLM propriétaire de JetBrains utilisé pour la saisie semi-automatique de ligne entière de code. Veuillez noter que nous n'utilisons pas vos données pour entraîner le modèle.

La saisie semi-automatique de code multiligne locale génère de 2 à 4 lignes de code dans les cas où elle peut prédire la prochaine séquence d'étapes logiques, notamment dans les boucles, lors du traitement de conditions ou lors de la saisie semi-automatique de schémas de code communs et de sections de code standard.

Python

Assistance au codage pour le décorateur dataclass_transform (PEP 681)

Lorsque vous travaillez sur des classes de données personnalisées créées au moyen de bibliothèques utilisant le décorateur dataclass_transform, l'IDE vous fournit l'assistance au codage intelligente qu'il offrait déjà pour les classes de données standard. Vous bénéficiez notamment de la saisie semi-automatique de code pour les attributs et de l'inférence de type pour les signatures de constructeur.

Notebook Jupyter PyCharm Professional

Installation automatique pour plusieurs paquets

PyCharm 2024.3 facilite l'installation des paquets qui sont importés dans votre code. Un nouveau correctif rapide est disponible pour les installations automatiques groupées, ce qui vous permet de télécharger et d'installer plusieurs paquets en un clic.

Possibilité d'exécuter des lignes spécifiques dans la console Jupyter

PyCharm vous permet d'exécuter les lignes de code sélectionnées directement dans la console Jupyter sans avoir à exécuter l'ensemble de la cellule. Cette fonctionnalité permet de déboguer ou de vérifier rapidement les sorties de sections spécifiques du code, afin de rendre votre workflow encore plus flexible et efficace.

Possibilité d'ouverture des sorties de tables Jupyter dans la fenêtre Data View

Affichez les sorties des tables Jupyter dans la fenêtre d'outil Data View pour accéder à des fonctionnalités puissantes, telles que les cartes thermiques, le formatage, les découpages et les fonctions d'IA, pour une meilleure analyse des dataframes. Pour utiliser ces fonctionnalités, cliquez simplement sur l'icône Open in Data View.

Renommage inline des variables locales et des fonctions

Vous pouvez renommer les variables locales, les fonctions et les symboles directement dans l'éditeur, sans avoir à ouvrir une boîte de dialogue. Sélectionnez simplement l'entité à renommer et appuyez sur Maj+F6.

Data View PyCharm Professional

Filtrage des données sans écriture de code

Vous pouvez désormais filtrer les données dans la fenêtre d'outil Data View et dans les dataframes sans écrire une seule ligne de code. Cliquez sur l'icône Filter située en haut à droite de la fenêtre d'outil ou d'un dataframe, puis sélectionnez les options de filtrage que vous souhaitez utiliser. Les résultats du filtre s'affichent immédiatement dans la même fenêtre.

Cette fonctionnalité s'applique à tous les frameworks Python pris en charge, parmi lesquels pandas, Polars, NumPy, PyTorch, TensorFlow et Hugging Face Datasets.

Expérience utilisateur

Mise en évidence des occurrences du texte sélectionné

Par défaut, PyCharm met désormais automatiquement en évidence toutes les instances du texte que vous sélectionnez dans un fichier. Cela facilite le repérage des endroits où le texte sélectionné apparaît dans votre code. Vous pouvez la personnaliser dans Settings | Editor | General | Appearance.

Vérifications orthographiques et grammaticales lors de l'indexation

En nous appuyant sur les progrès réalisés dans la version 2024.2, nous augmentons le nombre de fonctionnalités essentielles disponibles pendant le build et l'indexation du modèle de projet. Dans la version 2024.3, les vérifications orthographiques et grammaticales sont accessibles même pendant l'indexation. Cela vous permet de détecter des erreurs (par exemple dans les documents Markdown et les balises de documentation) sans attendre la fin de l'indexation.

Emplacement optimisé pour l'action Rename

Nous avons optimisé l'emplacement de l'action Rename dans le menu contextuel lorsqu'elle est appelée sur des éléments dans l'éditeur et la fenêtre d’outils Project. L'action se trouve désormais en haut, ce qui permet aux utilisateurs qui utilisent beaucoup la souris de renommer rapidement les fichiers, variables et autres éléments.

Widget Run : option pour lancer plusieurs configurations simultanément

Le widget Run mis à jour vous permet de lancer plusieurs configurations simultanément en appuyant sur Ctrl tout en cliquant sur l'icône Debug dans la fenêtre contextuelle. De plus, le widget affiche des contrôles pour toutes les configurations en cours d’exécution, ce qui vous donne un aperçu clair de leur état et simplifie la gestion.

Augmentation de la limite du nombre d'onglets ouverts par défaut

Nous avons augmenté la limite par défaut pour le nombre d'onglets ouverts dans l'éditeur, qui est maintenant de 30. Vous pouvez ainsi garder davantage d'onglets ouverts avant que l'IDE ne commence à fermer ceux qui sont restés inutilisés le plus longtemps. Vous pouvez contrôler ce paramètre dans Settings | Editor | General | Editor Tabs.

Débogueur

Spécification du port de débogage PyCharm Professional

PyCharm vous permet de spécifier un port de débogueur unique pour toutes les communications, ce qui simplifie le débogage dans des environnements restreints comme Docker ou WSL. Une fois le port défini dans les paramètres du débogueur, ce dernier s'exécute en tant que serveur et toutes les communications entre lui et l'IDE transitent par le port spécifié.

Bases de données PyCharm Professional

Barre d'outils de pagination flottante

Afin de rendre la pagination de la grille plus visible dans l'éditeur de données, nous avons déplacé le contrôle de la barre d'outils vers le centre de la partie inférieure de l'éditeur.

Inspection pour un nombre excessif de clauses JOIN

Dans certains cas, l'exécution d'une requête contenant un nombre excessif de clauses JOIN n'est pas recommandée car cela peut nuire aux performances. L'éditeur peut désormais identifier et mettre en évidence ces requêtes. Vous pouvez activer cette inspection dans les paramètres de l'IDE. Pour ce faire, allez dans Editor | Inspections, développez la section SQL et sélectionnez Excessive JOIN count.

Introspection partielle et actualisation intelligente pour MySQL et MariaDB

PyCharm prend désormais en charge l'introspection fragmentaire. Auparavant, l'introspecteur ne pouvait effectuer qu'une introspection complète des schémas dans les bases de données MySQL ou MariaDB et ne pouvait pas actualiser les métadonnées d'un seul objet. Chaque fois qu'une instruction DDL était exécutée dans la console et que cette exécution pouvait modifier un objet dans le schéma de la base de données, l'IDE lançait une introspection complète de l'ensemble du schéma. Cela prenait beaucoup de temps et perturbait souvent le workflow.

Maintenant, PyCharm est en mesure d'analyser une instruction DDL, de déterminer quels objets sont affectés par cette dernière et de n'actualiser que ces objets. Si vous sélectionnez un seul élément dans Database Explorer et que vous appelez l'action Refresh, un seul objet sera actualisé, au lieu du schéma entier comme c'était le cas auparavant.

Développement web PyCharm Professional

Amélioration de la navigation et du renommage des composants de frameworks

Nous avons amélioré les indications dans l'éditeur pour les composants Vue, Svelte et Astro. L'action Show component usages recherche désormais les utilisations dans les importations et les modèles de balisage. Nous avons également ajouté un filtre Show Component Usages pour exclure les utilisations des composants lors de la recherche de références de fichiers standard. La refactorisation Rename a également été dotée d’une option permettant d'inclure les utilisations lors du renommage d'un fichier de composant.

Résultats de recherches plus propres pour les répertoires

PyCharm exclut désormais les résultats node_modules par défaut lors de l'utilisation deFind in Files dans les répertoires de projets, ce qui réduit l'encombrement dû aux fichiers non pertinents. Vous pouvez restaurer le comportement précédent en activant l’option Search in library files when “Directory” is selected in Find in Files dans Settings | Advanced Settings.

VCS

Génération du titre et de la description pour les requêtes pull et merge

L'AI Assistant permet désormais de générer des titres et des descriptions précis pour vos requêtes pull et merge depuis l'IDE, ce qui simplifie votre workflow et garantit que vos descriptions soient claires et concises.

Mises à jour pour Find in Files

La fonctionnalité Find in Files a été améliorée avec l'ajoute d'une nouvelle portée de recherche, Project Files Excluding Git-Ignored. Cette option exclut de vos résultats de recherche tous les fichiers ignorés dans les fichiers .gitignore, pour vous aider à vous focaliser uniquement sur le code pertinent lors de vos recherches dans votre projet.

Option de désactivation des vérifications préalables au commit en arrière-plan

Vous pouvez désormais gérer les vérifications en arrière-plan pendant le processus de commit grâce à la nouvelle option Run advanced checks after a commit is done sous Settings | Version Control | Commit. Ce paramètre vous permet de décider si les tests et les inspections doivent être exécutés après l’envoi d’un commit. Si vous souhaitez que ces vérifications soient effectuées avant le commit, il vous suffit de le désactiver.

Frameworks et technologies PyCharm Professional

Mises à jour pour le client HTTP

PyCharm 2024.3 introduit la possibilité d'accéder aux variables d'environnement directement depuis le client HTTP au moyen de la syntaxe $env.ENV_VAR. Cela permet davantage de flexibilité pour la gestion et l'utilisation de variables dans vos requêtes et vos scripts. De plus, il est désormais possible d'exécuter les requêtes depuis un fichier .http inclus, soit toutes ensemble, soit via une requête spécifique par nom, et de remplacer les variables.

Prise en charge améliorée des conteneurs de développement

Les builds des conteneurs de développement fonctionnent désormais de façon plus fluide avec les moteurs Docker distants, ce qui évite des erreurs lorsque les répertoires locaux ne sont pas accessibles à distance. La stabilité dans WSL a également été optimisée, avec des builds d'images améliorés et des connexions fiables.

Le fichier devcontainer.json traite les features de manière plus cohérente et la nouvelle option <0>updateRemoteUID évite les conflits d'accès en configurant la bonne identité d’utilisateur. Vous pouvez personnaliser les paramètres de l’IDE dans les conteneurs de développement à l’aide des fichiers devcontainer.json ou du bouton Add currently modified settings from IDE, en bénéficiant de la saisie semi-automatique pour toutes les options disponibles.

Améliorations pour le nouveau terminal Bêta

Le nouveau terminal offre désormais un traitement des commandes amélioré et la cohérence de son interface utilisateur a été affinée, pour une expérience plus fluide et plus intuitive. Le terminal est plus réactif et traite les prompts plus rapidement. Le changement de session est désormais transparent, avec une conservation cohérente de l'état dans tous les onglets pour garantir que votre workflow ne soit pas interrompu. La saisie semi-automatique accède plus rapidement aux noms de commandes, aux flags et aux chemins, ce qui réduit la saisie manuelle. Nous avons également introduit des options de personnalisation supplémentaires, notamment pour les styles de prompts, les noms de sessions et les variables d'environnement, afin de vous offrir un meilleur contrôle sur l’environnement de votre terminal.

Journaux du cluster Kubernetes

PyCharm offre désormais un accès aux journaux Kubernetes à l'échelle du cluster, avec streaming et correspondance de schémas, des outils essentiels pour les développeurs ainsi que pour les équipes DevOps et SRE. Cette fonctionnalité offre une vue centralisée de tous les événements sur les pods, nœuds et services, et vous aide à identifier rapidement les problèmes sans avoir à contrôler manuellement chaque journal. Le streaming en temps réel permet des diagnostics immédiats, tandis que la correspondance de schémas automatise la détection d'événements et d'erreurs essentiels, tels que des problèmes d'insuffisance de mémoire ou une activité réseau inhabituelle. Apprenez-en plus sur cette fonctionnalité et découvrez comment l'utiliser dans cet article de blog.

Améliorations pour Docker Compose

PyCharm 2024.3 étend la prise en charge de Docker Compose. Il donne désormais la priorité aux fichiers .env dans la saisie semi-automatique env_file , ce qui accélère la configuration de l'environnement. Les nouvelles options de build cache_to, no_cache, tags et <0>platforms, offrent davantage de contrôle sur la mise en cache et le ciblage des plateformes. L'amélioration du traitement de depends_on.required et depends_on.restart permet une gestion plus efficace de l'ordre de démarrage et d'arrêt des conteneurs dépendants.

De nouvelles clés telles que deploy.placement.preferences, deploy.resources.pidset deploy.resources.reservations.devices permettent un placement flexible des services et limites des ressources. Les builds multicontextes et les builds privilégiés sont désormais pris en charge via build.additional_contexts et build.privileged.

Parmi les options supplémentaires, vous trouverez les configurations cgroup, les mappages extra_hosts personnalisés et healthcheck.start_interval. Les paramètres de port améliorés et secrets.environment simplifient la gestion des secrets à l’aide des variables d'environnement.

Améliorations pour OpenTofu et Terraform

La prise en charge d'OpenTofu est désormais disponible. Cette mise à jour inclut la saisie semi-automatique des méthodes de chiffrement, des fournisseurs de clés et des inspections pour les références inconnues.

Les actions de configuration d'exécution de Terraform sont accessibles via Search Everywhere, et l’IDE détecte automatiquement les variables et les éléments locaux inutilisés pour garder votre code propre. Nous avons affiné les contrôles pour Init, Validate, Plan, Apply et Destroy et simplifié le formulaire Run Configuration. De plus, les indicateurs d'utilisation améliorés et les avertissements pour les ressources inutilisées améliorent la navigation et vous aident à identifier le code inactif.