Nouveautés de RubyMine 2022.1

Prise en charge des nouvelles fonctionnalités des langages Ruby et RBS, nouvelles inspections et correctifs rapides, améliorations de l'expérience utilisateur, et plus.

Ruby

Prise en charge des nouvelles fonctionnalités de langages

RubyMine 2022.1 apporte la prise en charge des nouvelles fonctionnalités de Ruby et de RBS introduites dans Ruby 3.1. Cette prise en charge concerne notamment les génériques bornés, RBS collection, le transfert des arguments de blocs anonymes, et les alias de types génériques.

Nouvelles inspections

Cette version ajoute plusieurs nouvelles inspections qui vérifient l'utilisation des variables de types dans RBS. Elles signalent les signatures de types manquantes, l'utilisation d'arguments de types non valides, les variations de variables de types conflictuelles et les variations d'arguments de types incorrectes, entre autres.

Surcharges dans la documentation rapide

RubyMine peut maintenant afficher les surcharges dans la recherche de la documentation rapide (Ctrl+Q). Lorsque vous appelez la documentation rapide sur une méthode, elle affiche la surcharge correspondante actuelle.

Conseils d'insertion pour les méthodes Ruby basées sur RBS

RubyMine affiche maintenant des conseils d'insertion pour le code Ruby, basés sur les signatures de types des fichiers RBS correspondants. En cliquant sur un conseil, vous accédez à la signature de type correspondante.

Correctif rapide pour les problèmes de correspondance des signatures de types

RubyMine signale les types inférés dans le code Ruby qui ne correspondent pas au type attendu de RBS. À partir de la version 2022.1, vous pouvez rapidement naviguer vers le fichier RBS correspondant dans de tels cas.

Amélioration de la saisie semi-automatique pour la balise YARD @overload

RubyMine comprend la balise @overload et suggère toutes les surcharges déclarées lorsqu'il affiche les informations sur les paramètres. À partir de cette version, la saisie semi-automatique pour la balise @overload ajoute le nom d'une méthode que vous décrivez.

Expérience utilisateur

Boîte de dialogue New Project remaniée

Nous avons retravaillé l'interface de la boîte de dialogue New Project afin de simplifier la création de nouveaux projets, tant pour les débutants que pour les utilisateurs plus expérimentés.

Prise en charge des nouvelles options generate de Rails 7

Cette version apporte la prise en charge des nouvelles options du framework JavaScript pour la génération de projets, qui ont été ajoutées dans Rails 7. Vous pouvez désormais les sélectionner lors de la création d'un nouveau projet à l'aide de la boîte de dialogue New Project.

Nouvelle fenêtre d'outils Notifications

Nous avons remplacé le journal Event Log par une nouvelle fenêtre d'outils Notifications. Cela permet d'avoir une meilleure vue d'ensemble des notifications de l'IDE pour ne rien manquer d'important. Toutes les notifications qui s'affichent dans la fenêtre d'outils sont désormais réparties en deux catégories : Suggestions et Timeline.

Mise à jour de la boîte de dialogue Open File or Project

Nous avons supprimé l'arborescence de la boîte de dialogue Open File or Project afin que l'IDE ne calcule plus tous les nœuds de répertoire intermédiaires à l'ouverture. Cette modification améliore les performances globales de l'IDE en évitant les blocages persistants causés par les calculs de chemins sans issue.

Libellés des onglets masqués dans le débogueur

Afin de maximiser l'espace utilisable dans la fenêtre d'outils Debugger, les libellés des onglets sont maintenant masqués par défaut.

Mise à jour de la boîte de dialogue Structural Search and Replace

Nous avons remanié la boîte de dialogue Structural Search and Replace afin de présenter une liste de tous les modèles et de faciliter la navigation entre eux.

Éditeur

Nouvelle option de mise en forme pour indenter les modificateurs de visibilité

Vous pouvez désormais définir l'indentation des modificateurs de visibilité (public, protected, private) et du code qu'ils contiennent. Pour utiliser ce paramètre, cliquez sur Preferences/Settings | Editor | Code Style | Ruby | Tabs and Indents et cochez la case Indent visibility modifiers.

Mise en forme du code en mode LightEdit

Le mode LightEdit permet de modifier des fichiers sans créer ou charger un projet complet. Vous pouvez désormais mettre votre code en forme en étant en mode LightEdit. Pour ce faire, appuyez sur Ctrl+Alt+L ou cliquez sur Code | Reformat Code dans le menu principal.

Exécuter des commandes à partir des fichiers Markdown

Nous avons ajouté une nouvelle icône gouttière à côté des commandes shell pour les fichiers Markdown. Cliquer sur cette icône permet d'exécuter une commande dans le terminal intégré de RubyMine. Cela peut servir si vous suivez des instructions comme les fichiers README, qui contiennent souvent des commandes shell.

Copy code snippet pour Markdown

Vous pouvez utiliser la nouvelle action Copy code snippet pour copier le contenu d'un bloc dans le presse-papiers.

Ajout d'actions dans la barre d'outils de l'éditeur Markdown

De nouvelles options pour la barre d'outils flottante s'affichent quand vous sélectionnez du texte lors de la modification de fichiers Markdown. Grâce à cette barre d'outils, vous pouvez désormais sélectionner des styles d'en-tête et créer des listes rapidement.

Tests

Navigation vers des contextes et des exemples partagés dans RSpec

