{"id":34303,"date":"2020-05-28T12:34:23","date_gmt":"2020-05-28T11:34:23","guid":{"rendered":"https:\/\/blog.jetbrains.com\/fr\/?p=761"},"modified":"2020-07-01T13:16:05","modified_gmt":"2020-07-01T13:16:05","slug":"mps-2020-1-est-disponible","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/fr\/2020\/05\/28\/mps-2020-1-est-disponible\/","title":{"rendered":"MPS 2020.1 est disponible\u00a0!"},"content":{"rendered":"Nous avons le plaisir de vous informer que la premi\u00e8re version majeure de MPS pour cette ann\u00e9e est disponible. Cette version apporte plusieurs nouvelles fonctionnalit\u00e9s et des am\u00e9liorations de diff\u00e9rents sous-syst\u00e8mes. D\u00e9couvrez ce que nous avons pr\u00e9par\u00e9 pour vous.\r\n\r\nT\u00c9L\u00c9CHARGER MPS 2020.1\r\n\r\n&nbsp;\r\nUtilisez des s\u00e9parateurs diff\u00e9rents selon la position dans la liste\r\nLors de la modification de n\u0153uds avec la cardinalit\u00e9 (0, n) ou (1, n), vous aviez la possibilit\u00e9 de fournir un s\u00e9parateur personnalis\u00e9 entre les valeurs en impl\u00e9mentant une fonction de requ\u00eate de s\u00e9parateur. Cette fonctionnalit\u00e9 \u00e9tend cette capacit\u00e9 en passant plus d'arguments vers la fonction de requ\u00eate (\u00e0 savoir prevNode et nextNode). Ces derniers permettent de fournir un s\u00e9parateur personnalis\u00e9 pour chaque paire de valeurs. Dans la capture d'\u00e9cran suivante, \"and\" et \",\u00a0\" sont les s\u00e9parateurs. Regarder une d\u00e9mo.\r\n\r\nLight patterns\r\nUn pattern language permet de d\u00e9finir des mod\u00e8les de structure et de faire correspondre des n\u0153uds avec ces derniers. Il utilise des \u00e9diteurs de concept courants qui donnent au mod\u00e8le une apparence similaire aux n\u0153uds qu'il accepte. Mais pour certains \u00e9diteurs complexes qui ne correspondent pas exactement \u00e0 la structure du concept, il peut \u00eatre plus confortable d'utiliser des light patterns (constructeurs de mod\u00e8les) qui d\u00e9crivent la structure requise litt\u00e9ralement. Consultez la documentation pour en savoir plus ou regardez une d\u00e9mo.\r\n\r\nSaisie par dessus un texte existant\r\nLa possibilit\u00e9 de saisir par dessus du texte existant est une nouvelle fonctionnalit\u00e9 de l'\u00e9diteur projectionnel, qui le rapproche un peu d'un \u00e9diteur de texte. Lors de la saisie dans une cellule de texte, si le caract\u00e8re que vous venez de saisir \u00e9tait d\u00e9j\u00e0 pr\u00e9sent \u00e0 la position du curseur, le curseur se d\u00e9placera comme si vous veniez de remplacer le caract\u00e8re existant. Cette fonctionnalit\u00e9 n'est d\u00e9clench\u00e9e que si la frappe ne peut pas \u00eatre trait\u00e9e correctement et serait autrement ignor\u00e9e (par exemple dans les cellules constantes) ou rendrait le contenu de la cellule invalide. Regarder une d\u00e9mo.\r\n\r\nCette fonctionnalit\u00e9 est activ\u00e9e par d\u00e9faut et vous pouvez la d\u00e9sactiver dans l'onglet Settings \/ Editor \/ General.\r\nInfobulles\r\nL'extension d'\u00e9diteur de la plateforme Tooltips from mbeddr a \u00e9t\u00e9 ajout\u00e9e \u00e0 MPS. La migration est fournie pour les langages mbeddr. Regarder une d\u00e9mo.\r\n\r\nAm\u00e9liorations de BaseLanguage inspir\u00e9es de Java\r\nBaseLanguage inclut d\u00e9sormais try with resources, catch multiple exceptions, l'inf\u00e9rence de type pour les variables locales, et les m\u00e9thodes d'interface par d\u00e9faut et priv\u00e9es. Pour assurer la compatibilit\u00e9 avec les processus de build qui n\u00e9cessitent un niveau de langage Java sp\u00e9cifique, chaque solution peut \u00eatre configur\u00e9e pour interdire les fonctionnalit\u00e9s de langage non compatibles avec ce niveau.\r\n\r\n\u00c0 l'exception de la fonctionnalit\u00e9 local variable type inference, qui n\u00e9cessite j.m.baseLanguage.varVariable, ces fonctionnalit\u00e9s ne n\u00e9cessitent aucune autre importation de langage. Voir le guide de migration ou regarder une d\u00e9mo.\r\n\r\n\u00c9limination des extensions de langage inutiles\r\nMPS exigeait auparavant une d\u00e9pendance \u2018extends\u2019 entre les langages lorsqu'un \u00e9diteur de langage fournissait des composants d'\u00e9diteur pour les concepts d'un autre langage. Ces d\u00e9pendances ne refl\u00e8tent pas n\u00e9cessairement la relation entre les langages et entra\u00eenent parfois un traitement exhaustif de la hi\u00e9rarchie des langages. Prenez par exemple INamedConcept de j.m.lang.core. Tous les langages MPS \u00e9tendent j.m.lang.core. Par cons\u00e9quent, les aspects de l'\u00e9diteur de tous les langages disponibles sont consult\u00e9s d\u00e8s que le concept d'\u00e9diteur INamedConcept est utilis\u00e9.\r\n\r\nDans la version 2020.1, le g\u00e9n\u00e9rateur d\u00e9tecte les extensions de l'\u00e9diteur pour d'autres langages et g\u00e9n\u00e8re le code respectif qui manifeste la d\u00e9pendance de fa\u00e7on explicite, afin que les concepteurs de langage n'aient pas \u00e0 se soucier de ce type particulier de d\u00e9pendance entre les langages. La d\u00e9pendance \u2018extends\u2019 entre les modules de langage n'est plus n\u00e9cessaire pour activer les extensions de l'\u00e9diteur.\r\n\r\nCommentaires Javadoc dans les mod\u00e8les de stub Java\r\nLes biblioth\u00e8ques Java sont utilis\u00e9es dans le monde de MPS \u00e0 l'aide de mod\u00e8les de stub Java. Ces mod\u00e8les sont construits \u00e0 partir des informations .class et n'ont donc pas de documentation comme javadocs.\r\n\r\nDans la version 2020.1, un nouveau m\u00e9canisme permet de sp\u00e9cifier un zip contenant les sources d'une biblioth\u00e8que en plus de la biblioth\u00e8que .jar, et MPS est capable d'extraire le javadoc des sources pour le pr\u00e9senter en parall\u00e8le des informations extraites des fichiers de classe. Cette fonctionnalit\u00e9 est notamment pratique lorsque l'on utilise une biblioth\u00e8que Java \u00e0 partir de MPS et que l'on doit acc\u00e9der au javadoc de la biblioth\u00e8que. Il est beaucoup plus facile de naviguer vers le code concern\u00e9 et sa documentation directement dans MPS que de basculer vers un emplacement externe pour ensuite lancer une recherche et lire le code. C'est encore plus important pour MPS lui-m\u00eame, car des parties essentielles de son API sont fournies sous forme de stubs Java. Regarder une d\u00e9mo.\r\nD\u00e9tection d'erreurs pour les \u00e9diteurs d\u00e9fectueux\r\nSi le code dans l'aspect \u00e9diteur d'un langage l\u00e8ve une exception, l'\u00e9diteur par d\u00e9faut s'affiche pour une cellule correspondante dans un mod\u00e8le \u00e9crit dans le langage. \u00c0 partir de la version 2020.1, si ce type de cellule rompue est ouvert dans l'\u00e9diteur, une erreur s'affiche dans la fen\u00eatre d'outils Messages. Il est possible d'obtenir la trace de la pile \u00e0 partir de l'erreur et d'acc\u00e9der \u00e0 la cellule probl\u00e9matique. Regarder une d\u00e9mo.\r\nCommentaires multilignes en BaseLanguage\r\nLa fonctionnalit\u00e9 de SingleLineComment a \u00e9t\u00e9 am\u00e9lior\u00e9e et le nouveau concept MultiLineComment a \u00e9t\u00e9 introduit dans BaseLanguage pour prendre en charge les commentaires d\u00e9limit\u00e9s par les symboles \/* \u2026 *\/ de la m\u00eame mani\u00e8re que le fait Java.Voir le guide de migration ou regarder une d\u00e9mo.\r\nMenus Transform\/substitute\u00a0: fusion des menus nomm\u00e9s et des menus par d\u00e9faut\r\nIl s'agit d'une am\u00e9lioration qui simplifie les menus Transformation et Substitution en supprimant les concepts personnalis\u00e9s des menus d'\u00e9diteur nomm\u00e9 (SubstituteMenu_Named) et par d\u00e9faut (SubstituteMenu_Default). Les deux concepts ont \u00e9t\u00e9 fusionn\u00e9s dans leur parent (SubstituteMenu). Le type de menu est maintenant s\u00e9lectionn\u00e9 dans l'\u00e9diteur de menus. La m\u00eame refactorisation a \u00e9t\u00e9 appliqu\u00e9e aux menus Transformation. Voir le guide de migration ou regarder une d\u00e9mo.\r\n\r\n&nbsp;\r\nAutres am\u00e9liorations\r\nPolice de caract\u00e8res JetBrains Mono par d\u00e9faut\r\nMPS utilise maintenant la toute nouvelle police JetBrains Mono (Preferences \/ Settings | Editor | Font) par d\u00e9faut. D\u00e9couvrez tous les d\u00e9tails sur notre nouvelle police de caract\u00e8res sp\u00e9cialement con\u00e7ue pour les d\u00e9veloppeurs sur notre site web.\r\nLa Marketplace arrive dans MPS\r\nLa JetBrains Plugin Marketplace est d\u00e9sormais disponible dans MPS. Cela ouvre de nouvelles opportunit\u00e9s car vous pouvez commercialiser vos plugins.\r\nInterface de Commit non modale\r\nAfin de simplifier le flux de commits, nous avons d\u00e9velopp\u00e9 une nouvelle fen\u00eatre Commit tool pour g\u00e9rer toutes les t\u00e2ches li\u00e9es aux commits. Elle offre davantage d'espace pour la liste des fichiers modifi\u00e9s et le diff, et vous permet d'ajouter des modifications \u00e0 un commit quand elles sont pr\u00eates, de composer un message de commit de mani\u00e8re it\u00e9rative et de choisir quelle modification \u00e9chelonn\u00e9e va dans quel commit.\r\n\r\nCette interface n'est pas activ\u00e9e par d\u00e9faut. Si vous voulez l'essayer, s\u00e9lectionnez \"Use non-modal commit interface\" dans Preferences\/Settings | Version Control | Commit.\r\nMode Zen\r\nCe nouveau mode vous aide \u00e0 vous concentrer sur votre code en combinant les modes Plein \u00e9cran et Sans distraction. Pour essayer le mode Zen, cliquez sur View | Appearance | Enter Zen Mode.\r\nInstaller Git depuis l'EDI\r\nVous n'avez plus besoin de pr\u00e9installer Git manuellement\u00a0. Lorsque vous clonez un r\u00e9f\u00e9rentiel Git, l'EDI recherche l'ex\u00e9cutable Git sur votre machine et vous propose de le t\u00e9l\u00e9charger et de le configurer pour vous si l'EDI ne peut pas le localiser.\r\nChemin d'acc\u00e8s au fichier de configuration\r\nVeuillez noter que dans MPS 2020.1, le chemin d'acc\u00e8s aux fichiers de configuration a chang\u00e9. En savoir plus.\r\n\r\n&nbsp;\r\n\r\nN'oubliez pas de consulter notre Guide de migration. Nous avons \u00e9galement r\u00e9solu une longue liste de bugs qui nous avaient \u00e9t\u00e9 signal\u00e9s par la communaut\u00e9. Si vous trouvez de nouveaux bugs ou pensez \u00e0 des fonctionnalit\u00e9s utiles que nous pourrions ajouter, merci de nous en faire part dans notre outil de suivi.\r\n\r\nFaites attention \u00e0 vous et passez une bonne journ\u00e9e\u00a0!\r\n\r\nL'\u00c9quipe JetBrains MPS\r\n\r\nThe Drive to Develop\r\n\r\nAuteur de l'article original en anglais :\u00a0Oscar Rodriguez","protected":false},"excerpt":{"rendered":"Nous avons le plaisir de vous informer que la premi\u00e8re version majeure de MPS pour cette ann\u00e9e est disponible. Cette version apporte plusieurs nouvelles fonctionnalit\u00e9s et des am\u00e9liorations de diff\u00e9re","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":[4725,138],"cross-post-tag":[],"acf":[],"featured_image":null,"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34303"}],"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=34303"}],"version-history":[{"count":1,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34303\/revisions"}],"predecessor-version":[{"id":52583,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34303\/revisions\/52583"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=34303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=34303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=34303"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=34303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}