{"id":34266,"date":"2020-04-21T09:20:27","date_gmt":"2020-04-21T08:20:27","guid":{"rendered":"https:\/\/blog.jetbrains.com\/fr\/?p=638"},"modified":"2020-07-01T13:16:12","modified_gmt":"2020-07-01T13:16:12","slug":"clion-2020-1-des-dizaines-dameliorations-sur-lensemble-de-ledi-pour-cuda-et-pour-les-projets-embarques","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/fr\/2020\/04\/21\/clion-2020-1-des-dizaines-dameliorations-sur-lensemble-de-ledi-pour-cuda-et-pour-les-projets-embarques\/","title":{"rendered":"CLion 2020.1 : des dizaines d&#8217;am\u00e9liorations sur l&#8217;ensemble de l&#8217;EDI, pour CUDA et pour les projets embarqu\u00e9s"},"content":{"rendered":"Nous esp\u00e9rons tout d'abord que vous prenez tous soin de vous\u00a0! 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 \u00e0 faire ce pour quoi nous sommes dou\u00e9s\u00a0: cr\u00e9er de super outils pour aider les d\u00e9veloppeurs \u00e0 augmenter leur productivit\u00e9. Nous avons donc le plaisir de vous pr\u00e9senter la CLion 2020.1\u00a0!\r\n\r\n\r\n\r\nPour obtenir cette mise \u00e0 jour, vous pouvez utiliser\u00a0l'Application Toolbox, un package snap (sous Ubuntu), notre site web ou le correctif mis \u00e0 jour du dernier build de la version 2019.3 (2019.3.5).\r\nT\u00c9L\u00c9CHARGER CLION 2020.1\r\n\r\n\r\nProjets CUDA\r\nCUDA 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 \u00e9t\u00e9 consacr\u00e9s \u00e0 apprendre au moteur linguistique de CLion \u00e0 analyser correctement ce code, en \u00e9liminant ainsi le code rouge et les faux positifs dans l'analyse de code. Cette prise en charge am\u00e9lior\u00e9e concerne \u00e9galement 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 \u00e9t\u00e9 \u00e9tendue afin de compl\u00e9ter les chevrons pour les appels du noyau\u00a0:\r\n\r\n\r\n(Pour le test, nous avons utilis\u00e9 le projet ClaraGenomicsAnalysis de GitHub.)\r\n\r\nDe plus, CLion prend d\u00e9sormais en charge les extensions de fichiers CUDA \u2013 .cu\/.cuh. Vous pouvez les s\u00e9lectionner lors de la cr\u00e9ation de nouveaux fichiers C\/C++. Au fait saviez-vous que CLion vous propose des cibles CMake pour y ajouter vos fichiers nouvellement cr\u00e9\u00e9s\u00a0? Maintenant, les cibles CUDA (cr\u00e9\u00e9es avec cuda_add_executable\u00a0\/ cuda_add_library) sont ajout\u00e9es \u00e0 la liste des options possibles \u00e0 s\u00e9lectionner\u00a0:\r\n\r\n\r\nEnfin, vous pouvez d\u00e9marrer un nouveau projet CUDA dans CLion. L'assistant de nouveau projet vous aide \u00e0 g\u00e9n\u00e9rer les fichiers CMake et main.cu types. Pour en savoir plus sur la fa\u00e7on de travailler avec les projets CUDA dans CLion, consultez notre aide en ligne.\r\nD\u00e9veloppement embarqu\u00e9\r\nNous continuons d'am\u00e9liorer CLion pour le d\u00e9veloppement embarqu\u00e9 et nous avons fait deux avanc\u00e9es importantes dans cette version. La premi\u00e8re 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\u00e9s. Voici quelques conseils pour vous aider avec le compilateur IAR\u00a0:\r\n\r\n\tMinGW est requis. Utilisez l'environnement MinGW dans les param\u00e8tres de la cha\u00eene d'outils IAR de CLion et fournissez les chemins d'acc\u00e8s au compilateur IAR dans les champs correspondants.\r\n\tConsultez ces notes sur la fa\u00e7on d'utiliser CMake avec IAR Embedded Workbench.\r\n\r\n\r\nNous aimerions ici remercier une fois de plus IAR Systems AB pour son soutien et ses licences partenaire. Et nous tenons \u00e0 assurer \u00e0 nos lecteurs que nous allons poursuivre cette collaboration. Notre prochain objectif est d'explorer davantage l'int\u00e9gration avec cette cha\u00eene d'outils.\r\n\r\nNotre deuxi\u00e8me grande avanc\u00e9e est le plugin PlatformIO for CLion. PlatformIO est un \u00e9cosyst\u00e8me de nouvelle g\u00e9n\u00e9ration et peut \u00eatre tr\u00e8s utile pour d\u00e9marrer rapidement un projet de d\u00e9veloppement embarqu\u00e9 (par exemple, pour Arduino). Le plugin g\u00e9n\u00e8re un projet CMake PlatformIO lorsque le type de projet correspondant est s\u00e9lectionn\u00e9 dans l'assistant de nouveau projet, faisant appel \u00e0 une commande PlatformIO en arri\u00e8re-plan\u00a0:\r\n\r\nPour ces projets, CLion cr\u00e9e automatiquement des configurations pour le d\u00e9bogage et le chargement. Vous pouvez \u00e9galement cr\u00e9er une configuration de d\u00e9bogage PlatformIO pour utiliser PIO Unified Debugger. Pour plus de d\u00e9tails, consultez la documentation officielle.\r\nProjets Windows\r\nNous avons constat\u00e9 qu'un nombre croissant de d\u00e9veloppeurs sur Windows utilisent CLion. \u00c0 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\u00e9 Windows.\r\n\r\nClang est le deuxi\u00e8me compilateur le plus populaire apr\u00e8s GCC (selon le rapport \u00c9tat de l'\u00e9cosyst\u00e8me des d\u00e9veloppeurs en 2019). Microsoft Visual Studio Compiler est bien s\u00fbr le leader sur Windows, mais Clang-cl est aussi largement utilis\u00e9. Vous pouvez l'installer \u00e0 partir du site web de LLVM ou avec les outils Visual Studio. Et il est maintenant possible de l'utiliser dans CLion\u00a0!\r\n\r\n\r\nUne autre bonne nouvelle pour les d\u00e9veloppeurs sous Windows est que le d\u00e9bogueur LLDB d\u00e9velopp\u00e9 par JetBrains pour la cha\u00eene d'outils Visual Studio C++ est maintenant le d\u00e9bogueur par d\u00e9faut pour cette cha\u00eene d'outils. Vous pouvez donc commencer \u00e0 l'utiliser directement\u00a0! Dans la capture d'\u00e9cran ci-dessus, vous pouvez voir qu'il est pr\u00e9s\u00e9lectionn\u00e9 pour la cha\u00eene d'outils Visual Studio. Veuillez noter que ce d\u00e9bogueur n'est pas une version ordinaire de LLDB. Il est d\u00e9velopp\u00e9 par l'\u00e9quipe de JetBrains et peut g\u00e9rer les visualiseurs natifs (pour activer le support des visualiseurs natifs, allez dans Settings | Build, Execution, Deployment | Debugger Data Views | Enable NatVis renderers for LLDB).\r\n\r\nRegardez cette courte d\u00e9mo :\r\n\r\nMise \u00e0 jour des outils Clang\r\nUne autre \u00e9volution importante est la transition vers notre moteur linguistique bas\u00e9 sur Clangd chaque fois que possible. Il y a deux raisons principales \u00e0 cette d\u00e9cision. Tout d'abord, nous voulons d\u00e9velopper des fonctionnalit\u00e9s linguistiques plus pr\u00e9cises afin d\u2019\u00eatre en phase avec les r\u00e9centes mises \u00e0 jour des normes du langage. Ensuite, nous souhaitons am\u00e9liorer les performances des actions qui ne sont pas li\u00e9es \u00e0 un langage sp\u00e9cifique (ce qui n'est pas toujours possible avec Clang, mais nous continuons \u00e0 exp\u00e9rimenter d'autres fonctionnalit\u00e9s).\r\n\r\nDans CLion 2020.1, nous avons enti\u00e8rement transf\u00e9r\u00e9 l'analyse des flux de donn\u00e9es sur Clangd. Qu'est-ce que l'analyse des flux de donn\u00e9es et pourquoi est-elle utile ? Cette derni\u00e8re analyse la fa\u00e7on dont les donn\u00e9es passent par votre code et d\u00e9tecte les probl\u00e8mes 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\u00e9clarations de retour manquantes, la r\u00e9cursion infinie, et plus encore\u00a0:\r\n\r\nLa plupart des compilateurs ne font pas cela pour vous. Il est certain que l'analyse des flux de donn\u00e9es exige une analyse et une r\u00e9solution tr\u00e8s pr\u00e9cises du code, et cela peut prendre beaucoup de temps, surtout lorsque la r\u00e9solution sous-jacente est lente. La transition vers Clangd est donc une \u00e9tape vers l'am\u00e9lioration des performances de ces contr\u00f4les d'analyse.\r\n\r\nDans les versions pr\u00e9c\u00e9dentes de CLion, nous avons introduit une solution de saisie automatique bas\u00e9e sur Clangd. Mais \u00e0 l'\u00e9poque, elle fonctionnait en combinaison avec les solutions de CLion. Dans le cadre de l'it\u00e9ration 2020.1, nous avons peaufin\u00e9 la saisie automatique fournie par Clang (en corrigeant des dizaines de probl\u00e8mes connexes et en ajoutant les fonctionnalit\u00e9s de saisie automatique manquantes) et avons finalement activ\u00e9 le mode dans lequel Clang est la seule source de saisie automatique de code dans CLion par d\u00e9faut. Cela permet de r\u00e9soudre certains probl\u00e8mes de priorit\u00e9 et de hi\u00e9rarchisation.\r\n\r\nClangFormat et Clang-Tidy sont des outils standard pour de nombreux projets C++ et leurs fichiers de configuration sont souvent consign\u00e9s dans des r\u00e9f\u00e9rentiels de projets. Cependant, l'int\u00e9gration de CLion pour ces outils ne se faisait pas automatiquement. Nous remercions les utilisateurs qui nous ont signal\u00e9 ce d\u00e9sagr\u00e9ment\u00a0! Maintenant CLion\u00a0:\r\n\r\n\tD\u00e9tecte le fichier de configuration .clang-format \u00e0 la racine du projet et passe automatiquement au ClangFormat pour vous (notez que l'EDI passe aux param\u00e8tres par projet \u00e0 ce moment).\r\n\tD\u00e9tecte le fichier de configuration .clang-tidy et d\u00e9sactive automatiquement l'utilisation des param\u00e8tres EDI pour Clang-Tidy en faveur de ce fichier de configuration.\r\n\r\nNous esp\u00e9rons que cela rendra votre travail avec ces deux outils Clang beaucoup plus agr\u00e9able\u00a0!\r\n\r\nRegardez cette courte d\u00e9mo :\r\n\r\nAm\u00e9liorations des refactorisations, du formatteur, de la documentation et de l'\u00e9diteur\r\nAvec CLion, vous b\u00e9n\u00e9ficiez de nombreuses refactorisations et l'une des plus populaires est Change Signature (Ctrl+F6 sur Windows et Linux, \u2318F6 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\u00e9organiser les param\u00e8tres. Et son principal avantage (en comparaison avec la mise \u00e0 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 \u00e0 jour tous les appels, impl\u00e9mentations et remplacements de celle-ci pouvant \u00eatre modifi\u00e9s en toute s\u00e9curit\u00e9 pour refl\u00e9ter la modification.\r\n\r\nVous pourriez vous demander : qu'arrive-t-il \u00e0 l'utilisation d'une fonction lorsqu'un nouveau param\u00e8tre est ajout\u00e9\u00a0? Auparavant, CLion ajoutait la valeur du type par d\u00e9faut aux utilisations comme argument (c'est-\u00e0-dire 0 aux valeurs num\u00e9riques, nullptr aux pointeurs) afin de garder votre code compilable. Dans la version 2020.1, vous pouvez indiquer \u00e0 CLion la valeur \u00e0 substituer pour toutes les utilisations de fonctions mises \u00e0 jour directement dans la bo\u00eete de dialogue de la refactorisation\u00a0:\r\n\r\n\r\nRegardez la saisie automatique du code disponible dans le nouveau champ Default value de la bo\u00eete de dialogue\u00a0! Si vous laissez le champ vide, l'ancien comportement est appliqu\u00e9 et la valeur par d\u00e9faut du type est utilis\u00e9e.\r\n\r\nLe formatteur a \u00e9t\u00e9 mis \u00e0 jour dans cette version, avec de nouveaux param\u00e8tres de nommage s\u00e9par\u00e9s 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.\r\n\r\nLes autres mises \u00e0 jour de l'\u00e9diteur comprennent\u00a0:\r\n\r\n\tLa documentation rapide, un outil universel pour pr\u00e9visualiser la documentation et obtenir des informations sur la signature de fonction, les types inf\u00e9r\u00e9s et le remplacement de macro, est d\u00e9sormais disponible au survol de la souris.\r\n\tLa police par d\u00e9faut dans l'\u00e9diteur a \u00e9t\u00e9 remplac\u00e9e par JetBrains Mono, une nouvelle police de caract\u00e8res open source cr\u00e9\u00e9e par JetBrains.\r\n\tUn nouveau th\u00e8me clair par d\u00e9faut, IntelliJ Light, est maintenant le th\u00e8me standard sur tous les syst\u00e8mes d'exploitation.\r\n\tEt si vous avez besoin de travailler avec plusieurs sessions de terminal en m\u00eame temps, vous pouvez d\u00e9sormais diviser votre terminal verticalement ou horizontalement pour pouvoir ex\u00e9cuter plusieurs sessions c\u00f4te \u00e0 c\u00f4te\u00a0:\r\n\r\n\r\nRegardez cette courte d\u00e9mo :\r\n\r\nConfigurations Run\/Debug\r\nLes configurations Run\/Debug vous aident \u00e0 lancer des applications pour les ex\u00e9cuter et les d\u00e9boguer depuis CLion. Dans cette version, elles ont fait l\u2019objet de plusieurs mises \u00e0 jour importantes\u00a0:\r\n\r\n\tLes configurations Serveur GDB \u00e0 distance et Serveur GDB embarqu\u00e9 fonctionnent d\u00e9sormais avec des cibles personnalis\u00e9es. Cela vous permet de d\u00e9boguer votre application sur un h\u00f4te distant ou sur le microcontr\u00f4leur \u00e0 partir de l'instance CLion fonctionnant sur votre machine locale, non seulement dans les projets bas\u00e9s sur CMake mais aussi dans n'importe quelle application personnalis\u00e9e (y compris la base de donn\u00e9es de compilation).\r\n\tLes cibles Google Test pour la version 1.8.1 et sup\u00e9rieure sont maintenant reconnues correctement dans CLion, et les configurations Run\/Debug correspondantes sont cr\u00e9\u00e9es automatiquement (ce qui permet d'ex\u00e9cuter des tests dans le lanceur de tests int\u00e9gr\u00e9 de CLion).\r\n\r\nCLion 2020.1 apporte la prise en charge des macros et variables de chemin d'acc\u00e8s aux configurations Run\/Debug\u00a0:\r\n\r\n\tLes macros sont pr\u00e9d\u00e9finies et vous pouvez consulter la liste des macros disponibles dans la bo\u00eete de dialogue, qui s'ouvre lorsque vous cliquez sur un signe plus dans la bo\u00eete 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.\r\n\tLes variables de chemin peuvent \u00eatre configur\u00e9es dans Settings\/Preferences | Appearance &amp; Behavior | Path Variables. Le cas d'utilisation typique consiste \u00e0 cr\u00e9er une variable de chemin d'acc\u00e8s pour une biblioth\u00e8que qui est largement utilis\u00e9e dans vos projets mais qui se trouve en dehors du r\u00e9pertoire du projet.\r\n\r\nLa macro Prompt\/FilePrompt est particuli\u00e8rement utile lorsqu'elle est combin\u00e9e avec le nouveau champ Redirect input from dans la configuration. Ce champ vous aide \u00e0 rediriger la saisie d'un fichier vers le stdin de votre application et la macro FilePrompt invoque un dialogue de s\u00e9lection de fichier chaque fois que l'application se lance\u00a0:\r\n\r\n\r\nRegardez cette courte d\u00e9mo :\r\n\r\nMises \u00e0 jour de la plateforme IntelliJ\r\nComme d'habitude, les am\u00e9liorations du VCS et de la plateforme IntelliJ arrivent sur CLion, en plus d'une mise \u00e0 jour du plugin IntelliJ Rust. Nous publierons plus d\u2019informations sur cette deni\u00e8re prochainement, alors restez \u00e0 l'\u00e9coute\u00a0!\r\nQuoi de neuf concernant la prise en charge de Makefile\u00a0?\r\nOulala\u00a0! Qui a parl\u00e9 de travailler sur la prise en charge de Makefile dans CLion\u00a0?! Eh bien, qui que ce soit, il avait raison. Nous avons cr\u00e9\u00e9 un prototype de l'analyseur de projet Makefile au sein de CLion et avons \u00e9crit une article de blog  concernant l'approche que nous avons adopt\u00e9e et l'\u00e9tat de la solution actuelle. Et avec l'aide de nos fid\u00e8les utilisateurs, nous avons \u00e9tabli une liste de projets pour tester ce prototype.\r\n\r\nIl y a environ 40 projets sur la liste en ce moment, et plus de la moiti\u00e9 d'entre eux ont \u00e9t\u00e9 v\u00e9rifi\u00e9s (CPython, certains projets embarqu\u00e9s, Nano, Nodejs, PostgreSQL). Pour la plupart, ils ont bien fonctionn\u00e9. N\u00e9anmoins, il y a certains projets sur lesquels le prototype a \u00e9chou\u00e9 (par exemple, \u00e0 cause de wrappers tels que libtool). Parmi ces projets, Vous pouvez trouver GCC, FreeBSD, Wine et Perl. Quelques utilisateurs courageux ont test\u00e9 le prototype sur leurs projets et nous ont fait part de retours d\u2019exp\u00e9rience vraiment int\u00e9ressants\u00a0! Merci \u00e0 tous pour vos contributions.\r\n\r\nDonc, le travail continue. Nous pr\u00e9voyons de rendre le prototype public avec l'EAP 2020.2. En attendant, si vous souhaitez nous aider dans cette entreprise, consultez cet appel.\r\n\r\nVoil\u00e0, vous savez tout ! Essayez CLion 2020.1. Vous pouvez simplement faire une mise \u00e0 jour si vous avez un abonnement actif ou opter pour un essai de 30 jours gratuit  pour \u00e9valuer les nouvelles fonctionnalit\u00e9s\u00a0!\r\nT\u00c9L\u00c9CHARGER CLION 2020.1\r\nL'\u00c9quipe CLion\r\nJetBrains\r\nThe Drive to Develop\r\n\r\nAuteur de l'article orginal en anglais :\u00a0Anastasia Kazakova","protected":false},"excerpt":{"rendered":"Nous esp\u00e9rons tout d'abord que vous prenez tous soin de vous\u00a0! Bien qu'il soit parfois difficile de se concentrer sur son travail compte tenu de la situation actuelle, nous faisons de notre mieux pour","protected":false},"author":{"name":"Delphine Massenhove","link":"https:\/\/blog.jetbrains.com\/fr\/author\/delphine-massenhovejetbrains-com"},"featured_media":34267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[907],"tags":[3610,430],"cross-post-tag":[],"acf":[],"featured_image":"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/04\/fr-CLion-2020.1.png","_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34266"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"},{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=34266"}],"version-history":[{"count":1,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34266\/revisions"}],"predecessor-version":[{"id":52605,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34266\/revisions\/52605"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/34267"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=34266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=34266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=34266"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=34266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}