Nouveautés de MPS 2024.3

Nouveautés de MPS 2024.3

MPS 2024.3 améliore l'interface utilisateur, remanie la partie interne de nombreux composants et active TextGen pour les fichiers binaires. Vous bénéficierez également d'une meilleure prise en charge des icônes et de nombreuses mises à jour de la plateforme.

Consultez la liste détaillée des améliorations ci-dessous.

Racines de la vue logique

Dossier de niveau supérieur pour les modèles transitoires et de point de contrôle

La fenêtre d'outils ProjectView comporte désormais trois dossiers de haut niveau pour mieux organiser la structure du projet :

  • Nom du projet
  • Modules Pool
  • Checkpoints and Transient Models

Le dossier Checkpoints and Transient Models s'affiche toujours sous Modules Pool et reste vide sauf si des modèles transitoires ou de point de contrôle sont disponibles. Ces modèles s'affichent dans ce dossier et ne sont pas au niveau supérieur comme cela était le cas auparavant.

D'autre part, le nouveau dossier Checkpoints and Transient Models permet à la fenêtre d'outils ProjectView de mémoriser les arborescences développées et réduites de la structure de projet après les redémarrages successifs de MPS.

Activer les aperçus

Option Enable preview tab

Les options suivantes d'activation/désactivation de la fenêtre Preview Tab fournie par IntelliJ Platform sont désormais respectées par MPS et garantissent le même comportement d'éditeur que pour les autres outils JetBrains :

  • Settings | Editor | General | Editor Tabs | Opening Policy | Enable Preview Tab
  • Logical View | Behavior | Enable Preview Tab
Design actualisé de la boîte de dialogue pour les infobulles 2

launchtests : indique l'option de chemin d'accès au répertoire

Une option supplémentaire, reports dir, a été ajoutée à la section des options de test configuration dans les scripts de build. L'utilisateur peut spécifier le répertoire de sortie où les rapports de test JUnit générés doivent être stockés.

Inspector

Contrôle de la condition d'application du correctif rapide

Une nouvelle section appelée applicable a été ajoutée aux définitions Quick-Fix pour vous permettre de contrôler l'applicabilité d'un correctif rapide. La valeur par défaut <always> garantit une applicabilité illimitée.

Traitement des icônes

Les icônes et les images dont le chemin est relatif au module ne sont plus copiées lors de la génération à proximité de leurs utilisations respectives. Au lieu de cela, elles sont copiées dans le module de distribution en tant que fichier d'image et sont accessibles depuis cet endroit unique. Cela présente deux avantages immédiats : éviter la duplication des fichiers d'image pour économiser l'espace disque et permettre l'accès aux images aussi bien depuis la distribution que du module source.

Icônes de constantes

Icônes de constantes

En complément des concepts TextIcon et FileIcon existants, le nouveau concept ConstantFieldIcon est maintenant disponible. Il permet de spécifier une icône par référence à une déclaration concrète de champ statique comportant une instance de javax.swing.Icon.

Sortie binaire TextGen

Pour mieux gérer les fichiers d'icône, nous avons ajouté un nouveau mécanisme permettant de générer une sortie binaire lors du processus de génération de texte, plutôt que du texte. La nouvelle API comprend l'opération write qui manipule directement les données en tant qu'instances de byte[].

Fenêtres d'outils migrées hors de ProjectComponent

Toutes les fenêtres d'outils, telles que Inspector, HierarchyView et Usages, ont été remaniées de façon à ne plus suivre le mécanisme des composants de projet IntelliJ Platform (ProjectComponent) qui est obsolète depuis longtemps. Les modifications apportées à l'API sont minimales, mais quelques fenêtres d'outils ont fait l'objet d'une modification de leur mode d'obtention à partir du code :

  • La méthode Project.getComponent() ne renvoie plus aucune fenêtre d'outils.
  • Les outils qui sont implémentés en tant que concept d'outil MPS peuvent être obtenus avec com.intellij.openapi.project.Project.tool <ToolConcept>.
  • Les outils qui sont utilisés fréquemment depuis Java fournissent une méthode getInstance() statique :
    • UsagesViewTool.getInstance()
    • InspectorTool.getInstance()
  • L'outil Inspector reste disponible depuis EditorContext.inspectorTool().

Composants et services IntelliJ Platform

En plus des fenêtres d'outils, la majeure partie des fonctionnalités MPS a été remaniée pour ne plus utiliser les interfaces ApplicationComponent et ProjectComponent d'IntelliJ IDEA.

MPS avait recours aux fonctionnalités d'IntelliJ Platform pour composer l'application finie. Désormais, la plupart des composants hérités ont été refactorisés pour utiliser les API MPS ou IntelliJ IDEA contemporaines (comme les services applicatifs/de projet et les points d'extension d'IntelliJ IDEA, CoreComponents et extensions dans MPS, etc.). Il reste toujours quelques composants que l'équipe MPS devrait supprimer totalement lors de la prochaine version.

