Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'EDI CLion 2020.2 de JetBrains disponible, avec l'ajout des projets Makefile, l'amélioration du support de CMake,
Une analyse de code plus précise et une meilleure conformité à la norme C++20

Le , par Michael Guilloux

75PARTAGES

8  0 
JetBrains vient de publier la version 2020.2 de CLion, son EDI C/C++ pour Linux, macOS et Windows intégré au système de génération CMake. Cette deuxième mise à jour majeure de l'année garantit la couverture d'une grande variété de projets C++ avec l'ajout des projets Makefile et l'amélioration de la prise en charge de CMake. CLion 2020.2 apporte encore 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. Nous présentons dans la suite un aperçu plus détaillé des principales nouveautés par domaine.

Modèles de projets

Prise en charge des projets Makefile
Si vous développez un projet basé sur Makefile, vous allez bénéficier des fonctionnalités intelligentes de CLion. L'EDI propose désormais 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'EDI 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.


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 :
  • 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) ;
  • En-têtes précompilés CMake : vous pouvez utiliser 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.

Création de projets

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
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
L'inspection de code Simplify est désormais plus précise et concerne davantage 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 "Settings | Editor | Inspections | C/C++ | General | Simplifiable statement".

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é
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
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
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
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)
La 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
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
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
CLion 2020.2 apporte la prise en charge d'un autre framework à en-tête unique pour C++ : Doctest. Doctest a gagné en popularité au 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.


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
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

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é, JetBrains a mis à jour un plugin pour PlatformIO, apportant des améliorations significatives :

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
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
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
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
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'EDI.


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'EDI :
  • 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ées. 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'EDI de procéder à une analyse redondante.

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.

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.


Autres améliorations

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.

Parmi les autres améliorations dans CLion, notons également que les pretty-printers GDB STL actualisés sont intégrés dans la version 2020.2. En outre, à 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.

Télécharger CLion 2020.2

Voir aussi :

L'EDI Java IntelliJ IDEA 2020.2 permet d'examiner et de fusionner les Pull Request GitHub directement dans l'EDI et de naviguer rapidement entre les avertissements
DataGrip 2020.2, l'EDI destiné aux administrateurs de base de données, apporte de nombreuses améliorations au niveau de l'interface, de l'éditeur SQL mais aussi des vues
WebStorm, l'EDI pour le développement d'apps Web, est disponible en version 2020.2, avec la prise en charge complète des Pull Request GitHub et la possibilité d'utiliser Prettier par défaut
JetBrains annonce la sortie de YouTrack 2020.3, la troisième mise à jour majeure de l'année pour son logiciel de gestion de projet et de suivi des incidents
AppCode 2020.1 : la nouvelle version de l'EDI destiné aux plateformes Apple propose entre autres une assistance de code plus rapide et la complétion pendant l'indexation

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Aiekick
Membre extrêmement actif https://www.developpez.com
Le 31/07/2020 à 15:41
Clion est vraiment un super IDE. Ça m'a facilité le cross platform dans mes apps.
Mon Préféré reste Visual studio sous windows, mais pour le reste c'est top (linux, mac).
2  0 
Avatar de quicky2000
Membre actif https://www.developpez.com
Le 19/08/2020 à 7:42
Je plussoie, il est top cet IDE
1  0