Vous pouvez désormais naviguer, à partir de vos spécifications, vers les contextes partagés et les exemples partagés utilisés dans ces contextes. Pour ce faire, utilisez Ctrl+clic<0> sur une déclaration qui ajoute une ressource partagée : include_context, include_examples, it_behaves_like ou it_should_behave_like.

Docker

Nouvelle interface utilisateur pour la vue Services

Nous avons considérablement remanié l'interface utilisateur de Docker dans la fenêtre d'outils Services. Cette refonte concerne les conteneurs, les images, les réseaux et les volumes.

Prise en charge de Docker Registry V2

Nous avons ajouté la prise en charge de l'API HTTP V2 de Docker Registry pour une utilisation avec Docker 1.6 et ses versions ultérieures. Vous pouvez ainsi créer des registres Docker V2 simples ou protégés par mot de passe et effectuer des actions comme afficher, pousser et extraire des images.

Contrôle de version

Mise à jour d'Annotate with Git Blame

Nous avons amélioré la fonctionnalité d'Annotate with Git Blame afin de faciliter l'examen des modifications. RubyMine met en évidence les différences entre les lignes dans l'éditeur lorsque vous survolez une annotation et vous pouvez ouvrir la fenêtre d'outils Git Log en cliquant sur l'annotation.

Git File History : nouvelle interface utilisateur sans index

La nouvelle interface utilisateur de la fenêtre d'outils Git File History est désormais indépendante du processus d'indexation. Les données sont représentées avec une nouvelle interface même si l'index Log est désactivé.

Web et Frameworks

Meilleure prise en charge de Next.js

Grâce à la prise en charge intégrée de React, toutes les fonctionnalités principales doivent déjà fonctionner dans vos projets Next.js. RubyMine 2022.1 ajoute la prise en charge de certains aspects spécifiques au framework, comme les pages. L'IDE résout les chemins utilisés dans la propriété href de vos composants Link ainsi que dans les balises form et autres. La saisie semi-automatique du code, la navigation et les refactorisations fonctionnent également à présent.

Prise en charge de Volta

Cette version apporte une intégration complète avec Volta, un gestionnaire d'outils JavaScript. RubyMine reconnaît ainsi automatiquement Yarn et npm s'ils sont installés à l'aide de Volta.

Autres améliorations

  • Pour faciliter la navigation dans l'onglet Log, le lecteur d'écran lit désormais les noms et les descriptions des arborescences de branches.
  • La prise en charge de l'accessibilité pour les utilisateurs de macOS a été améliorée. Nous avons résolu le problème concernant VoiceOver, qui provoquait plusieurs répétitions inutiles des éléments d'une liste. De plus, VoiceOver peut désormais lire les listes déroulantes, et nous avons corrigé le positionnement incorrect du curseur VoiceOver sur un écran externe.
  • Il est maintenant plus facile de travailler avec les suggestions de modifications. Nous avons ajouté la possibilité d'appliquer ou de valider des modifications localement, directement dans l'IDE.
  • Lorsque vous travaillez avec des bases de données, vous pouvez désormais sélectionner plusieurs tables et les copier dans un autre schéma.
  • Nous inaugurons une nouvelle intention permettant de travailler avec les requêtes de base de données : Convert To Subquery. Désormais, il n'est même plus nécessaire de sélectionner une requête : il suffit d'appuyer sur Alt+Entrée | Convert To Subquery.
  • Nous avons ajouté la prise en charge de la logique de résolution pour les superclasses RBS, qui a été mise à jour pour plus de cohérence avec Ruby : RUBY-29164.
  • Nous avons supprimé la prise en charge de Rails 3.
  • Le mot-clé extend ajoute des méthodes à une classe singleton et ne doit pas avoir accès aux variables de types. RubyMine affiche désormais une erreur si on essaye d'utiliser des variables de types avec extend : RUBY-29099.
  • Nous avons modifié le volet Commit Details dans la fenêtre d'outils Git. Il comprend désormais des informations sur les signatures GPG et l'état du build. Auparavant, ces données étaient seulement affichées dans une colonne du Git Log.
  • Nous avons ajouté la prise en charge de Corepack, un outil Node.js expérimental qui permet d'utiliser Yarn et pnpm sans avoir à les installer. Pour l'essayer, assurez-vous d'exécuter corepack enable dans le terminal intégré. La fonctionnalité n'est pas activée par défaut.
  • La saisie semi-automatique du code CSS de Tailwind fonctionne désormais dans les modèles FreeMarker.
  • Nous avons supprimé les modèles de fichiers HTML4 et XHTML, car ils n'étaient pas très utilisés.
  • L'assistance au codage de Webpack fonctionne maintenant avec les modules ES dans vos fichiers webpack.config.js.
  • L'outil de mise en forme en ligne de commande prend désormais en charge le mode dry run pour valider les fichiers de projets.
  • Vous pouvez maintenant configurer les onglets fractionnés afin qu'ils aient la même largeur. Pour cela, cochez la nouvelle option Equalize proportions in nested splits dans Preferences / Settings | Advanced Settings.
  • Il est désormais possible d'exporter des diagrammes UML sous forme de fichiers yEd .graphml, JGraph .drawio, Graphviz .dot, Graphviz .dot avec positions, Mermaid .md, Plantuml et IDEA .uml, ce qui les rend compatibles avec des outils tiers. Pour exporter, utilisez l'action correspondante du menu contextuel accessible par un clic droit.