Nouveautés de CLion

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.

Nouveautés de CLion 2020.1

Développement embarqué

Chaîne d'outils IAR

Chaîne d'outils IAR

Si vous utilisez le compilateur/la chaîne d'outils IAR dans vos projets intégrés, vous pouvez désormais le faire dans CLion. La collecte des informations du compilateur n'échoue plus, ce qui signifie que les projets utilisant la chaîne d'outils IAR se chargent correctement et fonctionnent dans CLion.

Quelques points sont à noter ici :

  • MinGW est requis.
  • Quelques astuces d'utilisation pour CMake et IAR Embedded Workbench.
PlatformIO

PlatformIO

PlatformIO est un écosystème de nouvelle génération qui gagne rapidement en popularité. Pour en bénéficier dans vos projets embarqués, profitez du nouveau plugin PlatformIO for CLion qui :

  • Ajoute le type de projet PlatformIO à l'assistant New Project.
  • Génère le projet PlatformIO CMake correspondant.
  • Crée automatiquement des configurations pour le débogage et le téléchargement sur serveur.
  • Permet le débogage avec le débogueur PIO Unified Debugger de CLion directement sur puce.

Et bien plus! Consultez la documentation officielle pour en savoir plus.

Prise en charge de CUDA

Analyse du code et assistance au codage

Le code en CUDA C et C++, y compris toutes les extensions CUDA spécifiques, est maintenant analysé et mis en évidence correctement. Par conséquence la navigation dans le code, la documentation et autres actions d'assistance au codage fonctionnent dans un code CUDA. De plus, CLion peut compléter les chevrons pour les appels au noyau.

Clonons le projet ClaraGenomicsAnalysis de GitHub pour découvrir les capacités de prise en charge de CUDA dans CLion.

Nouvel assistant de projet

Nouvel assistant de projet

L'assistant New Project dans CLion a été mis à jour avec une nouvelle option pour créer des projets CUDA - bibliothèques ou exécutables. Une fois sélectionnée, elle génère pour vous des exemples de fichiers CMakeLists.txt et main.cu.

Extensions de fichiers et cibles CMake

Extensions de fichiers et cibles CMake

Les nouvelles extensions de fichiers CUDA prises en charge, .cu et .cuh, sont disponibles dans la nouvelle boîte de dialogue de création de fichiers C/C++. Et la liste des cibles possibles à mettre à jour dans cette boîte de dialogue comprend à la fois des cibles générales CMake et des cibles spécifiques CUDA (créées avec les commandes cuda_add_executable et cuda_add_library).

Pour en savoir plus

Développement sous Windows

Clang-cl

Clang-cl

L'utilisation de clang-cl est maintenant possible dans CLion sous Windows, avec les versions 8.0 et ultérieures prises en charge.

Vous pouvez l'installer à partir du site Web de LLVM ou avec les outils Visual Studio. Une fois l'opération terminée, sélectionnez la chaîne d'outils Visual Studio dans CLion et pointez sur clang-cl.exe dans les paramètres de la chaîne d'outils.

Débogueur pour la chaîne d'outils Visual Studio C++

Débogueur pour la chaîne d'outils Visual Studio C++

Le débogueur basé sur LLDB pour la chaîne d'outils Visual Studio C++ développé par JetBrains est maintenant le débogueur par défaut pour cette chaîne d'outils. Vous pouvez donc commencer à l'utiliser directement !

Notez que la prise en charge groupée des visualiseurs natifs doit être activée explicitement dans Settings | Build, Execution, Deployment | Debugger Data Views | Enable NatVis renderers for LLDB.

Configurations Run and Debug

Cibles personnalisées pour GDB distant et intégré

Cibles personnalisées pour GDB distant et intégré

Les configurations Serveur GDB à distance et Serveur GDB embarqué fonctionnent désormais avec des cibles personnalisées. Ces configurations, qui ne fonctionnaient auparavant qu'avec les cibles CMake, vous permettent de déboguer votre application sur un hôte distant ou sur le microcontrôleur depuis l’instance CLion exécutée sur votre machine locale.

Si vous avez déjà créé ces configurations, CLion 2020.1 stockera les paramètres de configuration Run/Debug précédents dans le répertoire projectFilesBackup du dossier de projet et vous en informera.

Prise en charge des macros et des variables de chemin d'accès dans les configurations Run/Debug