La plupart des utilisateurs ne verront aucune différence et profiteront d'un démarrage plus rapide.

Veuillez consulter le Guide de migration si votre code ne trouve aucun composant de plateforme parce qu'il utilise un mécanisme obsolète d'extraction.

Basculement vers la nouvelle interface utilisateur

MPS utilise désormais la nouvelle interface utilisateur. L'ancienne version peut être activée en installant le plugin Classic UI.

Nombreux correctifs de bugs

Comme d'habitude, ce build corrige son lot de bugs. Vous trouverez ici la liste complète de tous les problèmes que nous avons résolus.

Nouveautés de la plateforme

Passage à JBR21

Nous passons de JetBrains Runtime 17 (JBR17) à JetBrains Runtime 21 (JBR21). À partir d'IntelliJ IDEA 2024.2, toutes les mises à jour de l'IDE intégreront JBR21 pour offrir une sécurité et des performances améliorées ainsi que la prise en charge du rendu Wayland pour Linux.

Détection automatique des paramètres de proxy activée par défaut pour les nouveaux utilisateurs

IntelliJ IDEA détecte désormais automatiquement les paramètres de proxy système configurés sur votre ordinateur et les utilise par défaut, ce qui fluidifie l'interaction avec les ressources et services externes.

Boîte de dialogue Customize Main Toolbar améliorée

Nous avons modifié la présentation et le comportement des éléments de l'interface utilisateur dans la boîte de dialogueCustomize Main Toolbar afin de la rendre plus intuitive et mieux organisée. Il est désormais plus facile de rechercher, d'ajouter et de supprimer des actions dans la barre d'outils principale.

Augmentation de la limite du nombre d'onglets ouverts par défaut

Nous avons augmenté la limite par défaut pour le nombre d'onglets ouverts dans l'éditeur, qui est maintenant de 30. Vous pouvez ainsi garder davantage d'onglets ouverts avant que l'IDE ne commence à fermer ceux qui sont restés inutilisés le plus longtemps. Vous pouvez contrôler ce paramètre dans Settings | Editor | General | Editor Tabs.

Prise en charge de la syntaxe mathématique dans les fichiers Markdown

IntelliJ IDEA peut désormais restituer nativement des expressions mathématiques dans des fichiers Markdown. Lorsque vous travaillez avec Markdown, vous pouvez utiliser $ pour insérer des expressions mathématiques inline et $$ pour les blocs de code incluant du contenu mathématique.

Balises dans le widget Version Control

Nous avons dédié un nœud aux balises dans le widget Version Control pour faciliter leur vérification. Le nœud s'affiche par défaut, mais si vous préférez le masquer, cliquez simplement sur l'icône d'engrenage et décochez l'option Show Tags.

Amélioration de l'expérience utilisateur dans la fenêtre d'outil Log

Tous les paramètres liés à la fenêtre d'outil Log ont été regroupés dans une page de paramètres dédiée, à laquelle vous pouvez accéder dans Settings/Preferences | Version Control | Log ou dans un nouveau menu déroulant de la barre d'outils dans la fenêtre d'outil Log.

Nom de la branche sur l'écran d'accueil

L'écran d'accueil affiche désormais le nom de la branche pour vous aider à rester organisé lorsque vous gérez plusieurs versions de projet et vous permettre de basculer facilement entre les répertoires de travail.

Nouvelles options First Parent et No Merges dans Graph Options

Nous avons ajouté de nouvelles options Git pour simplifier l'affichage des historiques de branches. Utilisez l'option First Parent pour vous concentrer sur les modifications de la branche principale en masquant les commits individuels des fusions. Vous pouvez également filtrer entièrement les commits de fusion à l'aide de l'option No Merges. Vous trouverez les deux options sous l'icône Graph Options dans la fenêtre d'outil Git, afin de faciliter le suivi des modifications dans vos branches.

Améliorations du nouveau terminal
Bêta

Le nouveau terminal offre désormais un meilleur traitement des commandes et la cohérence de son interface utilisateur a été affinée, pour une expérience plus fluide et plus intuitive. Le terminal est plus réactif et traite les prompts plus rapidement. Le changement de session est désormais transparent, avec une conservation cohérente de l'état dans tous les onglets pour garantir que votre workflow ne soit pas interrompu. La saisie semi-automatique accède plus rapidement aux noms de commandes, aux flags et aux chemins, ce qui réduit la saisie manuelle. Nous avons également introduit des options de personnalisation supplémentaires, notamment pour les styles de prompts, les noms de sessions et les variables d'environnement, afin de vous offrir un meilleur contrôle sur l’environnement de votre terminal.

Guide de migration

Pour chaque nouvelle version majeure de MPS, nous fournissons des instructions pour vous aider à effectuer la migration dans les meilleures conditions. Nous vous invitons à en prendre connaissance.