IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

CLion 2021.3 est disponible :
Tour d'horizon des nouveautés de l'EDI C/C++ multiplateforme de JetBrains

Le , par Michael Guilloux

60PARTAGES

5  0 
CLion 2021.3 est disponible avec la prise en charge plusieurs configurations de chaînes d'outils et facilite leur personnalisation. Il accroît la productivité du développement grâce à l'amélioration du rendu dans le débogueur et simplifie la maintenance du code C++ moderne avec les indices de type dans l'éditeur. L'analyse statique de cette nouvelle version est capable de détecter un nouveau lot de problèmes connus en C++. CLion 2021.3 vient également avec la prise en charge de la version bêta du nouveau workflow de développement à distance de JetBrains.

Chaînes d'outils

Dans CLion, une chaîne d'outils désigne un ensemble d'outils nécessaires pour générer et exécuter votre application. CLion v2021.3 améliore la flexibilité des chaînes d'outils et facilite leur configuration et leur personnalisation.

Chaîne d'outils Docker

Les conteneurs Docker constituent l'un des moyens les plus simples et populaires de configurer un environnement et de commencer à travailler avec ce dernier. Au lieu d'utiliser la chaîne d'outils Remote pour Docker dans CLion, vous pouvez maintenant utiliser la chaîne d'outils native Docker. Cela évite la synchronisation redondante du code source, le dossier du projet se montant simplement dans le conteneur.

CLion intègre également le plugin Docker, qui dote l'EDI de la fenêtre d'outils Services et de nombreuses actions spécifiques à Docker.


Compilateur sur mesure

Supposons que vous utilisiez un compilateur personnalisé, ou un compilateur pas encore nativement connu de CLion, ce qui est souvent le cas dans le développement embarqué. Il existe maintenant un moyen de décrire à CLion toutes les informations nécessaires sur le compilateur et de travailler avec ce dernier comme s'il était pris en charge nativement.

Cliquez sur Settings | Build, Execution, Deployment | Toolchains | Custom Defined Compiler pour l'activer et fournir le fichier *.yaml qui définit votre compilateur personnalisé.


Initialisation de l'environnement de la chaîne d'outils via un script

Dans certains cas, l'environnement dans lequel le compilateur s'exécute est initialisé par un script. Il peut initialiser les variables d'environnement du compilateur, personnaliser la variable PATH, et plus encore.

Cliquez sur Settings | Build, Execution, Deployment | Toolchains et sélectionnez Add environment | From file dans CLion pour obtenir le script pour la chaîne d'outils que vous utilisez.


MinGW intégré sous Windows

CLion intègre désormais la chaîne d'outils MinGW sous Windows qui permet une configuration rapide. Elle peut être utilisée si vous n'avez pas d'autres options installées sur votre machine. La version exacte fournie est MinGW-w64 9.0 avec languages=c, c++, les threads posix, et les exceptions de code seh.

Autre amélioration pour les utilisateurs de MinGW : l'intégration de la version 64 bits de GDB v10.2 avec prise en charge de Python.


Chaîne d'outils System sous Windows

Une nouvelle chaîne d'outils System sous Windows, similaire au même type de chaîne d'outils sous Linux et macOS, permet de configurer les fichiers exécutables de CMake, du compilateur et du débogueur sans sélectionner d'environnement prédéfini (comme MinGW, Cygwin, WSL ou Visual Studio). Elle peut s'utiliser pour la chaîne d'outils ARM ou d'autres chaînes d'outils embarquées sous Windows.


CMake

Générateurs CMake

Une nouvelle interface utilisateur de paramétrage du générateur CMake a été ajoutée à la page des paramètres du profil CMake (Settings | Build, Execution, Deployment | CMake). Il est possible d'utiliser la valeur par défaut pour la chaîne d'outils sélectionnée ou de configurer un générateur de la liste prédéfinie.

Lorsque le champ de l'interface utilisateur est utilisé, les options CMake de cette même page sont automatiquement mises à jour et inversement.


Générateur Ninja

Ninja est l'un des générateurs CMake les plus populaires et les plus efficaces actuellement. CLion 2021.3 intègre Ninja v1.10.2.