Prise en charge des macros et des variables de chemin d'accès dans les configurations Run/Debug

Vous pouvez désormais utiliser des variables de chemin d'accès et des macros dans les champs Program Arguments et Working Directory dans les configurations CMake, Custom Build et Gradle Native Applications. Les macros vous aident à obtenir des valeurs pour :

  • Le répertoire de build pour la configuration d'exécution CMake actuelle.
  • Le répertoire de génération pour la configuration d'exécution CMake actuelle.
  • Le répertoire du fichier de projet.
  • Et bien d'autres.

Les macros FilePrompt/Prompt peuvent être utilisées pour afficher une boîte de dialogue de sélection de fichier ou de saisie de chaîne de caractères lors de l'exécution/du débogage de la configuration.

La variable de chemin d'accès peut définir un chemin d'accès à une bibliothèque largement utilisée dans vos projets mais qui se trouve en dehors du répertoire du projet.

Redirection d'entrée

Redirection d'entrée

Si vous avez besoin de rediriger l'entrée d'un fichier vers le stdin de votre application, c'est maintenant possible. Utilisez le nouveau champ de configuration appelé Redirect input from. Entrée:

  • Un chemin relatif (CLion précédera le chemin du répertoire de travail).
  • Un chemin absolu (il sera remappé pour les configurations distantes).
  • Ou des macros (comme FilePrompt).

Outils Clang

Analyse du flux de données sur Clangd

Analyse du flux de données sur Clangd

L'analyse de flux de données (DFA) de CLion fait quelque chose qu'un compilateur n'est généralement pas capable de faire : il analyse la façon dont les données transitent par votre code et détecte les problèmes potentiels en fonction des résultats. Elle intercepte les conditions toujours fausses/vraies, les boucles sans fin, les instructions de retour manquantes, la récursion infinie, etc. Et avec la version 2020.1, la DFA est passée au moteur de langage basé sur Clangd pour devenir plus précis et moins lourd en termes de performances. Le travail n'est pas terminé, mais de bons résultats sont déjà à disposition !

Saisie semi-automatique pour Clangd-only

Saisie semi-automatique pour Clangd-only

Un nouveau mode, dans lequel la saisie semi-automatique est entièrement fournie par le moteur de langage basé sur Clangd, est activé par défaut. Ce mode résout les problèmes de hiérarchisation et de classement qui se produisaient lorsque les résultats de la saisie semi-automatique du code de plusieurs moteurs étaient mélangés. Ce comportement est contrôlé par le paramètre Code Completion dans Settings | Languages & Frameworks | C/C++ | Clangd.

Des dizaines de correctifs et d'améliorations renforcent la précision et la puissance de ce nouveau mode.

Pour en savoir plus

ClangFormat

ClangFormat

Désormais, lorsque vous ouvrez un projet pour la première fois avec un fichier de configuration .clang-format à la racine du projet, CLion le détecte et basculer automatiquement vers ClangFormat pour vous.

Si vous activez ClangFormat pour un projet ne comportant pas de fichier de configuration .clang-format, CLion vous proposera d'en créer un pour vous.

Clang-Tidy

Clang-Tidy

Lorsqu'un fichier de configuration .clang-tidy est détecté dans le projet, CLion désactive désormais automatiquement l'utilisation des paramètres de l'IDE pour Clang-Tidy. Le comportement est contrôlé par Prefer .clang-tidy files over IDE settings dans Settings | Editor | Inspections | C/C++ | General | Clang-Tidy.

Formatteur et pliage du code

Nouveaux paramètres de nommage

Nouveaux paramètres de nommage

Les champs de membres de structure et les champs de membres de classe ont désormais des paramètres de nommage différents. Découvrez-les dans Settings | Editor | Code Style | C/C++ | Naming Convention.

Pliage du code

Pliage du code

#pragma region et #pragma endregion peuvent être utilisees dans CLion pour le pliage de code.

Mise à jour des refactorisations

Mise à jour des refactorisations

Lors de l'appel de la refactorisation Change Signature (Ctrl+F6), CLion actualise toutes les utilisations de la fonction. Un nouveau champ Default value dans la boîte de dialogue Change Signature offre la possibilité de spécifier la valeur du paramètre pour toutes les utilisations. Laissez-le vierge pour utiliser le type de valeur par défaut.

