CLion 2020.1 : des dizaines d’améliorations sur l’ensemble de l’EDI, pour CUDA et pour les projets embarqués
Nous espérons tout d’abord que vous prenez tous soin de vous ! Bien qu’il soit parfois difficile de se concentrer sur son travail compte tenu de la situation actuelle, nous faisons de notre mieux pour continuer à faire ce pour quoi nous sommes doués : créer de super outils pour aider les développeurs à augmenter leur productivité. Nous avons donc le plaisir de vous présenter la CLion 2020.1 !
Pour obtenir cette mise à jour, vous pouvez utiliser l’Application Toolbox, un package snap (sous Ubuntu), notre site web ou le correctif mis à jour du dernier build de la version 2019.3 (2019.3.5).
Projets CUDA
CUDA C et C++ sont essentiellement du C/C++ avec quelques extensions et CLion 2020.1 est maintenant capable de traiter correctement le code CUDA. La plupart de nos efforts ont été consacrés à apprendre au moteur linguistique de CLion à analyser correctement ce code, en éliminant ainsi le code rouge et les faux positifs dans l’analyse de code. Cette prise en charge améliorée concerne également la navigation dans le code, la documentation du code et d’autres actions d’assistance au code qui fonctionnent au sein du code CUDA. Et enfin, la saisie automatique du code a été étendue afin de compléter les chevrons pour les appels du noyau :
(Pour le test, nous avons utilisé le projet ClaraGenomicsAnalysis de GitHub.)
De plus, CLion prend désormais en charge les extensions de fichiers CUDA – .cu/.cuh. Vous pouvez les sélectionner lors de la création de nouveaux fichiers C/C++. Au fait saviez-vous que CLion vous propose des cibles CMake pour y ajouter vos fichiers nouvellement créés ? Maintenant, les cibles CUDA (créées avec cuda_add_executable
/ cuda_add_library
) sont ajoutées à la liste des options possibles à sélectionner :
Enfin, vous pouvez démarrer un nouveau projet CUDA dans CLion. L’assistant de nouveau projet vous aide à générer les fichiers CMake et main.cu types. Pour en savoir plus sur la façon de travailler avec les projets CUDA dans CLion, consultez notre aide en ligne.
Développement embarqué
Nous continuons d’améliorer CLion pour le développement embarqué et nous avons fait deux avancées importantes dans cette version. La première est la prise en charge du compilateur IAR. CLion peut maintenant collecter correctement les informations du compilateur, ce qui vous permet d’utiliser efficacement le compilateur dans vos projets embarqués. Voici quelques conseils pour vous aider avec le compilateur IAR :
- MinGW est requis. Utilisez l’environnement MinGW dans les paramètres de la chaîne d’outils IAR de CLion et fournissez les chemins d’accès au compilateur IAR dans les champs correspondants.
- Consultez ces notes sur la façon d’utiliser CMake avec IAR Embedded Workbench.
Nous aimerions ici remercier une fois de plus IAR Systems AB pour son soutien et ses licences partenaire. Et nous tenons à assurer à nos lecteurs que nous allons poursuivre cette collaboration. Notre prochain objectif est d’explorer davantage l’intégration avec cette chaîne d’outils.
Notre deuxième grande avancée est le plugin PlatformIO for CLion. PlatformIO est un écosystème de nouvelle génération et peut être très utile pour démarrer rapidement un projet de développement embarqué (par exemple, pour Arduino). Le plugin génère un projet CMake PlatformIO lorsque le type de projet correspondant est sélectionné dans l’assistant de nouveau projet, faisant appel à une commande PlatformIO en arrière-plan :
Pour ces projets, CLion crée automatiquement des configurations pour le débogage et le chargement. Vous pouvez également créer une configuration de débogage PlatformIO pour utiliser PIO Unified Debugger. Pour plus de détails, consultez la documentation officielle.
Projets Windows
Nous avons constaté qu’un nombre croissant de développeurs sur Windows utilisent CLion. À vrai dire, Windows est selon nos statistiques l’une des principales plateformes de nos utilisateurs. C’est pourquoi nous avons pris en compte plusieurs des demandes les plus courantes de la communauté Windows.
Clang est le deuxième compilateur le plus populaire après GCC (selon le rapport État de l’écosystème des développeurs en 2019). Microsoft Visual Studio Compiler est bien sûr le leader sur Windows, mais Clang-cl est aussi largement utilisé. Vous pouvez l’installer à partir du site web de LLVM ou avec les outils Visual Studio. Et il est maintenant possible de l’utiliser dans CLion !
Une autre bonne nouvelle pour les développeurs sous Windows est que le débogueur LLDB développé par JetBrains pour la chaîne d’outils Visual Studio C++ est maintenant le débogueur par défaut pour cette chaîne d’outils. Vous pouvez donc commencer à l’utiliser directement ! Dans la capture d’écran ci-dessus, vous pouvez voir qu’il est présélectionné pour la chaîne d’outils Visual Studio. Veuillez noter que ce débogueur n’est pas une version ordinaire de LLDB. Il est développé par l’équipe de JetBrains et peut gérer les visualiseurs natifs (pour activer le support des visualiseurs natifs, allez dans Settings | Build, Execution, Deployment | Debugger Data Views | Enable NatVis renderers for LLDB).
Regardez cette courte démo :
Mise à jour des outils Clang
Une autre évolution importante est la transition vers notre moteur linguistique basé sur Clangd chaque fois que possible. Il y a deux raisons principales à cette décision. Tout d’abord, nous voulons développer des fonctionnalités linguistiques plus précises afin d’être en phase avec les récentes mises à jour des normes du langage. Ensuite, nous souhaitons améliorer les performances des actions qui ne sont pas liées à un langage spécifique (ce qui n’est pas toujours possible avec Clang, mais nous continuons à expérimenter d’autres fonctionnalités).
Dans CLion 2020.1, nous avons entièrement transféré l’analyse des flux de données sur Clangd. Qu’est-ce que l’analyse des flux de données et pourquoi est-elle utile ? Cette dernière analyse la façon dont les données passent par votre code et détecte les problèmes potentiels sur la base de cette analyse. Par exemple, elle identifie les conditions qui sont toujours fausses ou toujours vraies, les boucles sans fin, les déclarations de retour manquantes, la récursion infinie, et plus encore :
La plupart des compilateurs ne font pas cela pour vous. Il est certain que l’analyse des flux de données exige une analyse et une résolution très précises du code, et cela peut prendre beaucoup de temps, surtout lorsque la résolution sous-jacente est lente. La transition vers Clangd est donc une étape vers l’amélioration des performances de ces contrôles d’analyse.
Dans les versions précédentes de CLion, nous avons introduit une solution de saisie automatique basée sur Clangd. Mais à l’époque, elle fonctionnait en combinaison avec les solutions de CLion. Dans le cadre de l’itération 2020.1, nous avons peaufiné la saisie automatique fournie par Clang (en corrigeant des dizaines de problèmes connexes et en ajoutant les fonctionnalités de saisie automatique manquantes) et avons finalement activé le mode dans lequel Clang est la seule source de saisie automatique de code dans CLion par défaut. Cela permet de résoudre certains problèmes de priorité et de hiérarchisation.
ClangFormat et Clang-Tidy sont des outils standard pour de nombreux projets C++ et leurs fichiers de configuration sont souvent consignés dans des référentiels de projets. Cependant, l’intégration de CLion pour ces outils ne se faisait pas automatiquement. Nous remercions les utilisateurs qui nous ont signalé ce désagrément ! Maintenant CLion :
- Détecte le fichier de configuration .clang-format à la racine du projet et passe automatiquement au ClangFormat pour vous (notez que l’EDI passe aux paramètres par projet à ce moment).
- Détecte le fichier de configuration .clang-tidy et désactive automatiquement l’utilisation des paramètres EDI pour Clang-Tidy en faveur de ce fichier de configuration.
Nous espérons que cela rendra votre travail avec ces deux outils Clang beaucoup plus agréable !
Regardez cette courte démo :
Améliorations des refactorisations, du formatteur, de la documentation et de l’éditeur
Avec CLion, vous bénéficiez de nombreuses refactorisations et l’une des plus populaires est Change Signature (Ctrl+F6 sur Windows et Linux, ⌘F6 sur macOS). Elle permet de modifier le nom de la fonction et le type de retour, ainsi que d’ajouter, de supprimer et de réorganiser les paramètres. Et son principal avantage (en comparaison avec la mise à jour manuelle de la fonction) est que lors de la modification de la signature d’une fonction, CLion recherche toutes les utilisations de la fonction et met à jour tous les appels, implémentations et remplacements de celle-ci pouvant être modifiés en toute sécurité pour refléter la modification.
Vous pourriez vous demander : qu’arrive-t-il à l’utilisation d’une fonction lorsqu’un nouveau paramètre est ajouté ? Auparavant, CLion ajoutait la valeur du type par défaut aux utilisations comme argument (c’est-à-dire 0
aux valeurs numériques, nullptr
aux pointeurs) afin de garder votre code compilable. Dans la version 2020.1, vous pouvez indiquer à CLion la valeur à substituer pour toutes les utilisations de fonctions mises à jour directement dans la boîte de dialogue de la refactorisation :
Regardez la saisie automatique du code disponible dans le nouveau champ Default value de la boîte de dialogue ! Si vous laissez le champ vide, l’ancien comportement est appliqué et la valeur par défaut du type est utilisée.
Le formatteur a été mis à jour dans cette version, avec de nouveaux paramètres de nommage séparés pour les champs de membres de structure et les champs de membres de classe. Et les pliages de code fonctionnent maintenant pour #pragma region
et #pragma endregion
.
Les autres mises à jour de l’éditeur comprennent :
- La documentation rapide, un outil universel pour prévisualiser la documentation et obtenir des informations sur la signature de fonction, les types inférés et le remplacement de macro, est désormais disponible au survol de la souris.
- La police par défaut dans l’éditeur a été remplacée par JetBrains Mono, une nouvelle police de caractères open source créée par JetBrains.
- Un nouveau thème clair par défaut, IntelliJ Light, est maintenant le thème standard sur tous les systèmes d’exploitation.
- Et si vous avez besoin de travailler avec plusieurs sessions de terminal en même temps, vous pouvez désormais diviser votre terminal verticalement ou horizontalement pour pouvoir exécuter plusieurs sessions côte à côte :
Regardez cette courte démo :
Configurations Run/Debug
Les configurations Run/Debug vous aident à lancer des applications pour les exécuter et les déboguer depuis CLion. Dans cette version, elles ont fait l’objet de plusieurs mises à jour importantes :
- Les configurations Serveur GDB à distance et Serveur GDB embarqué fonctionnent désormais avec des cibles personnalisées. Cela vous permet de déboguer votre application sur un hôte distant ou sur le microcontrôleur à partir de l’instance CLion fonctionnant sur votre machine locale, non seulement dans les projets basés sur CMake mais aussi dans n’importe quelle application personnalisée (y compris la base de données de compilation).
- Les cibles Google Test pour la version 1.8.1 et supérieure sont maintenant reconnues correctement dans CLion, et les configurations Run/Debug correspondantes sont créées automatiquement (ce qui permet d’exécuter des tests dans le lanceur de tests intégré de CLion).
CLion 2020.1 apporte la prise en charge des macros et variables de chemin d’accès aux configurations Run/Debug :
- Les macros sont prédéfinies et vous pouvez consulter la liste des macros disponibles dans la boîte de dialogue, qui s’ouvre lorsque vous cliquez sur un signe plus dans la boîte de dialogue des configurations Run/Debug. Veuillez noter que les macros ne sont pour l’instant disponibles que pour les applications CMake, Custom Build et Gradle Native.
- Les variables de chemin peuvent être configurées dans Settings/Preferences | Appearance & Behavior | Path Variables. Le cas d’utilisation typique consiste à créer une variable de chemin d’accès pour une bibliothèque qui est largement utilisée dans vos projets mais qui se trouve en dehors du répertoire du projet.
La macro Prompt/FilePrompt est particulièrement utile lorsqu’elle est combinée avec le nouveau champ Redirect input from dans la configuration. Ce champ vous aide à rediriger la saisie d’un fichier vers le stdin de votre application et la macro FilePrompt invoque un dialogue de sélection de fichier chaque fois que l’application se lance :
Regardez cette courte démo :
Mises à jour de la plateforme IntelliJ
Comme d’habitude, les améliorations du VCS et de la plateforme IntelliJ arrivent sur CLion, en plus d’une mise à jour du plugin IntelliJ Rust. Nous publierons plus d’informations sur cette denière prochainement, alors restez à l’écoute !
Quoi de neuf concernant la prise en charge de Makefile ?
Oulala ! Qui a parlé de travailler sur la prise en charge de Makefile dans CLion ?! Eh bien, qui que ce soit, il avait raison. Nous avons créé un prototype de l’analyseur de projet Makefile au sein de CLion et avons écrit une article de blog concernant l’approche que nous avons adoptée et l’état de la solution actuelle. Et avec l’aide de nos fidèles utilisateurs, nous avons établi une liste de projets pour tester ce prototype.
Il y a environ 40 projets sur la liste en ce moment, et plus de la moitié d’entre eux ont été vérifiés (CPython, certains projets embarqués, Nano, Nodejs, PostgreSQL). Pour la plupart, ils ont bien fonctionné. Néanmoins, il y a certains projets sur lesquels le prototype a échoué (par exemple, à cause de wrappers tels que libtool). Parmi ces projets, Vous pouvez trouver GCC, FreeBSD, Wine et Perl. Quelques utilisateurs courageux ont testé le prototype sur leurs projets et nous ont fait part de retours d’expérience vraiment intéressants ! Merci à tous pour vos contributions.
Donc, le travail continue. Nous prévoyons de rendre le prototype public avec l’EAP 2020.2. En attendant, si vous souhaitez nous aider dans cette entreprise, consultez cet appel.
Voilà, vous savez tout ! Essayez CLion 2020.1. Vous pouvez simplement faire une mise à jour si vous avez un abonnement actif ou opter pour un essai de 30 jours gratuit pour évaluer les nouvelles fonctionnalités !
L’Équipe CLion
JetBrains
The Drive to Develop
Auteur de l’article orginal en anglais : Anastasia Kazakova