Pour les chaînes d'outils locales (c'est-à-dire excluant Remote, Docker, WSL) et CMake version 3.20 et ultérieures, Ninja est désormais le générateur par défaut pour les projets nouvellement créés ou ouverts dans CLion pour la première fois.

Mise à jour de CMake

CLion intègre désormais CMake 3.21.1. L'API CMake File est utilisée par défaut pour interroger les informations du projet dans CLion pour CMake version 3.20 et ultérieures.

CLion prend maintenant en charge les préréglages CMake Presets v3.

Autres modèles de projets

Makefile

Vous pouvez utiliser la nouvelle option Build directory dans Settings | Build, Execution, Deployment | Makefile pour configurer le répertoire dans lequel s'exécutent toutes les tâches make lorsque le projet Makefile est chargé dans CLion. Le répertoire configuré est transmis via l'option -C à l'appel make. Les dossiers comme autom4te.cache dans le répertoire de build sont signalés par CLion comme exclus.

Gradle

Bien qu'il reste possible d'utiliser le modèle de projet Gradle pour les projets C++ dans CLion, les plugins Gradle et Gradle Native n'y sont désormais plus intégrés. Vous pouvez les installer dans Settings | Plugins.

Version bêta de la nouvelle fonctionnalité de développement à distance

Jusqu'à présent, le développement à distance dans CLion se concentrait sur l'exécution du build du projet sur un hôte distant, en utilisant des compilateurs d'hôtes distants et CMake/make, en réalisant le débogage avec des débogueurs d'hôtes distants et en exécutant l'application sur la cible distante. Dans cette configuration, CLion lui-même s'exécute localement et vos fichiers sources sont également stockés sur le client local, avec une synchronisation automatique avec l'hôte distant. Cependant, cette approche présente plusieurs inconvénients :

  • Il n'est pas toujours possible (pour des raisons de sécurité ou autre) de stocker le code source sur une machine locale, auquel cas le code ne peut être localisé et utilisé que sur une machine distante.
  • Les opérations CLion, telles que l'indexation, peuvent être assez lourdes, donc si la machine locale est un client léger, il y a des problèmes de performances importants.

La bonne nouvelle est que dans la version 2021.3, CLion est désormais livré avec le support tant attendu pour le nouveau workflow de développement à distance.

