Nouveautés de CLion

CLion 2021.1 améliore l'expérience d'analyse du code avec l'analyse des flux de données en mode global, la prise en charge étendue de MISRA et l'intégration de Clazy pour les projets Qt. Dans le débogueur, GDB et LLDB proposent maintenant les même fonctionnalités pour le débogage Core Dump. Enfin, le mode à distance dispose d'un éventail de fonctionnalités élargi et fonctionne de manière cohérente sur plusieurs modèles de projets.

Data Flow Analysis

L'analyse du flux de données (DFA) suit le flux de données dans votre code et détecte les problèmes potentiels sur la base de cette analyse. En plus de l'analyse DFA locale (qui fonctionne au sein d'une fonction isolée), CLion 2021.1 inclut une DFA globale (qui considère l'ensemble d'une unité de traduction d'un programme comme un seul élément pour l'analyse). La DFA globale n'enrichit pas seulement les contrôles déjà existants, elle ajoute également plusieurs nouvelles inspections uniques.

Renforcer les vérifications locales avec l'analyse DFA globale

La liste des inspections actuelles basées sur la DFA qui bénéficient de la DFA globale inclut les éléments suivants :

  • Dangling pointers : détecte les pointeurs susceptibles de rediriger vers une mémoire déjà effacée.
  • Null dereference : détecte le déréférencement de pointeurs pouvant contenir nullptr.
  • Endless loops et Infinite recursion.
  • Constant conditions : détecte les conditions possibles qui sont toujours vraies ou fausses.
  • Unreachable code et Unused values.
  • Escape analysis : détecte les variables contenant des références à des variables locales qui échappent à leur portée.

Nouvelles vérifications de DFA globale

Plusieurs nouvelles inspections ont été ajoutées, qui n'ont de sens que dans le cadre d'une analyse globale – en exécutant une DFA sur l'ensemble de l'unité de traduction d'un programme :

  • Constant function result : signale les fonctions dont la valeur de retour semble toujours être la même constante.
  • Constant parameter : signale les fonctions où un paramètre semble toujours être la même constante.
  • Unreachable function calls : détecte les fonctions dont les sites d'appel ne sont jamais exécutés.

Améliorations des performances

CLion 2021.1 optimise également de nombreuses étapes de la DFA. Les mesures de performance sur les projets Postgres, Eigen et Clangd, entre autres, montrent que la performance globale est bonne et que certaines caractéristiques ont été améliorées (comme le nombre de fichiers dans lesquels l'exécution de la DFA a été interrompue par CLion en raison d'une expiration de délai).

En savoir plus

Analyse dynamique

Couverture des branches

Couverture des branches

En plus de la couverture des lignes, CLion 2021.1 peut à présent calculer également la couverture des branches. Cette méthode prend en compte l'ensemble des branches de chaque structure de contrôle. Exécutez votre application ou vos tests CMake avec la couverture et vérifiez la nouvelle colonne qui a été ajoutée à la fenêtre d'outils Coverage.

La couverture des branches est activée par défaut et peut être paramétrée dansSettings | Build, Execution, Deployment | Coverage, mais elle ne fonctionne qu'avec GCC/gcov ou la version 12.0.0 de LLVM/llvm-cov (ou une version ultérieure).

Analyse dynamique en mode distant

Analyse dynamique en mode distant

Afin d'assurer la cohérence des fonctionnalités sur l'ensemble des chaînes d'outils, des modèles de projets et des configurations, CLion 2021.1 permet à Google Sanitizers, Valgrind Memcheck et Code Coverage de fonctionner avec des chaînes d'outils distantes.

Contrôles MISRA C et C++

CLion 2021.1 ajoute des vérifications supplémentaires des normes MISRA C 2012 et MISRA C++ 2008. La liste complète est maintenue sur notre page Confluence et vous permet de suivre facilement l'avancement.

Saisie semi-automatique Postfix pour C et C++

La saisie semi-automatique postfix pour C et C++ vous permet d'ajouter du code autour d'une expression que vous venez de saisir. Elle peut ajouter une construction de langage fréquemment utilisée à une expression ou passer l'expression comme premier argument d'une fonction libre.

Modèle Postfix

Ajouter une construction de langage à l'expression

Les modèles Postfix peuvent vous aider à utiliser des constructions de langage courantes. Saisissez une expression puis un point, ajoutez l'abréviation du modèle postfix et appuyez ensuite sur la touche d'expansion ou sélectionnez le modèle requis dans la liste de saisie semi-automatique qui apparaît. Le template étendu enveloppera l'expression donnée. Retrouvez la liste complète des modèles dans Settings | Editor | General | Postfix Completion.

Paramètre de fonction postfix

Passer l'expression dans une fonction libre

Utilisez la saisie semi-automatique du code postfix pour passer l'expression que vous venez de saisir comme premier argument d'une fonction libre. Saisissez une expression, puis un point et sélectionnez une fonction libre dans la liste de saisie semi-automatique qui s'affiche.

Améliorations pour les projets Makefile

Prise en charge initiale des projets Makefile distants

Prise en charge initiale des projets Makefile distants

CLion 2021.1 vous permet de travailler avec des projets Makefile sur une machine distante. Changez la chaîne d'outils dans les paramètres Makefile pour désigner une chaîne distante, puis rechargez le projet. Il se synchronisera avec la machine distante. Compilez, exécutez et déboguez votre application à distance à partir de votre CLion local.

Vérifier les problèmes et les limitations connus.

Plugin Makefile Language

Plugin Makefile Language

Le plugin Makefile Language, qui était auparavant un service tiers, est désormais maintenu par l'équipe CLion et intégré à CLion. Le plugin fournit la mise en évidence de la syntaxe make, une documentation rapide, la fonctionnalité Find Usages pour les cibles et plusieurs actions de navigation et de saisie semi-automatique du code pour Makefile.

Améliorations pour les projets CMake

Partager des profils CMake dans un VCS

Partager des profils CMake dans un VCS

Les paramètres du profil CMake dans CLion sont maintenant stockés dans un fichier cmake.xml au sein du répertoire .idea et peuvent être partagés dans le VCS en même temps que le projet. Il vous suffit de sélectionner l'option Share dans Settings | Build, Execution, Deployment | CMake.

CLion 2021.1 intègre CMake 3.19. En plus des autres changements qu'elle introduit, il s'agit de la première version de CMake à prendre en charge la puce Apple Silicon (M1).

Les fonctionnalités de CMake 3.19 pour CUDA sont désormais prises en charge dans CLion, ce qui inclut la saisie semi-automatique pour quelques nouvelles variables CMake.

Améliorations pour les projets Qt

Intégration de Clazy

Intégration de Clazy

Clazy, un analyseur de code statique orienté Qt, est désormais intégré au moteur basé sur Clangd de CLion. CLion utilise actuellement la version 1.8. Les contrôles s'affichent dans l'éditeur et des correctifs rapides sont également disponibles.

Les utilisateurs peuvent configurer le degré de sévérité de CLion et le niveau des contrôles Clazy dans Settings | Editor | Inspections | C/C++ | General | Clazy.

Raccourcis clavier QtCreator

Raccourcis clavier QtCreator

Pour celles et ceux qui sont habitué·es aux associations de touches dans QtCreator, CLion intègre maintenant les raccourcis clavier QtCreator. Vous pouvez choisir de les utiliser dans Settings ou via une action Quick Switch Scheme (Ctrl+`).

Débogueur

Set Execution Point dans le désassemblage

Set Execution Point dans le désassemblage

L'action Set Execution Point vous permet de passer directement à une ligne de code quelconque dans l'éditeur pendant une session de débogage et d'y définir le point d'exécution en ignorant toutes les autres commandes intermédiaires. Elle fonctionne désormais dans la vue de désassemblage, ce qui vous permet de déplacer le point d'exécution tout en parcourant progressivement le code d'assemblage.

Débogage des core dumps

Débogage des core dumps

Lors du débogage des core dumps dans CLion 2021.1, les utilisateurs peuvent désormais définir sysroot dans la configuration d'exécution correspondante. Cela aidera à localiser les symboles de la bibliothèque lors du débogage des core dumps à partir de binaires créés sur d'autres systèmes.

La définition explicite des fichiers de symboles lors du débogage d'un core dump pour un binaire non symbolisé avec LLDB fournit désormais également les informations nécessaires sur les symboles à CLion. Avec ce correctif, GDB et LLDB proposent maintenant les même fonctionnalités pour le débogage Core Dump!

Terminal distant

Terminal distant

Une nouvelle action Tools | Open Remote Host Terminal ouvre le répertoire du projet sur l'hôte distant, s'il existe. L'hôte distant correspond au profil distant actuellement sélectionné ou, si un profil local est sélectionné, au premier profil distant trouvé dans le projet.

Vue du projet

Sources externes

Les fichiers source situés en dehors de la racine du projet sont désormais regroupés sous le nœud External Sources dans l'arborescence du projet. Cela permet d'éviter l'encombrement de ces fichiers au niveau supérieur.

VCS

Profil pour les inspections avant commit

Profil pour les inspections avant commit

CLion peut inspecter votre code avant que vous effectuiez un commit, pour vous aider à contrôler l'absence de bugs. Choisissez un profil d'inspection du code avant de valider les modifications dans le VCS. Cliquez sur l'icône engrenage pour afficher les options de commit, cochez la case Analyze code, cliquez sur Choose profile, puis sélectionnez le profil souhaité.

Modèles de commit Git

Vous pouvez créer un modèle de message de commit personnalisé dans Git. CLion affichera alors ce texte comme message initial de commit.

Save to Shelf

Une nouvelle action Save to Shelf vous permet de copier vos modifications dans Shelf tout en les conservant dans les modifications locales. Vous pouvez accéder à cette action en appuyant sur Ctrl+Maj+A et en tapant « Save to Shelf ».

En savoir plus sur les autres améliorations du VCS pour l'ensemble des produits basés sur IntelliJ.

Mise à jour du plugin Rust

Mise à jour du plugin Rust

IntelliJ Rust fournit maintenant une vue structurée pour la sortie du build du compilateur. L'onglet s'ouvre automatiquement dans la fenêtre d'outils Build lorsque vous appelez une commande Cargo qui comprend une étape de build. Cette nouvelle fonctionnalité fonctionne avec les versions 1.48.0 ou ultérieures de Cargo.

Autre mise à jour importante : la nouvelle refactorisation Change Signature. Elle vous aide à modifier la signature d'une fonction/méthode, ce qui impactera toutes les références. Vous pouvez rapidement modifier le nom ou le type de retour d'une fonction, réorganiser ou ajouter/supprimer des paramètres et ajouter un préfixe async ou unsafe.

La refactorisation Rename fournit maintenant des suggestions de renommage pour des éléments comme les structs, les fonctions et les variables locales lorsque vous changez un nom dans l'éditeur.

La prise en charge de la compilation conditionnelle a été améliorée. Find Usages est désormais disponible pour les fonctionnalités Cargo et la saisie semi-automatique fonctionne pour l'argument feature dans les attributs cfg et cfg_attr. De plus, si il y a des attributs imbriqués dans cfg_attr, le plugin en tient compte lors de la résolution de noms et de l'analyse de code.

Code With Me

Code With Me

Code With Me, un nouveau service de JetBrains pour le développement collaboratif et la programmation en binôme à distance, est désormais intégré à CLion.

Définissez le niveau d'accès requis pour votre projet et partagez le lien avec vos invité·es. Les personnes que vous invitez à collaborer n'ont même pas besoin d'avoir un IDE pour pouvoir travailler avec vous. Les appels audio et vidéo intégrés et la messagerie instantanée permettent aux équipes de discuter du code, de partager des connaissances et de coopérer plus efficacement.

Pour en savoir plus sur l'utilisation de Code With Me avec votre licence JetBrains actuelle, consultez la page Tarifs.

Intégration de Space

Le plugin Space est maintenant disponible pour CLion. Vous pouvez vous connecter à votre organisation dans JetBrains Space via la commande Get from VCS située à droite sur l'écran de bienvenue. Une fois connecté·e, vous pouvez consulter et cloner les référentiels de projets, réviser le code des autres membres de votre équipe et écrire des scripts Space Automation.

Autres améliorations

  • CLion appliquera désormais automatiquement le thème hypercontrasté dès son premier lancement si vous utilisez le mode hypercontrasté sous Windows.
  • Avec les nouveaux paramètres de typographie, paramétrez précisément le poids de vos styles de police par défaut et de police grasse dans Settings | Editor | Fonts.
  • Lorsque plusieurs onglets qui divisent l’éditeur verticalement sont ouverts, vous pouvez double-cliquer sur l’un d’entre eux pour agrandir la fenêtre de l’éditeur pour cet onglet spécifique. Pour ramener la fenêtre à sa taille initiale, il suffit de double-cliquer à nouveau sur celle-ci.

Nouveautés de CLion 2020.3

CLion 2020.3 apporte des améliorations significatives et très attendues à des étapes clés du processus de développement : analyse du code, exécution et débogage des applications, tests unitaires. Pour les projets embarqués, CLion fournit désormais une prise en charge native de MISRA C et C++. Et les utilisateurs de Qt bénéficient de fonctionnalités de l'IDE spécialement conçues pour travailler avec du code Qt.

Débogueur

Déboguer avec les privilèges root

CLion 2020.3 peut exécuter et déboguer votre application avec les privilèges root. Il vous suffit de sélectionner cette option dans la configuration Run/Debug correspondante. Cela fonctionne pour les applications CMake, Makefile, Gradle Native, Custom Build et CTest.

Débogage avec des core dumps

Débogage avec des core dumps

La nouvelle action Run | Open Core Dump... disponible pour Linux et macOS vous permet d'ouvrir un dump principal existant d'un processus qui a échoué dans CLion et de le déboguer à partir de là. Les utilisateurs peuvent inspecter la vue des frames et des variables, consulter la vue de la mémoire et du désassemblage, évaluer les expressions et exécuter les commandes du débogueur depuis la console de débogage. Obtenez plus d'informations sur le processus de configuration de cette fonctionnalité et ses limitations.

Définir un point d'exécution

Définir un point d'exécution

La nouvelle action Set Execution Point to Cursor vous permet d'avancer et de revenir en arrière dans l'exécution de votre programme pendant le débogage, d'interrompre des boucles ou de les redémarrer, de sélectionner une autre branche dans une clause if-else ou une instruction switch-case, et même d'ignorer complètement des boucles. Il suffit de glisser-déposer une flèche dans la gouttière de la ligne concernée.

En savoir plus

Conseils interactifs et watches inline

Conseils interactifs et watches inline

Désormais, lorsque l'application s'exécute en mode débogage, l'éditeur affiche des conseils inline cliquables que vous pouvez développer pour voir tous les champs qui appartiennent à une variable donnée. De plus, vous pouvez modifier les valeurs des variables dans la liste déroulante ou ajouter une expression arbitraire comme watch inline à cet emplacement dans le code.

Paramètres d'exécution

Configurer l'environnement avec un script

Configurer l'environnement avec un script

CLion vous permet désormais d'utiliser un script pour spécifier l'environnement dans lequel une configuration Run/Debug sera lancée. Ce nouveau paramètre est disponible dans toutes les configurations d'applications et de tests unitaires.

Modifier les configurations pendant l'indexation

Modifier les configurations pendant l'indexation

Plus besoin d'attendre ! Les configurations Run/Debug peuvent être modifiées pendant l'indexation du projet.

Tests unitaires

Prise en charge de CTest

Prise en charge de CTest

CTest, un exécuteur de test de CMake, est désormais pris en charge dans CLion. Ainsi, la liste des tests qui sont exécutés avec CTest est détectée et l'IDE crée automatiquement des configurations Run/Debug pour ces tests. Lorsque les tests sont lancés, les résultats sont présentés dans l'exécuteur de test intégré, à partir duquel vous pouvez notamment déboguer les tests et relancer uniquement les tests ayant échoué.

En savoir plus

Exécuteur de test pour Google Test

Exécuteur de test pour Google Test

La version 2020.3 améliore la prise en charge de CLion pour Google Test, le framework de tests unitaires C++ le plus populaire au monde (d'après notre enquête sur l'écosystème des développeurs en 2020 31% des développeurs C++ utilisent Google Test).


    Les mises à jour comprennent :
  • L'arborescence complète des tests est immédiatement affichée dans l'exécuteur de test intégré, puis les tests sont exécutés.
  • Pour les tests paramétrés, CLion affiche désormais les paramètres des tests directement dans l'arborescence des tests.
  • Les tests désactivés (ceux dont le nom comporte le préfixe DISABLED) sont également affichés dans l'arborescence des tests avec l'icône correspondante.

Analyse du code et refactorisation

MISRA

MISRA C et C++

CLion 2020.3 fournit une prise en charge partielle de MISRA C 2012 et MISRA C++ 2008, directives largement utilisées dans le domaine du développement embarqué, notamment dans le secteur automobile. Cette prise en charge accélère le développement de ce type de projets en identifiant les incompatibilités plus tôt dans le cycle de développement. La liste des vérifications prises en charge actuellement est disponible sur la page Confluence de CLion.

Valeurs non utilisées

Valeurs non utilisées

CLion 2020.3 améliore l'inspection des valeurs inutilisées, qui détecte les situations dans lesquelles une valeur de variable n'est jamais utilisée après avoir été attribuée. L'inspection peut désormais être personnalisée afin de prendre en compte les préférences de style à l'aide d'initialiseurs de variables par défaut. Une nouvelle option permettant de désactiver l'inspection dans de tels cas a été ajoutée aux paramètres.

Extraire les paramètres lambda

Extraire les paramètres lambda

Une nouvelle refactorisation Extract Lambda Parameter a été ajoutée à CLion. Elle permet d'extraire une expression ou une déclaration dans un nouveau paramètre avec une expression lambda passée comme argument correspondant. Par exemple, la déclaration peut être une fonction de comparaison passée à une fonction de tri.

Voir les refactorisations Extract en action

Saisie automatique du code

Extraits de saisie automatique Clang

Extraits de saisie automatique Clang

Les extraits de saisie automatique Clang vous permettent d'insérer des constructions courantes lorsque des mots-clés C++ sont saisis. Dans certains cas, par exemple lorsque qu'un mot-clé typedef est saisi, la saisie automatique du code peut suggérer non seulement le mot-clé lui-même, mais aussi des stubs pour le type et le nouveau nom.

Saisie automatique pour les modèles

Saisie automatique pour les modèles

CLion 2020.3 améliore la saisie automatique du code, car il fonctionne désormais beaucoup plus précisément avec les types de modèles. Par exemple, les options de saisie automatique sont affichées pour les éléments du conteneur et les itérateurs dans le modèle de fonction.

Projets Qt

Créer un nouveau projet Qt

Créer un nouveau projet Qt

La boîte de dialogue New Project propose les types de projets « Qt Console Executable » et « Qt Widgets Executable ». Vous pouvez également sélectionner le chemin du préfixe Qt CMake, le standard du langage C++ à utiliser dans le projet et la version Qt. Le nouveau projet est généré à l'aide des modèles correspondants.

Créer une nouvelle classe d'interface utilisateur Qt

Créer une nouvelle classe d'interface utilisateur Qt

Un nouvel élément de classe QT UI dans le menu New (Alt+Inser) /0> vous permet de créer simultanément une classe Qt et un fichier .ui. Indiquez le nom de la classe et sélectionnez la classe parente (QWidget, QMainWindow ou QDialog). Les fichiers .h/.cpp/.ui seront générés en utilisant la base Filename comme nom de fichier. Les fichiers générés suivent les modèles listés dans Settings/Preferences | Editor | File and Code Templates - Qt Class, Qt Class Header, et Qt Designer Form.

Complétion des signaux et slots

Complétion des signaux et slots

Les signaux et les slots sont des fonctionnalités centrales de Qt car ils sont utilisés pour la communication entre les objets. CLion comprend désormais quand les signaux ou les slots doivent être complétés, et ne filtre que les membres correspondants dans la liste déroulante de complétion.

Auto-importation avec le style Qt

Auto-importation avec le style Qt

Dans CLion 2020.3, les suggestions d'auto-importation dans les projets Qt sont paramétrées pour suivre le style le plus couramment utilisé pour Qt.

Projets Makefile

Prise en charge des projets utilisant libtool, dolt, et ccache

Prise en charge des projets utilisant libtool, dolt, et ccache

Les projets Makefile utilisant des wrappers comme ccache, libtool, dolt, slibtool et jlibtool, peuvent désormais être correctement chargés dans CLion. Obtenez plus d'informations sur les quelques limitations qui subsistent.

Configurations Run/Debug

Configurations Run/Debug

Il est encore plus facile de configurer un projet Makefile dans CLion car les configurations Run/Debug sont créées automatiquement pour les cibles dans un Makefile de niveau supérieur lors du chargement du projet. À présent, pour exécuter et déboguer, il vous suffit de faire pointer la configuration vers l'exécutable compilé.

En savoir plus

Recompiler un seul fichier

Recompiler un seul fichier

L'action Recompiler (Ctrl+Maj+F9) permet d'accélérer le processus de développement en compilant un seul fichier, et non l'ensemble du projet. Et désormais, cela fonctionne aussi pour les projets Makefile !

CMake

Activer/Désactiver les profils CMake

Activer/Désactiver les profils CMake

Il est maintenant possible de conserver plusieurs profils CMake configurés dans CLion tout en désactivant ceux qui ne sont pas utilisés actuellement. Cela permet de réduire le temps de chargement du projet et d'éviter les échecs redondants de profils temporairement indisponibles (par exemple dans le cas de configurations à distance désactivées). L'option est disponible dans la fenêtre d'outils de CMake et dans la boîte de dialogue des paramètres des profils de CMake.

En savoir plus

VCS

Onglet Git dans Search Everywhere

Onglet Git dans Search Everywhere

La boîte de dialogue Search Everywhere comporte désormais un onglet Git. Il permet de trouver des hachages de commits, messages, balises et branches. Vous pouvez également effectuer des calculs mathématiques simples dans le champ de recherche.

Mises à jour de l'interface utilisateur

Le menu VCS est désormais nommé en fonction du système de contrôle de version utilisé actuellement. Le menu ne comporte plus que les actions les plus utiles pour la gestion des versions de votre projet.

De plus, les deux boutons les plus utilisés (Commit and Commit and Push…) sont désormais affichés clairement sur l'écran Commit.

Prise en charge du staging Git

Vous pouvez désormais effectuer des modifications dans la zone de staging directement à partir de CLion. Pour activer cette fonctionnalité, accédez à Preferences/Settings | Version Control | Git et cochez la case Enable staging area. Cliquez sur l'icône + pour ajouter vos fichiers au nouveau nœud Staged dans la vue Commit. Vous pouvez également interagir avec la zone de staging directement depuis la gouttière ou dans la vue Diff. Pour en savoir plus, consultez cet article de blog.

Développement à distance

Mise à jour automatique des chemins exclus

Mise à jour automatique des chemins exclus

Les répertoires marqués comme Excluded localement sont désormais automatiquement marqués comme Excluded paths lors de la configuration initiale des chaînes d'outils distantes. Lorsque des modifications sont apportées à un projet déjà synchronisé, CLion affiche une notification de mise à jour et propose de mettre à jour la liste des Excluded paths.

Plus de détails

Code With Me

Code With Me

CLion 2020.3 prend en charge Code With Me (version EAP), un nouveau service de JetBrains pour le développement collaboratif et la programmation en binôme. Code With Me vous permet de partager le projet que vous avez actuellement ouvert dans votre IDE avec d'autres personnes et de travailler dessus ensemble en temps réel. Vous pouvez le télécharger dès maintenant depuis la marketplace des plugins (Preferences / Settings | Plugins | Marketplace). Consultez ces articles pour en savoir plus sur Code With Me.

Mise à jour de l'interface utilisateur

Mises à jour de l'écran d'accueil

Mises à jour de l'écran d'accueil

CLion 2020.3 propose un nouvel écran d'accueil. Avec la nouvelle mise en page, les opérations les plus fréquentes sont à portée de main et vous disposez d'un accès immédiat aux projets récents, options de personnalisation et paramètres des plugins.

Glisser-déposer des onglets

Diviser un éditeur

Il est désormais possible de diviser un éditeur en glissant-déposant un onglet sur le côté de la fenêtre principale de l'éditeur. L'action Open in Right Split divise l'éditeur verticalement lors de l'ouverture de votre fichier.

Vous pouvez appeler l'action à partir de la vue Project ou d'autres fenêtres contextuelles de navigation telles que Recent Files et Search Everywhere (Maj+Entrée).

Thème de l'IDE synchronisé avec les paramètres du système d'exploitation

Thème de l'IDE synchronisé avec les paramètres du système d'exploitation

CLion peut désormais synchroniser son thème avec celui de votre système d'exploitation. Pour activer cette fonctionnalité, accédez à Settings / Preferences | Appearance & Behavior | Appearance et cochez la case Sync with OS. Cliquez sur l'icône engrenage à côté de Sync with OS pour choisir votre thème préféré.

Mise à jour du plugin Rust

Mise à jour du plugin Rust

IntelliJ Rust prend désormais entièrement en charge les fonctionnalités Cargo et vous permet de les configurer grâce à une nouvelle interface utilisateur intelligente. Les fonctionnalités d'un espace de travail peuvent être activées et désactivées en un clic et l'assistance au code du plugin prend en compte ces paramètres. Pour plus de détails, consultez cet article de blog.

De plus, le plugin permet désormais d'utiliser Rustfmt comme formateur de code par défaut. Il suffit de cocher la case correspondante dans Settings / Preferences | Languages & Frameworks | Rust | Rustfmt, et le reformatage du fichier entier utilisera Rustfmt. Pour le moment, si vous appelez Reformat Code sur une sélection, c'est le formateur de l'IDE qui est utilisé.

L'assistant de projet du plugin a été amélioré et offre davantage de modèles, ainsi que la possibilité d'utiliser des modèles personnalisés cargo-generate.

Les autres mises à jour comprennent l'introduction de la prise en charge de projet WebAssembly et un nouveau moteur expérimental pour la résolution des noms.

Nouveautés de CLion 2020.2

Avec l'ajout des projets Makefile et l'amélioration de la prise en charge de CMake, CLion 2020.2 garantit la couverture d'une grande variété de projets C++. Il apporte une meilleure conformité à la norme C++20. L'analyse de code est maintenant plus précise et détecte davantage d'erreurs critiques, comme les pointeurs suspendus. Les tests unitaires, la couverture du code, le développement embarqué et plusieurs autres domaines ont également fait l'objet d'améliorations majeures.

Modèles de projets

Prise en charge des projets Makefile

Vous développez un projet basé sur Makefile ? Bénéficiez des fonctionnalités intelligentes de CLion – CLion propose désormais livré la prise en charge immédiate des projets Makefile. Ouvrez un dossier avec un Makefile de niveau supérieur en tant que projet ou pointez directement CLion vers un Makefile dans la boîte de dialogue Open. L'IDE exécutera make (avec l'option -- just-print pour éviter d'exécuter un build réel), analysera la sortie de la commande make et chargera le projet. Pour plus de détails, informations sur les limitations connues et la liste des nombreux projets avec lesquels nous avons testé notre approche, lisez cet article.

Suivez-nous pour une visite guidée

Amélioration de l'expérience utilisateur CMake

Amélioration de l'expérience utilisateur CMake

Les paramètres de CMake Profile sous Build, Execution, Deployment | CMake ont une nouvelle interface utilisateur et plusieurs astuces utiles ont été ajoutées pour les paramètres. En outre, plusieurs actions sont désormais disponibles pour les projets CMake dans Find Action et vous pouvez attribuer un raccourci vers une ou plusieurs de ces actions si vous les utilisez régulièrement :

  • Paramètres CMake
  • Arrêter le rechargement du projet CMake
  • Ouvrir un fichier CMakeCache

Mise à niveau de CMake

CLion intègre désormais CMake 3.17 et fournit une prise en charge initiale de deux de ses fonctionnalités les plus récentes :

  1. Ninja Multi-Config : vous pouvez maintenant transmettre l'option de générateur -G "Ninja Multi-Config" pour générer des fichiers de build CLion pour chaque configuration (veuillez noter que, temporairement, CLion utilisera toujours une seule configuration sélectionnée pour le profil CMake).
  2. En-têtes précompilés CMake : utilisez la commande target_precompile_headers pour ajouter des fichiers d'en-tête aux propriétés PRECOMPILE_HEADERS ou INTERFACE_PRECOMPILE_HEADERS d'une cible. CLion gérera correctement ces en-têtes précompilés.

Suivez-nous pour une visite guidée

Création de projets

Recompiler un seul fichier

L'action Recompile single file, désormais disponible pour Ninja et d'autres générateurs utilisés dans CMake et pris en charge dans CLion, permet d'accélérer le processus de développement en vérifiant rapidement les modifications locales.

Grâce à une importante correction de bug, CLion peut désormais créer plusieurs projets indépendants en parallèle, sans qu'ils ne se bloquent entre eux au démarrage.

Analyse du code

L'analyse de code dans CLion 2020.2 a fait l'objet d'une mise à jour majeure afin d’accroître la précision de nombreux contrôles et de couvrir plus de cas. Cette version poursuit également le travail de perfectionnement de l'analyse des flux de données, précédemment réimplémentée par dessus le moteur basé sur Clangd.

Pointeur suspendu

Pointeur suspendu

Les pointeurs qui dirigent vers des données non valides entraînent des problèmes d'exécution. Les cas typiques sont les combinaisons de double-free et use-after-free. CLion détecte maintenant ces pointeurs suspendus s'ils apparaissent dans la zone locale. Aucune arithmétique de pointeur n'est impliquée et les macros n'empêchent pas CLion d'effectuer l'analyse.

Simplify

Simplify

L'inspection de code Simplify est désormais plus précise et concerne d'avantage de cas. Elle fonctionne pour les types de déclarations suivants :

  • condition == true.
  • condition1? true : condition2.
  • if(condition1) return true; return condition2;
  • Déclarations pour des branches identiques.

Les cas peuvent être configurés séparément dans une Settings | Editor | Inspections | C/C++ | General | Simplifiable statement.

La condition de boucle n'est jamais mise à jour

La condition de boucle n'est jamais mise à jour

Cette inspection de CLion détecte les situations dans lesquelles une condition de boucle n'est pas mise à jour à l'intérieur de la boucle. Elle est similaire au clang-tidy:bugprone-infinite-loop de Clang-Tidy, mais fonctionne pour les boucles avec des points de sortie et peut gérer les cas avec des lambdas ou des références.

Code inutilisé

Code inutilisé

L'inspection Unused code a été remaniée en profondeur. Entre autres modifications, elle fonctionne désormais pour les alias de type, à la fois pour les constructions using définies globalement et localement.

Widget d'inspections et Vue Problems

Widget d'inspections et Vue Problems

Dernier ajout mais non des moindres : un nouveau widget d'inspections. Il affiche le nombre d'avertissements et d'erreurs dans le fichier actuel et vous permet de naviguer facilement entre eux. Vous pouvez également configurer le niveau de surbrillance (comme vous le pouviez auparavant avec l'icône Hector).

Si vous cliquez sur le widget d'inspections, vous ouvrez la fenêtre d'outils Problems (View | Tool Window | Problems). Elle affiche la liste des avertissements et des erreurs dans le fichier actuel, vous aide à naviguer jusqu'à l'emplacement de votre code où le problème a été détecté et vous permet de résoudre les problèmes grâce au raccourci Alt+Entrée directement depuis la fenêtre d'outils.

C++20

Cette année apporte officiellement une nouvelle norme de langage aux développeurs C++, et CLion prend déjà en charge plusieurs de ses fonctionnalités. Le moteur de langage de CLion 2020.2 est aussi globalement plus stable sur le code C++20.

Mots-clés C++20

Mots-clés C++20

Les nouveaux mots-clés sont pris en charge par CLion 2020.2 dans le cadre de la mise en évidence et de la saisie semi-automatique du code :

  • char8_t
  • consteval et constinit
  • co_await, co_return et co_yield
Initialiseurs désignés

Initialiseurs désignés

La saisie saisie semi-automatique du code dans les initialiseurs désignés fonctionne désormais pour les champs d'une classe de base.

explicit(bool)

explicit(bool)

Le construction C++20 explicit(bool) est maintenant correctement mise en évidence. Elle est également prise en charge dans la navigation et la refactorisation et bénéficie de suggestions de noms pour les arguments des conditions.

« for » basé sur une plage avec initialiseur

for basé sur une plage avec initialiseur

Les boucles for basées sur une plage avec l'instruction init sont désormais prises en charge. Cela inclut des refactorisations comme Rename pour les variables situées dans la boucle.

Restreindre le résultat d'une fonction

Restreindre le résultat d'une fonction

Une nouvelle inspection a été ajoutée pour le code qui utilise les Concepts. Elle suggère de restreindre les variables locales déclarées comme auto si le résultat d'un appel de fonction restreint leur est affecté.

Tests unitaires

Prise en charge de Doctest

Prise en charge de Doctest

CLion 2020.2 apporte la prise en charge d'un autre framework à en-tête unique pour C++ : Doctest. Doctest a gagné en popularité qu sein de la communauté et Clion le prend désormais en charge, avec la détection automatique des tests, la création de configuration Run/Debug et un exécuteur de tests intégré pratique pour afficher les résultats des tests. Apprenez à configurer un ensemble de tests pour leur lancement dans cet article de blog dédié.
Template tests dans Catch2

Template tests dans Catch2

Ces types de tests dans Catch2 sont maintenant reconnus et gérés comme les autres types de tests.

Ignorer les tests dans Google Test

Ignorer les tests dans Google Test

La macro GTEST_SKIP() dans Google Test permet d'ignorer les tests lors de l'exécution. Elle est désormais prise en charge par CLion.

Couverture du code

Couverture du code

CLion 2020.2 améliore l'expérience utilisateur en ajoutant automatiquement des indicateurs de couverture lorsque vous cliquez sur le bouton Run with Coverage. Désormais, si votre profil CMake actuellement sélectionné n'inclut pas les options du compilateur pour la couverture, CLion recherchera un profil CMake (et en créera un s'il n'en trouve pas) avec les indicateurs de couverture passés via CMAKE_CXX_FLAGS et CMAKE_C_FLAGS.

Développement embarqué : plugin PlatformIO

Pour le développement embarqué, nous avons mis à jour un plugin pour PlatformIO, apportant des améliorations significatives :

Mise en évidence du code dans les fichiers platformio.ini

Mise en évidence du code dans les fichiers platformio.ini

Le code des fichiers de configuration de projet PlatformIO est désormais correctement mis en évidence, ce qui facilite la lecture et la mise à jour de ces fichiers.

Nouvelles configurations Run/Debug

Nouvelles configurations Run/Debug

Lorsqu'un nouveau projet est créé à partir de l'assistant New Project dans CLion, de nombreuses configurations Run/Debug utiles sont automatiquement ajoutées. Citons notamment _PROGRAM, _MONITOR, _CLEAN et _TEST.

Profils CMake pour les configurations PlatformIO

Profils CMake pour les configurations PlatformIO

CLion crée désormais automatiquement des profils CMake pour les entrées CMAKE_CONFIGURATION_TYPES dans le projet PlatformIO CMake.

VCS

Git installé dans WSL2

Git installé dans WSL2

Si vous développez avec les chaînes d'outils WSL2 et utilisez Git sur WSL2, vous pouvez désormais basculer entre les exécutables Git en fonction de l'emplacement du projet. Il détectera automatiquement l'exécutable Git à partir de WSL2 pour les projets ouverts à partir de là (via le chemin \\wsl$) et basculera toutes les fonctionnalités liées à Git pour assurer leur compatibilité.

Requêtes Pull GitHub

Requêtes Pull GitHub

CLion 2020.2 inaugure une nouvelle vue plus spacieuse pour les requêtes pull GitHub. Elle montre tous les détails d'une requête pull particulière (comme les messages, les noms de branche, l'auteur, le responsable, les fichiers modifiés, les commits et la chronologie) et affiche les résultats des vérifications préalables au commit. Il facilite également de nombreuses actions, notamment : démarrer une révision, demander des révisions, joindre des commentaires ou fusionner des requêtes pull dans l'IDE.

En savoir plus

Aller à la déclaration ou aux utilisations

Aller à la déclaration ou aux utilisations

L'action Go to Declaration or Usages (Ctrl+Click / Ctrl+B) se comporte différemment selon les cas et les paramètres de l'IDE :

  • Lorsqu'elle est appelée sur une utilisation de symbole, elle accède à la déclaration de cette utilisation.
  • Lorsqu'elle est appelée sur une déclaration, elle affiche la liste des utilisations de cette déclaration.
  • Lorsqu'elle est appelée sur une définition, elle affiche la déclaration ou les utilisations associée·s. Cela dépend des paramètres de Settings | Editor | General | Go to Declaration or Usages.

Améliorations des performances

Plusieurs blocages et ralentissements de l'interface utilisateur ont été corrigés. Pour éviter une dégradation des performances de l'éditeur, CLion insère désormais une barre oblique inverse lorsque vous appuyez sur Entrée dans la définition de macro. La définition de la macro sera très probablement poursuivie sur une nouvelle ligne. Cela évite donc à l'IDE de procéder à une analyse redondante.

Mise à jour du plugin Rust

Mise à jour du plugin Rust

Dans la version 0.3 du plugin, le nouveau moteur d'extension des macros, jusqu'alors expérimental, est activé par défaut. Ce moteur gère les blocs impl générés par macro et les déclarations de modules. Il fournit des informations sur l'intégralité de votre code, y compris les crates comme tokio et async-std. Apprenez-en davantage dans cet article de blog.

Autre mise à jour majeure : l'introduction de la prise en charge initiale du débogueur pour la chaîne d'outils MSVC de Rust. Vous pouvez maintenant utiliser le débogueur basé sur LLDB fourni dans CLion pour la chaîne d'outils Visual Studio afin de déboguer le code Rust construit sur Windows à l'aide du MSVC de Rust.

Les autres améliorations concernent de nouvelles refactorisations (Move pour les fichiers et les éléments de niveau supérieur et Introduce Constant), la prise en charge initiale de or_patterns, la mise en évidence des erreurs dans les littéraux de format dans des macros comme println!, l'affichage de la documentation dans l'éditeur, des conseils d'insertion pour les appels de méthode en chaîne et des améliorations du workflow du débogueur dans IntelliJ IDEA.

Plus d'informations

Autres améliorations

  1. Le débogueur basé sur LLDB pour la chaîne d'outils Microsoft Visual Studio C++ maintenue par JetBrains a fait l'objet de nombreuses améliorations. Voici les plus notables : les sessions de débogage ne se figent plus à l'arrêt, les threads sont désormais nommés automatiquement selon leur fonction de point d'entrée, la performance du débogueur a été considérablement améliorée et de nombreux blocages ont été corrigés.
  2. Les pretty-printers GDB STL actualisés sont intégrés dans CLion 2020.2.
  3. À partir de maintenant, le moteur basé sur Clangd est le moteur de langage par défaut dans CLion et l'option permettant de le désactiver a été supprimée. Settings | Languages & Frameworks | C/C++ | Clangd inclut désormais des informations sur la révision LLVM Clang utilisée, vous saurez donc à quoi vous attendre en matière de compatibilité avec C++ et de vérifications Clang-Tidy intégrées.