{"id":34114,"date":"2018-09-21T14:05:42","date_gmt":"2018-09-21T13:05:42","guid":{"rendered":"https:\/\/blog.jetbrains.com\/fr\/?p=148"},"modified":"2018-09-24T17:34:08","modified_gmt":"2018-09-24T16:34:08","slug":"publication-de-clion-2018-2-projets-clangd-gradle-et-de-bases-de-donnees-de-compilation-sanitizers-google-et-prise-en-charge-des-bases-de-donnees","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/fr\/2018\/09\/21\/publication-de-clion-2018-2-projets-clangd-gradle-et-de-bases-de-donnees-de-compilation-sanitizers-google-et-prise-en-charge-des-bases-de-donnees\/","title":{"rendered":"Publication de CLion 2018.2 : projets clangd, Gradle et de bases de donn\u00e9es de compilation, Sanitizers Google et prise en charge des bases de donn\u00e9es"},"content":{"rendered":"Depuis son lancement en avril 2015, CLion 1.0 n'a cess\u00e9 de s'am\u00e9liorer. Nous continuons \u00e0 travailler \u00e0 son am\u00e9lioration constante, non seulement pour la satisfaction de nos clients qui l'utilisent actuellement, mais aussi pour ceux qui attendent l'ajout de nouvelles fonctionnalit\u00e9s cl\u00e9s pour l'adopter. Cette nouvelle version constitue une nouvelle avanc\u00e9e afin de r\u00e9pondre \u00e0 ces attentes.\r\n\r\nElle apporte en effet de nouvelles fonctionnalit\u00e9s particuli\u00e8rement importantes pour les deux groupes. Tout d'abord, cette nouvelle version de CLion inclut un moteur de langage exp\u00e9rimental bas\u00e9 sur clangd, ainsi que de nombreuses am\u00e9liorations de la performance. Elle propose \u00e9galement la prise en charge de plusieurs nouveaux mod\u00e8les de projet, ce qui pourrait d\u00e9boucher sur une API de mod\u00e8le de projet dans le futur.\r\n\r\n\r\n\r\nNous vous invitons \u00e0 poursuivre votre lecture pour plus de d\u00e9tails et \u00e0 profiter de la version d'essai gratuite de 30 jours pour \u00e9valuer les nouvelles fonctionnalit\u00e9s et am\u00e9liorations :\r\n\r\n\tPrise en charge du langage C++ :\r\n\r\n\tUn moteur de langage C++ exp\u00e9rimental bas\u00e9 sur clangd qui met en exergue les erreurs et les avertissements dans l'\u00e9diteur.\r\n\tUne nouvelle inspection capable d'identifier les erreurs d'ordre lors du passage d'arguments du m\u00eame type.\r\n\r\n\r\n\tAm\u00e9liorations des performances de l'IDE\r\n\tMod\u00e8les de projets :\r\n\r\n\tPrise en charge des nouveaux plug-ins Gradle C++.\r\n\tPrise en charge du format de base de donn\u00e9es de compilation\r\n\tAm\u00e9liorations CMake.\r\n\r\n\r\n\tNouveaux outils :\r\n\r\n\tPrise en charge des Sanitizers Google et am\u00e9lioration de la prise en charge de Valgrind Memcheck.\r\n\tOutils int\u00e9gr\u00e9s de base de donn\u00e9es et plug-in SQL.\r\n\r\n\r\n\tCorrectifs du d\u00e9bogueur pour GDB et LLDB.\r\n\tPossibilit\u00e9 de recompilation d'un fichier unique pour acc\u00e9l\u00e9rer les cycles de d\u00e9veloppement.\r\n\tLes derniers goodies de la plateforme IntelliJ et de nombreuses autres am\u00e9liorations.\r\n\r\nPour une vue d'ensemble rapide des nouvelles fonctionnalit\u00e9s et am\u00e9liorations, regardez cette vid\u00e9o de Phil Nash :\r\n\r\nT\u00e9l\u00e9charger CLion 2018.2\r\n&nbsp;\r\nPrise en charge du langage C++\r\nClangd en tant que moteur de langage C++ exp\u00e9rimental compl\u00e9mentaire\r\nCLion utilise d\u00e9sormais un moteur de langage bas\u00e9 sur clangd en compl\u00e9ment de son propre moteur de langage. Ce nouveau moteur exp\u00e9rimental est activ\u00e9 par d\u00e9faut sur les plateformes Linux et macOS dans la version 2018.2, sous Windows pour la version 2018.2.1. Remarque : il est utilis\u00e9 uniquement pour afficher des erreurs et des avertissements dans l'\u00e9diteur, tandis que les autres fonctionnalit\u00e9s d'analyse du code (par exemple correctifs rapides, refactorisations, saisie automatique, navigation, etc.) ne sont pas affect\u00e9es. Consultez notre artcile de blog r\u00e9cent pour plus de d\u00e9tails.\r\n\r\nSi vous souhaitez d\u00e9sactiver ce moteur de lanage ou personnaliser les avertissements et les erreurs qu'il d\u00e9tecte, s\u00e9lectionnez Param\u00e8tres\/Pr\u00e9f\u00e9rences | Languages &amp; Frameworks | C\/C++ | Clangd :\r\n\r\n\r\nA quoi ressemblera la version finale ? Bonne question ! Dans un premier temps, nous allons maintenir ce moteur de langage compl\u00e9mentaire pour voir si cette combinaison fonctionne bien, afin d'offrir une analyse plus fine et rapide du code dans CLion. Nous envisageons de d\u00e9placer d'autres fonctionnalit\u00e9s d'analyse de code vers le moteur bas\u00e9 sur clangd dans la mesure du possible. C'est pour cette raison que nous qualifions cette fonctionnalit\u00e9 d'exp\u00e9rimentale pour le moment. Nous allons continuer de travailler sur notre propre moteur de langage en parall\u00e8le. Restez \u00e0 l'\u00e9coute\u00a0!\r\nCorrectifs de prise en charge de C++ et nouvelle inspection\r\nUne nouvelle inspection est d\u00e9sormais capable d'identifier les erreurs d'ordonnancement lors du passage d'arguments du m\u00eame type. Cela requiert des noms de param\u00e8tres significatifs et l'algorithme d\u00e9pend de plusieurs techniques heuristiques. L'id\u00e9e est de vous permettre d'identifier les erreurs avant m\u00eame d'avoir compil\u00e9 le code\r\n\r\nRemarque : cette inspection implique l'activation du moteur de langage exp\u00e9rimental bas\u00e9 sur clangd.\r\n\r\nNous avons fait \u00e9voluer le moteur de langage de CLion, qui constitue la base de toutes les actions d'un IDE intelligent, telles que la navigation, les refactorisations, la g\u00e9n\u00e9ration de code, et bien plus encore. Un ensemble d'am\u00e9liorations pour diff\u00e9rents cas a \u00e9t\u00e9 mis en \u0153uvre.\r\nAm\u00e9liorations des performances de l'IDE\r\nNous poursuivons le remaniement des composants essentiels, \u00e9tape par \u00e9tape, pour optimiser encore les performances de l'IDE. Notre objectif principal est d'\u00e9liminer tout blocage de l'interface. La version 2018.2 r\u00e9sout de nombreux probl\u00e8mes dans ce domaine. Les plus remarquables concernent le blocage de l'interface apr\u00e8s une mise \u00e0 jour de VCS, la navigation jusqu'au symbole correspondant (et par cons\u00e9quent entre le basculement entre les fichiers .h et .cpp) et le blocage des projets UE4.\r\n\r\nLa principale am\u00e9lioration selon nous porte sur le processeur d'indentation ciblant l'analyseur lexical. L'ex\u00e9cution du programme de mise en forme sur un analyseur lexical est \u00e0 l'\u00e9vidence plus rapide que l'analyse et la r\u00e9solution globales du code C++. Nous pensons que cette modification am\u00e9liorera significativement les performances de l'\u00e9diteur pour la plupart de nos utilisateurs. Toutefois, des impr\u00e9cisions sont possibles pour certains cas complexes. Par cons\u00e9quent, si vous rencontrez des probl\u00e8mes, regardez ici pour d\u00e9terminer comment revenir \u00e0 la solution pr\u00e9c\u00e9dente.\r\n\r\nPour rappel, en cas de blocage de l'IDE ou d'une sollicitation trop intensive du processeur\/de la m\u00e9moire, il est important de fournir les journaux de l'IDE, des thread dumps et des instantan\u00e9s du processeur\/de la m\u00e9moire pour nous aider \u00e0 comprendre le probl\u00e8me (voici comment les r\u00e9unir). Il serait \u00e9galement recommand\u00e9 de les collecter sur la derni\u00e8re version disponible de CLion.\r\nMod\u00e8les de projets\r\nGradle et base de donn\u00e9es de compilation\r\nCette version met CLion \u00e0 la disposition de tous ceux qui ne travaillent pas sur un projet CMake mais souhaitent utiliser cet IDE pour le d\u00e9veloppement C\/C++ et profiter de ses fonctionnalit\u00e9s tr\u00e8s compl\u00e8tes d'analyse de code.\r\n\r\nAuparavant, le fait d'ouvrir un projet autre que CMake dans CLion ne donnait acc\u00e8s qu'\u00e0 des fonctionnalit\u00e9s limit\u00e9es dans l'IDE. (Pour \u00eatre tout \u00e0 fait exact, nous devons pr\u00e9ciser qu'un plug-in tiers pour Bazel est disponible depuis quelque temps.)\r\n\r\nD\u00e9sormais, vous disposez de deux options suppl\u00e9mentaires \u2013 les nouveaux projets Gradle C++ et la base de donn\u00e9es de compilation. Ensemble, elles offrent une vue d'ensemble compl\u00e8te depuis CLion, avec comme seul b\u00e9mol le fait que la base de donn\u00e9es de compilation ne permet pas encore de cr\u00e9er la build du projet ou de l'ex\u00e9cuter (car le mod\u00e8le ne dispose tout simplement pas des informations n\u00e9cessaires).\r\n\r\nPour ouvrir le projet\u00a0:\r\n\r\n\tPour Gradle : ouvrez le fichier build.gradle depuis les sources du projet (notez que CLion prend uniquement en charge actuellement les nouveaux plug-ins Gradle C++ ; l'ancienne version ne fonctionne plus).\r\n\tPour la base de donn\u00e9es de compilation : utilisez le fichier compile_commands.json (voir cette liste de possibilit\u00e9s pour cr\u00e9er une base de donn\u00e9es de compilation pour votre projet).\r\n\r\nCLion affiche le statut de chargement du projet dans une fen\u00eatre d'outils de build :\r\n\r\n\r\nEt voil\u00e0 ! L'analyse de code de CLion, comprenant la saisie automatique, la navigation du code, la refactorisation et l'analyse de code, est d\u00e9sormais totalement disponible pour votre projet Gradle ou de base de donn\u00e9es de compilation. Cela signifie par exemple que les projets Makefiles et Ninja peuvent d\u00e9sormais \u00eatre ouverts dans CLion \u2013 Il suffit de g\u00e9n\u00e9rer la base de donn\u00e9es de compilation correspondante et de l'ex\u00e9cuter !\r\nPrise en charge de CMake\r\nCMake demeurant le mod\u00e8le de projet le mieux int\u00e9gr\u00e9 avec CLion, nous y avons apport\u00e9 quelques am\u00e9liorations pratiques. La modification la plus importante est que vous n'avez plus besoin de faire la liste des fichiers d'en-t\u00eate directement dans CMake pour obtenir une vue d'ensemble du code de ces fichiers dans CLion. Si vous incluez le fichier d'en-t\u00eate ou le fichier source dans un fichier de projet, l'IDE le traite automatiquement comme un fichier de projet, vous b\u00e9n\u00e9ficierez donc d'une analyse compl\u00e8te du code ici !\r\n\r\nRemarque : cela ne fonctionne que si les fichiers d'en-t\u00eate et les fichiers source que vous incluez sont situ\u00e9s sous la racine du projet (afin de ne pas modifier vos biblioth\u00e8ques et fichiers lors de la refactorisation, etc.).\r\n\r\n\r\nD'autre part, lorsque vous configurez vos outils externes dans CLion, vous pouvez utiliser des macros propres \u00e0 CMake pour obtenir des valeurs propres \u00e0 CMake, telles que le nom de l'ex\u00e9cutable, le dossier de g\u00e9n\u00e9ration, etc.\r\nNouveaux outils\r\nLa prise en charge de Valgrind Memcheck a commenc\u00e9 d\u00e8s la version 2017.3, qui a marqu\u00e9 la premi\u00e8re \u00e9tape vers des outils d'analyse dynamique dans CLion. Avec la version 2018.2, il est d\u00e9sormais possible d'exporter\/importer les r\u00e9sultats de Valgrind Memcheck dans CLion.\r\n\r\nCette version marque \u00e9galement la prise en charge des sanitizers Google. Contrairement \u00e0 Valgrind, les sanitizers impliquent une recompilation du projet avec l'indicateur de build -fsanitize, par cons\u00e9quent vous devez l'inclure manuellement dans le script CMake, par exemple : set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -fsanitize=thread -fPIE -pie -g\"). Pour Clang &gt;= 3.8.0 et GCC &gt;= 5.0.0, CLion d\u00e9tecte ensuite l'indicateur de sanitizer automatiquement et visualise la sortie des sanitizers dans l'onglet \u00ab Sanitizer \u00bb de la fen\u00eatre de l'outil d'ex\u00e9cution :\r\n\r\n\r\nConsultez la liste des sanitizers pris en charge, ainsi que les param\u00e8tres disponibles dans notre article de blog.\r\n\r\nNous avons r\u00e9cemment men\u00e9 une \u00e9tude sur Twitter demandant aux d\u00e9veloppeurs s'ils travaillent souvent avec les bases de donn\u00e9es lors du d\u00e9veloppement de projets C\/C++. La r\u00e9ponse a \u00e9t\u00e9 un oui franc et massif ! Par cons\u00e9quent, il nous semble essentiel de vous informer \u00e9galement de la prise en charge des outils de base de donn\u00e9es et du code SQL. Ces fonctionnalit\u00e9s permettent d'utiliser CLion 2018.2 comme un plug-in int\u00e9gr\u00e9, apportant la fonctionnalit\u00e9 DataGrip \u00e0 l'IDE. La liste des bases de donn\u00e9es prises en charge est assez impressionnante et inclut MySQL, PostgreSQL, Oracle, DB2, Sybase et autres. En compl\u00e9ment des diff\u00e9rentes options de navigation et de modification du contenu de la base de donn\u00e9es, le plug-in permet \u00e9galement de comprendre en d\u00e9tail le code SQL.\r\nD\u00e9bogueur\r\nCLion 2018.2 int\u00e8gre LLDB v6.0 sous macOS et Linux. Il apporte GDB v8.1 sous Linux et Windows et GDB v8.0.1 sous macOS.\r\n\r\nL'int\u00e9gration avec GDB a \u00e9t\u00e9 am\u00e9lior\u00e9e sur toutes les plateformes et CLion utilise les pretty-printers d'un type pour afficher les pointeurs de ce type :\r\n\r\n\r\nConcernant LLDB, CLion traite d\u00e9sormais les entr\u00e9es unsigned char correctement dans le d\u00e9bogueur et affiche correctement les entr\u00e9es unordered_map :\r\n\r\nRecompilation d'un fichier unique\r\nUne fonctionnalit\u00e9 a \u00e9t\u00e9 ajout\u00e9e pour acc\u00e9l\u00e9rer vos cycles de d\u00e9veloppement dans CLion lorsque vous travaillez sur des projets CMake ou de base de donn\u00e9es de compilation. D\u00e9sormais, vous pouvez recompiler un fichier unique sans d\u00e9clencher la recompilation de l'ensemble du projet. Cela est particuli\u00e8rement pratique pour v\u00e9rifier les modifications des fichiers locaux :\r\n\r\n\r\nD\u00e9couvrez comment cela fonctionne dans le d\u00e9tail en lisant cet article de blog.\r\nCe n'est pas tout\r\nCette nouvelle version comporte bien trop de nouveaut\u00e9s pour les pr\u00e9senter toutes dans cet article d\u00e9j\u00e0 long (si vous l'avez lu jusqu'ici \u2013 merci !). Pour finir nous mentionnerons tout de m\u00eame les derniers goodies de la plateforme IntelliJ, notamment la prise en charge de la barre tactile du MacBook et des am\u00e9liorations de la prise en charge de VCS.\r\n\r\nTestez ces nouvelles fonctionnalit\u00e9s en t\u00e9l\u00e9chargeant CLion 2018.2 et en profitant de la version d'essai gratuite de 30 jours. D'autre part, vous pouvez utiliser ce projet de d\u00e9monstration de GitHub pour juger par vous-m\u00eame des principales am\u00e9liorations. N'h\u00e9sitez pas \u00e0 nous faire part de vos retours d'exp\u00e9rience !\r\nT\u00e9l\u00e9charger CLion 2018.2\r\nVotre \u00e9quipe CLion\r\n\r\nJetBrains\r\nThe Drive to Develop","protected":false},"excerpt":{"rendered":"Depuis son lancement en avril 2015, CLion 1.0 n'a cess\u00e9 de s'am\u00e9liorer. Nous continuons \u00e0 travailler \u00e0 son am\u00e9lioration constante, non seulement pour la satisfaction de nos clients qui l'utilisent act","protected":false},"author":{"name":"Delphine Massenhove","link":"https:\/\/blog.jetbrains.com\/fr\/author\/delphine-massenhovejetbrains-com"},"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[907],"tags":[5460,477],"cross-post-tag":[],"acf":[],"featured_image":null,"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34114"}],"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=34114"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34114\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=34114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=34114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=34114"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=34114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}