CLion 2024.3 marque une nouvelle étape importante pour CLion Nova. Cette version considérablement améliorée de notre nouveau moteur de langage apporte plusieurs des fonctionnalités les plus attendues par les utilisateurs et elle est maintenant prête pour la plupart des cas d'utilisation. Cette mise à jour inclut également de nouvelles fonctionnalités pour le développement de systèmes embarqués, telles que les serveurs de débogage et la prise en charge du débogage natif pour Zephyr West. Un visionneur d'images OpenCV et la possibilité d'attacher le débogueur à un processus non démarré viennent compléter cette version 2024.3 de CLion.
Notre nouveau moteur de langage plus rapide, CLion Nova, est désormais activé par défaut pour les nouveaux utilisateurs. Dans cette version, nous avons implémenté quelques-unes des fonctionnalités les plus attendues et corrigé plusieurs bugs majeurs. Par la suite, nous envisageons de faire de CLion Nova le moteur par défaut pour tous les utilisateurs. Mais tout d'abord, nous aimerions savoir si vous avez des préoccupations à ce sujet.
Les nombreuses améliorations que nous avons apportées à CLion Nova nous ont permis de réduire l'utilisation de la mémoire du moteur, ce qui est particulièrement visible dans les gros projets, tels que Chromium. L'IDE est maintenant plus réactif et rapide au démarrage.
Lorsque vous déboguez du code contenant un tableau OpenCV bidimensionnel, le débogueur vous permet maintenant de l'afficher sous forme d'image dans une boîte de dialogue séparée et d'utiliser plusieurs options d'édition. Cette nouvelle fonctionnalité facilite le développement d'applications de vision par ordinateur et de machine learning.
Nous avons ajouté une nouvelle option de configuration, Debug Servers, qui facilite la configuration du débogage pour le développement de systèmes embarqués et le développement à distance. Avec un serveur de débogage, vous pouvez choisir quelle sonde de débogage utiliser pour exécuter ou déboguer votre build cible. Auparavant, il fallait mettre en place une configuration Run/Debug distincte pour chaque combinaison de sonde de débogage et de cible de build.
Dans cette version, nous avons enrichi nouveau moteur de langage, CLion Nova, de nombreuses fonctionnalités essentielles, telles que des mises à jour propres au langage ou à l'interface utilisateur. Nous avons également corrigé des bugs majeurs, notamment ceux qui concernent l'empreinte mémoire. Afin de faciliter la transition depuis CLion Classic, nous avons inclus des options dans l'écran Welcome et dans le menu Configuration. Ainsi, les utilisateurs n'ont plus à remonter jusqu'à la section Advanced Settings pour activer le nouveau moteur.
Désormais, la supériorité de CLion Nova par rapport à CLion Classic en termes de performances est encore plus évidente. C'est pourquoi nous pensons que CLion Nova est prêt à devenir le moteur par défaut pour tous les utilisateurs de CLion.
Cependant, nous savons que certains utilisateurs de l'ancienne version sont réticents à cette idée, et nous aimerions comprendre pourquoi. Aussi, nous vous serions reconnaissants de nous faire savoir si vous préférez CLion Classic à CLion Nova et de nous en expliquer les raisons.
Vous pouvez partager vos retours en sélectionnant Help | Submit Feedback... dans le menu principal de l'IDE. Nous les examinerons attentivement et tenterons de corriger tous les problèmes critiques qui pourraient vous empêcher d'adopter CLion Nova.
Nous avons apporté de nombreuses améliorations à CLion Nova afin de réduire son empreinte mémoire, ce qui est particulièrement visible dans les grands projets. En comparant l'utilisation de la mémoire d'un projet Chromium dans CLion Nova 2024.2 par rapport au même projet dans la version 2024.3, on constate que le frontend de l'IDE utilise 51 % de mémoire en moi, tandis que le backend en utilise 15 % en moins.
Pour nos utilisateurs, cela signifie que :
La hiérarchie des appels de fonctions affiche les hiérarchies des méthodes appelantes et appelées pour vous aider à comprendre comment vos fonctions interagissent.
Pour afficher la hiérarchie d'appels, sélectionnez une fonction dans l'éditeur, puis choisissez Navigate | Call Hierarchy dans le menu principal ou utilisez le raccourci ⌃⌥H (macOS) ou Ctrl+Alt+H (Windows/Linux).
Vous pouvez désormais sélectionner un style de code prédéfini, tel que LLVM, Google, Qt ou GNU, via Settings | Editor | Code Style | C/C++ | Set from....
Nous avons ajouté une icône à la gouttière pour les appels récursifs. Cela permet de vérifier plus facilement l'utilisation de fonctions récursives dans votre code et d'éviter des situations potentiellement néfastes, telles que les dépassements de pile. Cette icône apparaît également dans la hiérarchie d'appels.
La fenêtre contextuelle Quick Definition indique où et comment sont définis les classes, les fonctions, les méthodes et autres symboles d'un projet. Pour l'appeler, placez le curseur sur un symbole dans l'éditeur et appuyez sur ⌥Espace (macOS) ou Ctrl+Maj+| (Windows/Linux). Elle est également accessible depuis le menu principal via View | Quick Definition.
Nous avons ajouté une nouvelle option de configuration appelée Debug Servers, afin de simplifier le processus de configuration du débogage pour le développement de systèmes embarqués et de développement à distance. Il s'agit d'une section distince disponible dans Settings | Debugger, dans laquelle vous pouvez configurer un serveur de débogage basé sur gdbserver.
Commencez par activer Debug Servers dans la section Settings | Advanced Settings | Debugger. Puis, ouvrez la boîte de dialogue Debug Servers dans Settings | Debugger ou appelez Edit Debug Servers depuis le sélecteur de la barre d'outils principale.
Veuillez noter qu'il s'agit d'une fonctionnalité expérimentale qui ne fonctionne pas encore avec PlatformIO. Cependant, il existe une solution de contournement. Nous vous invitons à l'essayer et à nous faire part de vos retours. Nous serions également ravis d'organiser un rendez-vous téléphonique pour en savoir plus sur vos cas d'utilisation spécifiques et les éventuels problèmes que vous rencontrez.
Dans cette version, nous avons étendu la prise en charge de Zephyr West en ajoutant la possibilité de déboguer nativement des projets West. Cela facilite la configuration et l'exécution des sessions de débogage dans l'IDE.
Lorsque vous importez votre projet Zephyr West, une configuration Run/Debug West est automatiquement créée dans le sélecteur Run/Debug Configurations. Vous pouvez également créer une nouvelle configuration Run/Debug via Run | Edit Configurations... dans le menu principal.
Lors du débogage de périphériques de microcontrôleur, tels que des broches GPIO ou des minuteurs, vous pouvez désormais voir immédiatement l'effet de vos modifications en éditant les registres des périphériques dans le panneau Périphériques de la fenêtre Débogage.
MISRA C++:2023 est la dernière édition de MISRA C++, qui fournit des directives pour l'utilisation de C++17 dans les systèmes ayant des exigences de sécurité accrues. L'ensemble d'outils d'analyse statique de CLion inclut désormais un nombre significatif de vérifications de MISRA C++:2023.
Si vous déboguez une application de vision par ordinateur ou de machine learning qui utilise OpenCV, vous pouvez maintenant afficher un tableau OpenCV bidimensionnel sous forme d'image. Le débogueur affiche ces images dans une boîte de dialogue distincte et propose différentes options d'édition ainsi que des fonctionnalités telles que la mise à jour de l'image étape par étape.
Dans la boîte de dialogue Threads & Variables du débogueur, cliquez sur View as image.
Lors du débogage de chaînes contenant des caractères de saut de ligne ou des données JSON, XML et HTML, vous pouvez les afficher formatées en fonction de leur style de code directement dans le débogueur. Appuyez sur View à côté d'une variable et vous pourrez voir les données structurées ou brutes dans une fenêtre distincte.
Vous pouvez désormais attacher le débogueur à des processus locaux non démarrés. Ces derniers déclenchent ensuite automatiquement le débogage lorsqu'ils sont démarrés. Cette fonctionnalité est notamment utile lorsqu'une partie de votre projet est écrite en C++ et s'exécute dans CLion, tandis qu'une autre est écrite dans un autre language et s'exécute dans un environnement externe.
Pour la configurer, sélectionnez Run | Attach to an Unstarted Process... dans le menu principal.
Nous avons mis à jour les débogueurs intégrés suivants :
La mise à jour du plugin AI Assistant de JetBrains, qui utilise notre LLM entraîné en interne pour C++, rend la saisie semi-automatique de code cloud dans CLion plus rapide et plus intelligente. Elle offre une gamme de cas d'utilisation plus étendue, avec une mise en correspondance améliorée des suffixes, afin de garantir que le fragment de code déduit complète correctement le code existant.
L'une des améliorations les plus importantes est la saisie semi-automatique de code multiligne, qui a été mise à jour pour inclure la mise en évidence de la syntaxe et l'acceptation incrémentale des suggestions de code.
La saisie semi-automatique de code multiligne fonctionne en conjonction avec la saisie semi-automatique de code standard et la saisie semi-automatique de code en ligne entière (cette dernière utilise le LLM local et n'implique pas l'envoi de données vers le cloud). Cela vous permet d'examiner et d'accepter les suggestions graduellement. Vous pouvez également accepter les suggestions mot par mot au moyen des raccourcis ⌥→ pour macOS et Ctrl+→ pour Windows.
Si vous venez de commencer à utiliser CLion, vous avez sans doute remarqué les conseils d'intégration conçus pour aider les nouveaux utilisateurs à se familiariser avec l'IDE. Ils indiquent comment utiliser les fonctionnalités clés de l'IDE et permettent de se faire une idée plus claire de ses possibilités dès le départ. Cela réduit le temps nécessaire pour maîtriser l'utilisation de CLion.
Nous avons rendu les notifications d'état du projet plus discrètes en les déplaçant du haut de l'éditeur vers un nouveau widget dans la barre d'état. Ainsi, si vous créez un fichier .cpp dans votre projet, par exemple, l'icône s'affiche. La notification indiquant que votre fichier n'appartient à aucun projet ne s'affichera que lorsque vous survolerez cette icône. Si vous cliquez sur l'icône, le widget vous proposera d'ajouter le fichier au projet CMake. Si vous n'en avez pas besoin, vous pouvez fermer la fenêtre contextuelle, et l'icône ne restera que dans la barre d'état.
L'interface du terminal est désormais plus compacte, réduisant l'espacement entre les éléments pour maximiser l'utilisation de l'écran. Cela améliore également la visibilité lorsque vous travaillez avec des commandes sans pour autant gêner la lisibilité
Par défaut, CLion met maintenant en évidence toutes les instances du texte sélectionné quel que soit le fichier, et non plus seulement pour les fichiers .c et .cpp. Cela facilite le suivi des endroits dans lesquels le texte sélectionné apparaît dans le fichier. Si vous préférez le comportement précédent, vous pouvez désactiver cette fonctionnalité via Settings | Editor | General | Appearance.
La version intégrée de CMake a été mise à jour vers 3.30.5.