La même logique et un nouveau champ Default value s'appliquent au correctif rapide Create Parameter From Usage et à l'intention Add Parameter to Constructor.

Éditeur

Documentation rapide

Documentation rapide

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.

Contrôlez cet outil à l'aide du paramètre Show quick documentation on mouse move dans Settings | Editor | Code Editing.

JetBrains Mono et IntelliJ Light

JetBrains Mono et IntelliJ Light

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. Elle a été spécialement conçue pour faciliter la lecture du code.

Un nouveau thème clair par défaut, IntelliJ Light, est maintenant le thème standard sur tous les systèmes d'exploitation. Utilisez View | Quick Switch Scheme | Theme pour sélectionner un thème autre que celui par défaut si vous le souhaitez.

Sessions de terminal fractionnées

Sessions de terminal fractionnées

Avec CLion 2020.1, vous pouvez fractionner les sessions de terminal verticalement ou horizontalement afin de pouvoir les exécuter côte à côte. Vous pouvez appeler le menu contextuel à partir du terminal pour créer une session de terminal fractionnée, y naviguer et la fermer.

Contrôle de version

Fenêtre d'outil Commit et boîte de dialogue Commit

Nouvelle fenêtre d'outils Commit

Une fenêtre d'outil actualisée offre davantage d'espace pour la liste des fichiers modifiés et le diff. Elle vous permet également d'ajouter des modifications à un commit quand elles sont prêtes, de composer un message de commit de manière itérative, et de choisir quelle modification échelonnée va dans quel commit.

La nouvelle interface utilisateur est activée par défaut pour les nouveaux utilisateurs. Les utilisateurs existants peuvent l'activer dans Settings | Version Control | Commit.

Interactively Rebase from Here

Une boîte de dialogue mise à jour et véritablement interactive permet de :

  • Sélectionner une action que vous souhaitez effectuer sur chaque commit de votre branche.
  • Consulter un graphique montrant quelles actions ont été appliquées.
  • Afficher les détails des commits.
  • Consulter un diff et révisez ou réinitialisez les modifications si nécessaire.

Installer Git depuis l'EDI

La fenêtre d'outil Version Control s'appelle désormais la fenêtre d'outil Git, ou Subversion/Mercurial/Perforce si vous utilisez l'un de ces outils au lieu de Git.

Vous n'avez plus besoin de préinstaller Git manuellement ! Lorsque vous ouvrez un projet à l'aide de Git ou en importez un à partir du VCS, si vous n'avez pas Git sur votre machine, CLion vous proposera de télécharger et d'installer Git pour vous.

Mise à jour du plugin Rust

Mise à jour du plugin Rust

Grâce aux améliorations apportées à la prise en charge de LLDB, IntelliJ Rust affiche désormais correctement les énumérations et les types primitifs, et il affiche également clairement les noms de fonction dans la pile des appels.

Autre mise à jour majeure qui a atterri dans l'extension : l'intégration avec REPL. Appelez la console depuis Tools | Rust REPL et utilisez-la pour le prototypage et la vérification de votre code ligne par ligne. L'intégration fournit la mise en évidence de la syntaxe et la saisie semi-automatique du code, ainsi que certaines actions pratiques de la console : historique des commandes, retours à la ligne, défilement rapide jusqu'à la fin, etc.

Du côté de la prise en charge des langages, IntelliJ Rust gère désormais les blocs impl pour les alias de types. Pour tenir compte des performances, nous n'avons activé cette fonctionnalité que pour les types avec un nombre limité d'alias.

Parmi les autres améliorations, citons la mise en évidence des variables locales inutilisées, des corrections de la prise en charge des attributs cfg et la nouvelle inspection Lift return.

Autres améliorations

  • Toutes les configurations distantes bénéficient désormais de l'interface utilisateur des configurations SSH communes et unifiées. Peu importe d'où provient une nouvelle configuration SSH (qu'il s'agisse de paramètres de chaînes d'outils distantes ou de configurations de serveur GDB distant), elle sera répertoriée dans Settings | Tools | SSH Configurations.
  • Si vous souhaitez vous concentrer uniquement sur votre code source, vous pouvez sélectionner un nouveau mode Zen, qui combine le mode sans distraction et le mode plein écran. Pour l'activer, cliquez sur View | Appearance | Enter Zen Mode.