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

Dans la version 2022.2 de CLion, JetBrains propose une meilleure intégration avec CMake et les Presets CMake. L'entreprise a aussi amélioré la fenêtre contextuelle Quick Documentation, pour en faire une source de connaissances sur votre code C++ et CMake. L'amélioration de l'analyse statique et dynamique du code, l'intégration améliorée du débogueur et les améliorations des performances pour les chaînes d'outils Docker et à distance contribuent à la productivité de votre développement.

Intégration avec CMake

CLion est maintenant fourni avec CMake 3.23. Cette version améliore l'intégration de l'EDI avec les presets CMake et facilite la mise à jour des options et des scripts CMake.

Quick Documentation dans CMake

La fenêtre contextuelle Quick Documentation est désormais disponible dans les scripts CMake. La documentation s'affiche pour les entités CMake standard :

  • Commandes
  • Politiques
  • Modules
  • Variables
  • Propriétés

La documentation est toujours rendue pour la version de CMake intégrée actuellement, elle n'est pas disponible pour les entités définies par l'utilisateur pour l'instant.

Saisie semi-automatique pour les commandes liées à Qt

Lors de la modification des fichiers CMake dans CLion, vous pouvez utiliser la saisie semi-automatique pour les commandes et variables CMake dont les noms sont statiques. La version 2022.2 voit les commandes liées à Qt s'ajouter aux listes de saisie semi-automatique.

Visionneuse de cache et éditeur d'options pour CMake

Vous pouvez dorénavant passer en revue les variables du cache CMake et modifier les options CMake transmises à la commande CMake dans une interface utilisateur unique basée sur une table dans Settings | Build, Execution, Deployment | CMake.

Cliquez sur la table et commencez à taper pour rechercher une variable ou sa valeur. CLion affiche également une brève description des variables du cache CMake dans des infobulles.


Presets CMake

Lors de la création automatique de profils CLion pour tous les préréglages de configuration et de build, CLion utilise maintenant un nouveau schéma de nommage pour les profils CMake créés dans CLion :

  • Les préréglages de configuration sont importés sous le nom configure-preset-name.
  • Les préréglages de build sont importés sous forme de combinaison configure-preset-name - build-preset-name.

Une action de copie pour les profils créés à partir de préréglages est disponible.

Sortie Ninja colorisée

La sortie colorisée du compilateur permet de gérer beaucoup plus rapidement les erreurs de compilation. C'est pourquoi JetBrains a apporté sa propre contribution à CMake v3.24. Dans CLion, l'éditeur de logiciels a mis en place un moyen d'activer par défaut la sortie colorisée pour le générateur Ninja dans CMake.

Précisons que CLion intègre pour l'instant la version 3.23 de CMake. Pour obtenir la sortie colorisée, vous devez disposer de CMake 3.24 et l'utiliser dans la chaîne d'outils CLion.

Documentation du code

La fenêtre contextuelle Quick Documentation (Ctrl+Q) est un outil universel qui vous apporte plus d'informations sur un élément de code au niveau du curseur. Par défaut, CLion affiche automatiquement la documentation rapide dans une fenêtre contextuelle au survol de la souris. Dans la version 2022.2, CLion fournit davantage d'information sur le code à cette documentation.

Valeurs des expressions constantes

Lorsque vous parcourez la base de code, vous avez régulièrement besoin de contrôler la valeur des expressions constantes. CLion affiche maintenant la valeur des expressions évaluées au moment de la compilation dans la fenêtre contextuelle Quick Documentation. Cela concerne les instanciations de consteval, constexpr, ou de modèle, pour ne citer que quelques exemples.

Valeurs des enum

CLion 2022.2 permet d'afficher la valeur enum sous forme d'entier dans la fenêtre contextuelle Quick Documentation.

Copiable et déplaçable

Il peut être utile de voir si une déclaration struct ou class donnée prend en charge les opérations copy et move, c'est pourquoi CLion affiche maintenant ces informations dans la fenêtre contextuelle Quick Documentation.

Développement embarqué

Les serveurs GDB sont souvent utilisés pour déboguer sur puce. Un nouvel assistant permet de créer des configurations d'exécution de serveur GDB embarqué avec les arguments de serveur GDB prédéfinis correspondant au type de serveur GDB sélectionné dans les paramètres de cet assistant. Voici la liste des types pris en charge :

  • Segger JLink
  • émulateur QEMU
  • PyOCD
  • St-util
  • Serveur GDB STM32CubeIDE ST-LINK
  • PE Micro (OpenSDA)


Analyse statique

JetBrains cherche toujours à améliorer la précision de l'analyse du code dans CLion. CLion 2022.2 supprime de nombreux avertissements incorrects, ajoute de nouvelles vérifications et permet à Clangd de reconnaître correctement l'option -std=gnu++23.

Analyse d'intervalles

L'analyse du flux de données de CLion calcule maintenant les limites supérieure et inférieure des valeurs possibles pour chaque variable intégrale. Cela fournit des informations supplémentaires pour les vérifications telles que Unreachable code, Constant conditions, etc.