L'idée principale est d'utiliser une machine distante puissante pour exécuter toutes les opérations d'EDI et pour construire, exécuter et déboguer le code, tout en exécutant l'EDI sur un client local léger. Un hôte distant est une machine physique ou virtuelle hébergeant le code source. Les développeurs se connectent au serveur avec un client léger local (c'est-à-dire une machine physique, comme un ordinateur portable) et utilisent ce client léger pour le développement. Cette configuration devrait vous aider à rester plus productif et flexible tout en vous permettant de travailler en toute sécurité où que vous soyez.

JetBrains Gateway est la nouvelle application qui sert de point d'entrée pour tous vos backends distants. Il fonctionne sur un client et peut être considéré comme un lanceur léger. Il connecte un serveur distant à votre ordinateur local, télécharge les composants nécessaires sur le backend et ouvre votre projet dans le client JetBrains. Cela ne nécessite pas que vous ayez un EDI installé sur votre machine locale. Vous pouvez récupérer la dernière version de JetBrains Gateway à partir de l'application Toolbox ou sur le site Web de JetBrains.


Vous pouvez utiliser JetBrains Gateway comme lanceur autonome ou comme point d'entrée depuis CLion pour vous connecter à un serveur distant. Il est important de noter qu'à l'heure actuelle, vous ne pouvez pas lancer de sessions de développement à distance à partir de CLion, mais vous pouvez le faire via JetBrains Gateway.

Améliorations du débogueur

Amélioration du rendu des types

Les types de la bibliothèque standard fortement modélisés ou les types avec des spécificateurs d'espaces de noms globaux et évidents peuvent produire de longues entrées dans la vue des variables pendant le débogage.

Pour améliorer l'expérience de débogage, CLion effectue maintenant un traitement supplémentaire pour renforcer la lisibilité et l'ergonomie des types dans la vue des variables :

  • Elimination des espaces de noms auxiliaires, des spécificateurs de portée globale et de fonction et des espaces de noms de version ABI de la bibliothèque standard.
  • Simplification des types de la bibliothèque standard en remplaçant leur nom par des alias plus lisibles.
  • Vous pouvez également retirer complètement les types de la présentation. Cela peut aider à se concentrer sur les valeurs des variables.


Amélioration de la vue des images

Dans la vue des images du débogueur, en plus des améliorations du rendu des types, CLion améliore maintenant la présentation des fonctions :

  • Il supprime le type de retour, lorsqu'il y en a.
  • Il masque les paramètres de fonctions.
  • Il masque les arguments du modèle des types englobants et la fonction elle-même, le cas échéant.
  • Il affiche le nom de la fonction en gras afin de le distinguer facilement des espaces de noms et des types englobants.
  • Il est possible d'ajouter le nom du Module pour montrer à tout moment dans quel binaire s'exécute le code.
  • Il affiche non seulement le nom, mais également l'identifiant du thread donné par le système d'exploitation au début du thread.


View as Array pour les pointeurs

Une nouvelle action View as Array… est à présent disponible pour toutes les variables de pointeur. Elle ajoute un point de surveillance qui donne la valeur du pointeur sous forme de tableau. L'action est disponible dans le menu contextuel de la vue des variables. Il vous suffit d'indiquer la taille du tableau.


Présentation personnalisable pour le débogueur

Pour contrôler la présentation des types, variables et images dans le débogueur, utilisez les nouveaux paramètres dans Settings | Build, Execution, Deployment | Debugger | Data Views | C/C++ (ou juste Data Views, sans la section distincte C/C++ si les débogueurs de tous les autres langages sont désactivés pour vous dans CLion).

Vous pouvez également contrôler la présentation à partir du menu contextuel de la fenêtre d'outils Debug.


Expression Evaluate plus pratique

Dans le cadre de la refonte en cours de l'interface utilisateur du débogueur, l'expression Evaluate est désormais intégrée directement dans la fenêtre d'outils Debug. Cela permet de la trouver et de l'utiliser plus facilement.


Vue Parallel Stacks

Lors du débogage d'applications multithread, vous devez suivre de nombreux threads en même temps. La nouvelle vue Parallel Stacks est implémentée sous la forme d'un onglet distinct dans la fenêtre d'outils Debug et affiche les informations de la pile d'appels pour l'ensemble des threads. Elle permet de vérifier les chemins d'appel et les points d'exécution de tous les threads en cours d'exécution.


Vue Hex améliorée

La vue Hex des variables numériques a été améliorée et n'est maintenant plus une fonctionnalité expérimentale de CLion. Vous pouvez l'activer dans Settings | Build, Execution, Deployment | Debugger | Data Views | C/C++ ou dans le menu contextuel de la vue des variables.

Mise à jour de LLDB

CLion 2021.3 intègre LLDB v13.

Vues du thread RTOS

Vue du thread FreeRTOS

La vue FreeRTOS thread a été étendue par l'ajout de vues des objets et de tas :

  • Le tableau Task présente une liste des tâches avec les informations sur leur état.
  • Le tableau Queue indique les files d'attente, les sémaphores et les mutex actuellement actifs.
  • Le tableau Timer répertorie les minuteries logicielles.
  • Le tableau Heap Usage affiche l'utilisation actuelle du tas et l'allocation des blocs de mémoire.


Vue du thread Zephyr RTOS

Zephyr RTOS est désormais pris en charge. Pour activer la vue des tâches, similaire à celle disponible pour FreeRTOS, cliquez sur Settings | Build, Execution, Deployment | Embedded Development | RTOS Integration et sélectionnez-y Zephyr.


Indices de types

CLion 2021.3 ajoute des indices de type pour les types déduits afin d'améliorer la lisibilité du code. Ces nouveaux indices apportent une aide avec les types pour les variables automatiques, dans les liaisons structurées et pour les retours de lambdas.

Vous pouvez les désactiver ou activer dans Settings | Editor | Inlay Hints | C/C++ ou directement à partir du menu contextuel de l'indice en question.


Si l'indice de type inclut l'instanciation du modèle, les arguments du modèle peuvent être réduits d'un simple clic sur les chevrons. De même, Ctrl+Clic vous permet de naviguer vers la déclaration du type sur lequel vous avez cliqué.


Vue Structure améliorée

Lorsque vous explorez la structure du fichier dans la fenêtre d'outil Structure (Alt+7) ou dans la fenêtre contextuelle Structure (Ctrl+F12), vous pouvez distinguer plus facilement les fonctions portant le même nom, car CLion y affiche désormais les noms qualifiés des fonctions des membres.


Analyse statique

Mise à jour des outils Clang

Les outils LLVM de CLion ont été mis à niveau vers la version 14.0.0. Cela améliore la précision du moteur de langage basé sur Clangd et met à jour les exécutables Clang-Tidy et ClangFormat intégrés. Pour Clang-Tidy, cela signifie également qu'il y a de nouvelles vérifications. JetBrains vous tiendra informés lors du premier lancement de CLion après la mise à jour.


Ajout de vérifications MISRA

De nouvelles vérifications MISRA ont été ajoutées à l'analyseur intégré de CLion :

  • Un identificateur de fonction doit être utilisé pour appeler la fonction ou être précédé de &.
  • Le compteur de boucles est modifié par la valeur dédiée, qui reste constante pendant la durée de la boucle.
  • Il doit y avoir un seul compteur dans la boucle for.
  • Le compteur de boucles ne doit pas être modifié dans une condition, une instruction et autres.


Analyse sensible au contexte des appels

L'analyse de flux de données de CLion traite désormais différemment les divers appels et a donc gagné en précision. Cela signifie que :

  • CLion analyse séparément chaque fonction pour chaque site d'appel.
  • Les paramètres et les valeurs de retour des différents sites d'appel sont analysés séparément.


Une analyse Lifetime plus puissante

L'analyse de la durée de vie de CLion (basée sur la proposition de Herb Sutter sur la sécurité de la durée de vie) a été améliorée et peut maintenant détecter des cas de dangling iterator et de propriétaires modifiés (CLion suppose que les propriétaires transmis par des références non constantes ont été modifiés).


VCS

Parfois, plusieurs commits sont prêts à être livrés alors que d'autres sont encore en cours de réalisation. Dans ce cas, il est préférable de n'envoyer par push que ceux dont vous êtes sûr·e. La nouvelle action Push All up to Here vous permet d'envoyer les commits en push jusqu'à celui que vous avez sélectionné dans l'onglet Log de la fenêtre d'outils Git.


Autres améliorations

  • L'importation automatique de CLion utilise désormais "" au lieu de <> pour les fichiers d'en-tête appartenant au projet. Ce comportement par défaut peut être modifié en désactivant Settings | Editor | General | Auto Import | C/C++ | Auto import local files with quotes.
  • Afin d'améliorer les performances de CLion pour les projets sur WSL, le moteur de langage basé sur Clangd s'exécute maintenant directement sur WSL dans de tels cas.

Nouveautés et téléchargement de CLion 2021.3

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

Avatar de Aiekick
Membre extrêmement actif https://www.developpez.com
Le 03/12/2021 à 10:30
j'ai pas bien compris la section qui parle de mingw.

pour moi ca fait plus de 2 ans que mingw est intégré a clion.., voir quasi depuis le debut
0  0 
Avatar de Michael Guilloux
Chroniqueur Actualités https://www.developpez.com
Le 06/12/2021 à 9:59
Citation Envoyé par Aiekick Voir le message
j'ai pas bien compris la section qui parle de mingw.

pour moi ca fait plus de 2 ans que mingw est intégré a clion.., voir quasi depuis le debut
Bonjour,

Je ne peux le dire avec certitude, mais d'après ce que j'ai compris, l'option MinGW était disponible pour CLion sous Windows, mais elle est maintenant intégrée de sorte que la configuration est plus rapide.

Citation Envoyé par Stéphane le calme Voir le message


Chaîne d'outils MinGW sous Windows

Lors de la prise en main de CLion sous Windows, il existe plusieurs options pour les environnements : MinGW, Cygwin, Visual Studio ou WSL. Le CLion 201.3 EAP regroupe la chaîne d'outils MinGW pour une configuration rapide, sur laquelle vous pouvez compter si aucune autre option n'est installée sur votre machine.
Citation Envoyé par Michael Guilloux Voir le message


MinGW intégré sous Windows

CLion intègre désormais la chaîne d'outils MinGW sous Windows qui permet une configuration rapide. Elle peut être utilisée si vous n'avez pas d'autres options installées sur votre machine.
0  0