JetBrains annonce la disponibilité de la version 2020.3 de MPS (Meta Programming System),
son environnement de développement de langages dédiés s'accompagne de plusieurs nouveautés et améliorations

Un langage dédié (en anglais, Domain specific language ou DSL) est un langage de programmation dont les spécifications sont conçues pour répondre aux contraintes d’un domaine d'application précis. Il s'oppose conceptuellement aux langages de programmation classiques (ou généralistes) comme Java ou C, qui tendent à traiter un ensemble de domaines. Dans de nombreux cas, les DSL ne sont pas conçus pour être utilisés par des développeurs, mais par des non-programmeurs maîtrisant parfaitement le domaine couvert par le langage dédié.

La construction des langages dédiés diffère fondamentalement de celle d'un langage classique. Le processus de développement peut s’avérer très complexe. Sa conception nécessite en effet une double compétence dans le domaine à traiter et en développement informatique. Mais un langage dédié étant basé sur les concepts et les fonctionnalités d'un domaine spécifique, il reste un moyen efficace de décrire et de générer des programmes dans ce domaine ; ce que veut faciliter JetBrains avec MPS.

MPS vous permet de concevoir votre propre langage dédié avec un environnement de développement complet. Il offre un éditeur de code et est fourni avec son propre moteur de génération de code, qui peut être utilisé pour fournir une sémantique aux DSL basés sur MPS. Vous pouvez donc créer des générateurs pour compiler votre DSL dans plusieurs langages cibles, tels que Java, C, XML, etc.

Pour ceux qui connaissent déjà MPS, dans sa version 2020.3, MPS apporte une nouvelle macro de générateur, la mise en évidence des utilisations dynamiques, un écran d'accueil avec un design et une ergonomie repensés et de nombreuses autres nouvelles fonctionnalités.

Les nouveautés apportées par MPS 2020.3

Nouvelle macro de générateur

Une nouvelle macro nommée $CALL-SITE$ facilite l'insertion d'un nœud attribuée à une macro SWITCH/CALL dans un emplacement désigné dans le template appelé. Avant la modification, le nœud du template auquel était jointe une macro SWITCH/CALL était généralement ignoré. Désormais, si un template/switch appelé essaie d'utiliser un 'call site node', le nœud est traité comme un template normal et le résultat est fourni au template/switch appelé en tant qu'argument implicite qui peut être inséré dans l'emplacement souhaité.

Nom : switch.png
Affichages : 11678
Taille : 54,6 Ko

Mise en évidence des utilisations dynamiques dans l'éditeur

La mise en évidence dynamique, fonctionnalité très attendue, est maintenant disponible. Cette fonctionnalité est très similaire à l'action existante Highlight Usages (Ctrl/Cmd+Maj+ 7). Mais contrairement à cette dernière, la mise en évidence dynamique fonctionne automatiquement au fur et à mesure de votre saisie et de votre navigation dans le code. Les références au nœud sous le curseur sont presque immédiatement mises en évidence dans le document modifié. Vous pouvez toujours utiliser l'action Highlight Usages pour « épingler » les utilisations du nœud actuellement sélectionné alors que votre navigation vous en éloigne. Dans ce cas, la mise en évidence dynamique continuera à mettre en évidence le nœud sous le curseur.

Cette fonction peut être activée ou désactivée dans les paramètres de l'éditeur de MPS, en cochant/décochant Highlight selected node.

Instruction switch améliorée dans BaseLanguage

En plus de certaines améliorations de l'éditeur, le concept de commutateur prend désormais en charge l'utilisation de plusieurs cas pour la même instruction.

Nom : instruction.png
Affichages : 1288
Taille : 49,8 Ko

Bande d'erreur sur le volet du projet

JetBrains vous propose une nouvelle façon d'afficher les erreurs, les avertissements et les messages dans le volet Project. La bande Error aide à organiser les messages dans le volet Project. Vous pouvez le désactiver via le bouton de réglage Logical View.

