Fin mars, JetBrains a annoncé la sortie de CLion 2019.1, la première mise à jour majeure annuelle de son EDI C/C++ pour Linux, macOS et Windows intégré au système de génération CMake. Celle-ci apportait un bon lot de fonctionnalités et améliorations. Parmi les plus notables, rappelons que CLion 2019.1 a fait quelques pas vers le développement embarqué. À part cela, ses refactorings C++ sont désormais plus précis et la mise en surbrillance du code a été transférée à Clangd pour rendre l'éditeur plus réactif. Pour vous aider aussi à suivre votre style de codage préféré, on note dans la version 2019.1 que CLion s’intègre maintenant au célèbre outil ClangFormat et ajoute la prise en charge de divers schémas de nommage C/C++.
JetBrains vient de publier CLion 2019.2, la deuxième mise à jour majeure de l'année de son EDI C/C++, qui apporte aussi bon nombre de nouveautés : améliorations pour le développement embarqué et ajout de nouvelles capacités de débogage, notamment un débogueur expérimental pour la chaîne d'outils Microsoft Visual C++. CLion 2019.2 embarque en outre des nouveautés pour faciliter l'édition de code, des performances améliorées, entre autres.
Développement embarqué
JetBrains a commencé à travailler sur le support du développement embarqué dans CLion, comme en témoignait la version 2019.1. Dans cette nouvelle itération, l'éditeur de logiciels pour les développeurs continue dans la même lancée avec une large gamme de capacités de débogage sur puce et un nouvel onglet Périphériques.
Débogage sur puce avec GDB Server
Pour le débogage sur puce, vous pouviez déjà utiliser le débogueur OpenOCD fourni dans la version 2019.1. Rappelons qu’OpenOCD (Open On-Chip Debugger) est un outil open source pour le débogage de microcontrôleurs. Mais la liste des débogueurs se rallonge dans CLion 2019.2. Si votre microcontrôleur prend en charge le débogage via un serveur GDB, vous pouvez maintenant le faire dans CLion. Cela signifie que pour OpenOCD, les serveurs GDB ST-Link, le serveur GDB Segger J-Link, QEMU et de nombreux autres serveurs GDB spécifiques, vous pouvez les exécuter à partir de CLion et bénéficier des capacités de débogage intégrées fournies par CLion. Tout ce que vous avez à faire est de fournir les paramètres dans la configuration Run/Debug "Embedded GDB Server" qui a été récemment ajoutée :
Configurez le chemin d'accès au serveur GDB personnalisé, les arguments spécifiques au serveur GDB (par exemple, le numéro de port ou un fichier de configuration de la carte) et, si nécessaire, le répertoire de travail, les variables d'environnement, la commande de réinitialisation de la carte et le délai de démarrage. Notez que, comme pour la configuration Run/Debug OpenOCD, cette nouvelle configuration fonctionne uniquement avec les projets basés sur CMake pour le moment. Mais à l'avenir, JetBrains prévoit d'ajouter la possibilité de lancer ces configurations pour les cibles personnalisées (Custom Targets).
Une vue Périphériques pour les périphériques ARM
Pour les périphériques ARM, il y a souvent une vue Périphériques spécifiée décrite dans le fichier .svd pour votre type de microcontrôleur. CLion offre maintenant un moyen pratique de lire ces valeurs dans l’onglet Périphériques dédié de la fenêtre de l’outil de débogage :
Il fonctionne avec les configurations "Embedded GDB Server" et "OpenOCD Download & Run" et est disponible lorsqu'un ou plusieurs fichiers .svd sont chargés. En outre, il est utile de savoir que vous pouvez effectuer une recherche dans la vue Périphériques (il suffit de commencer à saisir le nom que vous recherchez), exporter la vue au format CSV ou l’ouvrir dans l’éditeur pour une recherche ultérieure.
Nouveautés pour le débogueur
On note des améliorations relatives à GDB, le débogueur standard du projet GNU : CLion 2019.2 est en effet livrée avec GDB 8.3 et introduit une nouvelle série de correctifs pour le débogueur en vue d'améliorer l'expérience utilisateur.
Comme autre nouveauté, on peut citer la complétion pour les commandes GDB/LLDB. Précisons que LLDB (Low Level Debugger), est un débogueur pour les langages de programmation Objective-C, C++ et C et constitue un sous-projet de LLVM. Si vous devez utiliser l'interface de ligne de commande pour GDB/LDB, vous pouvez désormais le faire facilement dans CLion.
C'est sans doute l'une des fonctionnalités les plus importantes de cette version : CLion 2019.2 vient avec un débogueur expérimental pour la chaîne d'outils Microsoft Visual C++ (MSVC)
Il convient de dire quelques mots sur la technologie sur laquelle repose ce débogueur expérimental. Pour le code compilé avec le compilateur Microsoft Visual C++, plusieurs moteurs de débogage sont disponibles dans différents outils. Dans les outils Microsoft, c'est le moteur vsdebugeng.dll qui est utilisé, mais il n’est pas disponible pour d’autres outils en raison des limitations de licence. Les outils de débogage pour Windows CDB et WinGDB, quant à eux, utilisent le moteur dbgeng.dll.
Initialement, JetBrains a essayé de créer un débogueur au-dessus de ce moteur. Mais plusieurs problèmes ont été rencontrés, notamment des crashs et des performances médiocres sur des fichiers binaires volumineux comportant de nombreux PDB. Cela a poussé JetBrains à explorer une autre option : l’implémentation d’un débogueur au-dessus de LLDB, et ça a marché. Il reste encore beaucoup de travail à faire, mais JetBrains est plutôt optimiste à propos de son débogueur. Basé sur LLDB, il peut fonctionner avec les visualiseurs natifs issus de l'installation de Visual Studio ou de votre projet.
Une autre nouveauté concerne la vue Mémoire. La vue mémoire vous aide à visualiser la mémoire brute du processus en cours lors du débogage. Dans la version 2019.2, plusieurs mises à jour ont été apportées à celle-ci. Par exemple, vous pouvez accéder à une adresse particulière dans la mémoire à partir de la vue Mémoire, grâce à une nouvelle capacité appelée "Go to address". Dans la vue Mémoire, un nouveau champ "Go to" a en effet été ajouté. Il suffit d'indiquer une adresse (en hexadécimal), un nom de variable ou appeler son adresse via "&" pour passer à l'adresse correspondante :
Nouveautés dans l'éditeur
La vérification (check) "Unused Includes" est de retour et est plus précise. La vérification "Unused Includes" a été désactivée pendant un certain temps en raison des multiples faux positifs qu’elle a provoqués. Maintenant, JetBrains l'a complètement réimplémentée au-dessus de Clang et l'a réactivée par défaut. Soulignons aussi que Clang-Tidy (un outil de vérification de code) a été mis à jour vers une version plus récente de Clang, ce qui lui permet d'apporter un ensemble de nouvelles vérifications à CLion.
CLion 2019.2 affiche aussi des indications sur les noms des paramètres pour faciliter la lecture de votre code. Vous avez probablement déjà consulté un appel de fonction avec des paramètres tels que ‘true, false, true’ ou ‘10, 20, 30’ et avez essayé de deviner ce que chaque élément signifiait. Vous pouvez bien sûr accéder à la déclaration de fonction, consulter la documentation rapide ou appeler les informations sur les paramètres, mais vous voulez obtenir ces informations encore plus rapidement. C'est là qu'entrent en jeu les indications sur les noms de paramètres. Pour les appels de fonction, les lambdas, les constructeurs, les listes d'initialiseur et les expressions de macro, CLion affiche désormais les noms des paramètres pour les arguments transmis. Cela fonctionne si un argument est un littéral ou une expression avec plusieurs opérandes.
Comme autre nouveauté au niveau de l'édition de code, citons encore l'assistance de code dans les fichiers de configuration ClangFormat. L'outil ClangFormat est largement utilisé dans le monde C/C++ et est même considéré comme un standard par de nombreux développeurs. Dans CLion, il a été ajouté en tant que formateur de code alternatif dans la version 2019.1. Depuis, JetBrains dit avoir constaté que les utilisateurs ont tendance à mettre à jour les fichiers de configuration .clang-format dans leurs projets dans CLion. C’est pourquoi l'éditeur de logiciels leur a ajouté cette nouveauté : CLion complète le nom des options et leurs valeurs, en affichant la description de l’option dans la fenêtre de complétion, alors que la documentation rapide fournit la documentation d'origine avec des exemples.
Autres nouveautés et améliorations
Amélioration des performances
JetBrains fait de la performance l'une de ses priorités dans les différentes versions de CLion, mais souvent les modifications nécessitent plus de travail et peuvent même affecter la manière dont CLion interagit avec la plateforme IntelliJ. Toutefois, des améliorations de performances pour l'EDI arrivent dans chaque version. Dans CLion 2019.2, on note par exemple que la refactorisation "Rename" sur place (in-place Rename) a été retravaillée pour éliminer les retards et les blocages. Les performances de la complétion de code pour les expressions qualifiées dans l'éditeur ont également été considérablement améliorées. En outre, la collecte d'informations du compilateur et le chargement de l'étape CMake dans des cas distants ont été accélérés en réduisant le nombre d'opérations d'entrée/sortie. Précisons aussi que CLion vous avertit maintenant lorsque Windows Defender affecte les performances de build et peut exclure automatiquement les répertoires de l'analyse en temps réel du logiciel de sécurité.
Coloration syntaxique pour plus de 20 nouveaux langages
Il y a souvent du code provenant d'autres langages de programmation dans votre projet C ou C++. Python, JavaScript, HTML, XML et SQL sont tous inclus dans CLion. Et il existe un plugin pratique pour Rust. Mais qu'en est-il des autres qui ne sont pas aussi populaires dans le monde C++, mais qui sont toujours utilisés ? Par exemple, Ruby et C#. Dans la version 2019.2, JetBrains a ajouté la coloration syntaxique pour plus de 20 langages de programmation différents, et tout fonctionne immédiatement. Aucune configuration supplémentaire n'est requise, grâce à la collection de fichiers de grammaire linguistique de TextMate fournie avec l'EDI.
Support des scripts Shell
Lorsqu'on parle de langages complémentaires dans les projets C et C++, les scripts shell sont naturels pour la majorité de ces projets. Il n’est pas inhabituel de générer du code ou effectuer d'autres actions dans de tels scripts. L’assistance à l'édition de code dans les scripts shell peut donc vous aider à augmenter votre productivité. C’est pourquoi, avec CLion 2019.2, JetBrains offre un plugin de script Shell, qui fournit des fonctionnalités utiles telles que la coloration syntaxique du code, la complétion des mots et des chemins, entre autres. Cela rend donc l'écriture de script Shell plus facile. Et vous pouvez vérifier les scripts directement dans l'EDI, en les exécutant dans le terminal intégré.
Mise à jour du plugin Rust
Le plugin Rust a été mis à jour de manière significative dans cette version, une mise à jour qui permet d'activer des fonctionnalités telles que la coloration, la résolution de noms et la complétion pour les modules générés, etc.
Télécharger CLion 2019.2
Voir aussi :
WebStorm 2019.2 disponible : tour d'horizon des nouveautés de l'EDI de JetBrains pour les développeurs JavaScript
IntelliJ IDEA 2019.2 apporte des fonctionnalités en préversion de Java 13, des outils de profilage et bien plus encore
CLion 2019.1 disponible : l'EDI C/C++ vient avec un meilleur support du développement embarqué, ClangFormat comme formateur de code alternatif et plus
Python en 2018, les chiffres clés de la communauté : EDI, frameworks, utilisation, SGBD, ORM, tests...
La version 2019.2 de YouTrack, le logiciel de gestion de projet et de suivi des incidents est disponible et peut être désormais connecté à Bitbucket
CLion 2019.2 disponible, l'EDI C/C++ de JetBrains apporte des améliorations pour le développement embarqué
Et un débogueur expérimental MSVC
CLion 2019.2 disponible, l'EDI C/C++ de JetBrains apporte des améliorations pour le développement embarqué
Et un débogueur expérimental MSVC
Le , par Michael Guilloux
Une erreur dans cette actualité ? Signalez-nous-la !