En plus de cette analyse d'intervalle, JetBrains a intégré la vérification Array index is out of bounds. Elle signale les variables qui accèdent à un tableau ou à une mémoire tampon allouée via l'index, qui peut être hors limites.

Nouveau widget Clang-Tidy

Si vous préférez les fichiers de configuration Clang-Tidy aux paramètres de l'EDI, sélectionnez cette option dans Settings | Editor | Inspections | C/C++ | Static Analysis Tools | Clang-Tidy. Dans ce cas, un nouveau widget s'affiche en haut à droite de l'éditeur :

  • Si aucun fichier ne contient des paramètres, le widget vous aidera à en créer un.
  • Si vous souhaitez connaître la configuration exacte de Clang-Tidy utilisée par CLion pour analyser le fichier actuel, vous pouvez l'ouvrir grâce au nouveau widget.


Mise en évidence de la configuration

Les paramètres d'inspection dans Settings | Editor | Inspections donnent à présent un rendu visuel du style de mise en évidence. Si vous souhaitez modifier l'apparence d'une inspection dans l'éditeur, vous pouvez la configurer à l'aide du nouveau menu déroulant Highlighting in editor, qui affiche de façon pratique tous les styles de mise en évidence disponibles.


Analyse dynamique

Valgrind Memcheck est un outil intégré à CLion pour détecter les problèmes d'utilisation de la mémoire. Dans la version 2022.2, JetBrains a amélioré le signalement des problèmes de configuration. CLion vous avertit maintenant si Valgrind Memcheck est lancé pour la configuration de la version et s'il manque des informations de débogage pour l'exécutable.

Débogueur

Serveurs de symboles sous Windows

Lors du débogage, il arrive que les symboles de la bibliothèque ne soient pas disponibles sur votre machine locale. Dans ce cas, vous pouvez utiliser un serveur de symboles, un serveur de fichiers qui centralise vos symboles de débogage sur un serveur plutôt que sur la machine de chaque développeur. Dans CLion sous Windows, vous pouvez désormais configurer des serveurs de symboles pour le débogueur dans Settings | Build, Execution, Deployment | Debugger | Symbol Servers.

Intégration de GDB et LLDB

CLion v2022.2 intègre GDB v12.1 et LLDB v14.

Développement à distance

Si vous développez à distance avec des sources locales, l'étape de synchronisation initiale peut prendre un certain temps. CLion 2022.2 utilise rsync pour synchroniser votre configuration de déploiement. Les mesures de JetBrains ont montré que cette modification apportait une amélioration significative des performances.

Docker

Améliorations des performances

Pour améliorer les performances de la collecte d'informations du compilateur pour la chaîne d'outils Docker, CLion utilise désormais Docker exec au lieu de run.

Environnement

Les chaînes d'outils des images Docker disposent généralement d'un fichier d'environnement situé à l'intérieur de l'image. CLion sélectionne maintenant correctement ce fichier à l'intérieur du conteneur.

Mises à jour du plugin Rust

IntelliJ Rust tient désormais compte de #![recursion_limit], qui contrôle la profondeur d'expansion des macros. Si vous n'avez pas besoin que vos macros s'étendent complètement, vous pouvez régler le paramètre Maximum recursion limit for macro expansion.

JetBrains a également activé la nouvelle approche de détection des modifications dans les fichiers de configuration, ainsi qu'une nouvelle façon de recharger les modèles de projet.

Autres améliorations du plugin Rust IntelliJ :

  • Le plugin peut maintenant convertir JSON en structs Rust par copier-coller.
  • JetBrains a ajouté des inspections et des correctifs rapides pour les lints unused_must_use et clippy::double_must_use.
  • Le plugin analyse maintenant les paramètres génériques, les alias de type et les liaisons de type des types associés aux génériques.
  • Si l'option Emulate terminal in output console est activée, le bon terminal est maintenant utilisé.
  • JetBrains a implémenté certaines améliorations pour l'inférence de type, notamment la coercition non dimensionnée.
  • Les URL sont mises en évidence et vous pouvez les ouvrir dans un navigateur.

Intégration de Space

L'intégration de Space est désormais automatique dans CLion 2022.2. Grâce à cette intégration de premier ordre, vous pouvez parcourir les projets Space et en cloner le référentiel, puis commencer à travailler directement sur ces projets. Lorsque vos modifications sont prêtes, vous pouvez créer une requête de fusion et effectuer une révision du code sans quitter l'EDI.


Autres améliorations

La prise en charge du développement CUDA dans CLion a été améliorée. Les projets de base de données de compilation CUDA sont désormais pris en charge dans CLion. Et l'intégration du débogueur CUDA-gdb a été corrigée pour vous permettre de sortir correctement des appels CUDA.

CLion v2022.2 active l'indexation des en-têtes système pour la chaîne d'outils Microsoft Visual C++. L'importation automatique fonctionne donc pour ces en-têtes.

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