Nom : erreur.png
Affichages : 1277
Taille : 81,4 Ko

Modifications du traitement des facettes de module

MPS ne vous oblige plus à utiliser une facette de module spécifique avec un module donné. Les facettes associées à un module sont enregistrées dans le fichier descripteur du module, qui est désormais la source ultime d'informations. JetBrains avait déjà rendu la facette Tests complètement facultative dans les versions précédentes. Désormais la dernière, Java, l'est également. Veuillez noter cependant que décocher la facette du module Java dans les propriétés du module Langage exclura le langage du mécanisme de chargement des classes et produira une expérience complètement différente. JetBrains a implémenté cette modification pour favoriser une prise en charge discrète des langages cibles autres que Java.

Amélioration des annotations à la racine dans le VCS

L'ancien algorithme d'annotation racine utilisait les résultats de l'annotation obtenus à partir du fichier texte du modèle. Il ne fonctionnait que pour les modèles avec persistance de texte et il arrivait souvent qu'il soit incorrect. Avec la nouvelle approche, l'annotation est construite en comparant les modèles de différentes révisions.

Suivi des nœuds déplacés dans la boîte de dialogue Diff

L'algorithme de calcul des modifications entre les deux modèles précédent ne pouvait pas détecter certains types de changements. Le mouvement du nœud était détecté comme deux changements indépendants : une insertion et une suppression. Il est maintenant possible d'afficher le mouvement du nœud comme un seul mouvement. De plus, il est possible de détecter des changements internes, à l'intérieur de la partie mobile.

Nouvel écran d'accueil

JetBrains a actualisé l'apparence et l'ergonomie de l'écran d'accueil. Désormais, il inclut non seulement la sélection de projets, mais également plusieurs boîtes de dialogue pour vous aider à personnaliser votre IDE en fonction de vos besoins. D'abord et avant tout, la page Projects comporte plus d'espace, ce qui permet d'avoir plus de projets. Il est également plus facile de rechercher un projet donné à partir du champ de recherche. La page Customization vous guide dans les paramètres de l'interface principale, tels que le thème de couleur, la police de l'IDE, les actions d'importation et les préférences de partage.

Nom : accueil.png
Affichages : 1242
Taille : 28,6 Ko

Autres améliorations

Remaniement du menu VCS

Le menu VCS a été renommé pour correspondre au système de contrôle de version que vous utilisez actuellement. JetBrains a rendu le menu plus concis et clair, en ne conservant que les actions les plus utiles pour la gestion des versions de votre projet. Vous pouvez désormais accéder facilement aux fonctionnalités essentielles de Git, qui ne sont plus placées dans un sous-menu. Par exemple, si votre projet utilise uniquement Git, le menu VCS ressemble maintenant à ceci :

Nom : vcs.png
Affichages : 1235
Taille : 42,4 Ko

Bouton Commit and Push

Les deux boutons les plus utilisés, Commit et Commit and Push, sont explicitement affichés sur l'écran Commit. Vous pouvez pousser les modifications vers le référentiel distant immédiatement après le commit, plus besoin de faire défiler une liste déroulante pour arriver au bouton Commit and Push.

Branches améliorées

Cette version apporte plusieurs améliorations pour les branches. L'IDE corrige maintenant automatiquement les symboles non acceptés dans les noms des nouvelles branches et vous pouvez maintenant voir toutes les actions liées à la branche actuelle.

Division de l'écran de l'éditeur par glisser-déposer des onglets

Il est toujours pratique d'avoir plusieurs onglets ouverts lorsque l'on travaille sur un gros projet. Avec MPS 2020.3, vous pouvez diviser l'écran principal de l'éditeur horizontalement ou verticalement en glissant-déposant un onglet à l'emplacement souhaité. Lorsque vous faites glisser un onglet, l'éditeur met en évidence les emplacements où vous pouvez le déposer. L'EDI affiche les onglets épinglés au début de la barre des onglets.

Télécharger MPS 2020.3

Source : JetBrains