RubyMine 2019.2 ajoute la prise en charge de Rails 6 et Ruby 2.7, améliore la prise en charge de YARD et le débogueur, et intègre de nombreuses améliorations à la plateforme. Découvrez toutes les nouveautés ci-dessous et mettez-le à jour dès aujourd'hui. Nous vous encourageons également à nous faire part de tout problème et à rejoindre le Slack RubyMine !
Notre débogueur utilisait TracePoint :line pour suivre l'exécution du programme ligne par ligne. Pour la version 2019.2, nous avons conçu une extension native de MRI qui permet au débogueur de choisir à quels fragments de code l'exécution doit être suspendue, afin d'éviter toute surcharge au reste du code. Ainsi, nous avons radicalement accéléré le débogueur et implémenté les nouvelles fonctionnalités ci-dessous.
Auparavant, si vous tombiez sur une ligne avec beaucoup de méthodes dans une session de débogage, RubyMine n'était capable de s'exécuter pas à pas que dans la première méthode d'une ligne. Le nouveau Smart Step Into lève cette restriction et vous permet de lancer des exécutions pas à pas et d'examiner chaque méthode ou appel de bloc spécifique situé sur la même ligne.
Avec la nouvelle version, vous pouvez définir des points d'arrêt non seulement sur des lignes mais aussi sur des blocs. Lorsque vous cliquez sur la gouttière de gauche pour définir un point d'arrêt sur une ligne contenant un bloc, RubyMine vous demandera si vous voulez définir un point d'arrêt sur une ligne, un bloc ou les deux.
Consultez Débogage dans RubyMine pour découvrir en détail comment déboguer les scripts Ruby et Rails dans RubyMine.

RubyMine 2019.2 prend en charge la reconnaissance des schémas, qui a été introduite dans le premier aperçu de Ruby 2.7 en tant que fonctionnalité expérimentale. L'EDI identifie la nouvelle syntaxe et vous aide à naviguer, à trouver les utilisations et à renommer les objets.
Plus d'informations sur la reconnaissance de schémas dans Ruby
La nouvelle version de RubyMine reconnaît la syntaxe des paramètres numérotés et affiche/trouve leurs utilisations. Ceci est une autre fonctionnalité expérimentale de Ruby 2.7 qui vous permet d'assigner des valeurs dans des blocs en utilisant un numéro de paramètre comme paramètre par défaut, au lieu de définir une variable de bloc.
RubyMine 2019.2 prend en charge Action Mailbox qui sera disponible avec Rails 6. L'EDI propose la saisie automatique des méthodes de routage et des rappels, et permet de naviguer entre leurs implémentations et leurs utilisations.
Nous avons également ajouté quelques inspections qui vous permettent de savoir si vous avez oublié d'ajouter un
appel routing dans ApplicationMailbox et une méthode process dans votre
mailbox. Cette dernière propose également un correctif rapide.
Pour en savoir plus sur l'utilisation d'Action Mailbox, consultez cet épisode détaillé de GoRails.

Nous avons ajouté une prise en charge adaptée du code pour ActiveRecord::Enum. Cela inclut la saisie automatique
du code,
la navigation et la recherche des utilisations des noms et méthodes des énumérations. Les portées négatives pour les énumérations, introduites dans
Rails 6, sont également prises en charge.
Nous améliorons progressivement notre prise en charge de YARD pour vous aider à créer et gérer les balises YARD, et obtenir
une meilleure saisie automatique du code dans RubyMine en fonction des annotations YARD. La nouvelle version ajoute des annotations
et des inspections de type appropriées pour les balises @overload et @yieldparam.
Consultez la page Prise en charge de YARD dans RubyMine pour un aperçu détaillé des fonctionnalités et des nouvelles améliorations de RubyMine concernant YARD.
Avec la v2019.2, vous pouvez renommer (Maj+F6) des factory, des séquences et des caractéristiques. L'EDI trouve leurs définitions et propose de les renommer ainsi que toutes les utilisations, de même que le nom du fichier s'il correspond à celui de la factory.
Nous avons également ajouté des factory, des séquences et des caractéristiques à la vue File Structure (Cmd/Alt+F7) et à la fenêtre contextuelle (Cmd/Ctrl + F12), ainsi que la possibilité de les supprimer sans risque (Refactor | Safe Delete).
La nouvelle intention Propagate to destructuring (Alt-Entrée) vous permet de remplacer une variable supplémentaire si possible par une autre déstructuration. Pour supprimer complètement une déstructuration, utilisez l'action d'intention Replace destructuring with property or index access.
Lorsque vous renommez un symbole dans un fichier JavaScript ou TypeScript, désormais l'EDI regroupe les utilisations dynamiques et les exclut de la refactorisation par défaut. Cela permet de rendre la refactorisation plus précise et vous donne plus de contrôle sur ce qui doit exactement être renommé dans la fenêtre d'outils Refactoring Preview.
La saisie automatique du code pour les composants et leurs accessoires depuis Vuetify, BootstrapVue, Quasar et certaines autres bibliothèques de composants Vue, est maintenant plus précise. Cela a été rendu possible par la nouvelle approche que nous avons adoptée pour la manipulation de ces bibliothèques dans l'EDI.
La nouvelle inspection Duplicate code fragment vérifie votre code à la volée et met immédiatement en évidence les doublons potentiels dans l'éditeur. Cela fonctionne pour JavaScript, TypeScript, CSS, Sass, SCSS et Less.
Consultez les nouveautés de WebStorm pour en savoir plus sur les améliorations JavaScript disponibles dans RubyMine 2019.2.
Avec la v2019.2, vous pouvez gérer différents styles de code dans différentes parties de vos projets en ajoutant
plusieurs fichiers .editorconfig. En plus des options standard d'EditorConfig,
qui sont prises en charge depuis longtemps, vous pouvez maintenant utiliser des propriétés spécifiques à l'EDI qui couvrent toutes
les options de style
de code disponibles dans l'EDI.
La nouvelle version prend entièrement en charge les scripts shell. Cela inclut la saisie automatique du code, la documentation rapide,
le renommage textuel pour les fichiers .sh et .bash, et les configurations d'exécution des scripts
shell. L'EDI intègre
également ShellCheck pour le linting et
shfmt pour le formatage du code.
Dans les fichiers .gitignore, l'EDI propose désormais des suggestions de saisie de code pour les fichiers et dossiers.
Utilisez Cmd/Ctrl + clic sur le nom pour accéder directement à ce fichier ou dossier dans la fenêtre d'outils Project. Vous
pouvez également ajouter rapidement
des fichiers à .gitignore à partir de la vue Project et de l'onglet Local Changes – faites un clic droit
dessus et sélectionnez Add to .gitignore.
Vous pouvez maintenant rechercher les données dans vos bases de données même si vous ne connaissez pas leur emplacement. Faites un clic droit sur la source de données que vous voulez rechercher et sélectionnez Full-text Search (Ctrl+Alt+Maj+F / Cmd+Alt+Maj+F). Les résultats de votre recherche seront filtrés pour n'afficher que les chaînes dans lesquelles se trouvent les données.
Consultez les nouveautés de DataGrip pour en savoir plus sur les autres améliorations de bases de données disponibles dans RubyMine 2019.2.
docker-compose execRubyMine ajoute la prise en charge de docker-compose exec. Pour simplifier, cette commande, lorsqu'elle
est activée, vous permet d'exécuter et de déboguer des applications, d'installer des gems et d'accélérer
le déroulement d'autres tâches
de développement.
Consultez Comment travailler avec Docker/Docker Compose depuis RubyMine pour en savoir plus.
Dans Experimental features, activez
ruby.docker.internal.via.exec pour accélérer RubyMine lorsque vous travaillez avec un
SDK Docker.
Vous pouvez maintenant ajouter des gems, exécuter des tâches rake, des commandes rails et autres éléments qui mettent à jour votre environnement, sans avoir à reconstruire les images Docker.
La nouvelle fenêtre contextuelle Recent Locations réinvente votre navigation dans la base de code. Cette fenêtre contextuelle vous aide à trouver concrètement du code lorsque vous vous rappelez seulement de ce qu'il fait, mais plus du tout de son emplacement. Commencez à taper pour filtrer les résultats et arriver directement au code dont vous avez besoin.
Consultez Navigation dans RubyMine : fenêtre contextuelle Recent Locations pour en savoir plus.
RubyMine 2019.1 intègre rbspy et fournit un profileur natif pour vous aider à découvrir des parties de code qui ralentissent votre application ou vos tests.
Pour un didacticiel détaillé, lisez Profiler des applications Ruby & Rails avec rbspy dans RubyMine.
Notez que vous pouvez associer le profileur (Find action / Attach Profiler to Process) à votre application en cours d'exécution pour enquêter en temps réel !

Lorsque vous ajoutez une factory, RubyMine complète automatiquement ses attributs et, si possible, leurs valeurs. Par exemple, pour une factory de modèle Rails, l'EDI complétera automatiquement ses champs avec leur contenu, et même des associations. Et bien sûr, vous pouvez naviguer entre les définitions et les utilisations de ces objets.
Lorsque vous écrivez des tests, vous pouvez les compléter automatiquement et naviguer dans les définitions des méthodes de
création
factory, telles quecreate, build, build_stubbed,
etc.
D'autres fonctionnalités intéressantes du bot Factory, telles que les séquences, les traits et les alias sont également entièrement prises en charge.


Nous avons également ajouté des factory à la fenêtre contextuelle Related files (Navigate / Related symbol), et ajouté une gouttière qui vous permet de vous rendre jusqu'aux déclarations factory partielles, s'il y en a.
La nouvelle action Call Hierarchy vous aide à zoomer sur les méthodes (“appelantes”) qui utilisent la méthode sur laquelle vous enquêtez, les méthodes qui appellent ces méthodes appelantes, et ainsi de suite, aussi loin que nécessaire.
Pour en savoir plus, reportez-vous à cet article de blog.
RubyMine intègre la prise en charge de TruffleRuby ! Pour basculer de votre SDK Ruby actuel vers TruffleRuby, assurez-vous que l’interpréteur est installé et choisissez-le dans les paramètres du SDK Ruby.
À propos, dans cette version, nous avons également résolu de nombreux problèmes avec les gestionnaires de versions de Ruby.
RubyMine utilise maintenant le service linguistique TypeScript avec sa propre prise en charge de TypeScript pour tout code TypeScript dans les fichiers .vue. Cela vous permet de bénéficier de vérifications et d'informations de type plus précises, d'utiliser les correctifs rapides fournis par le service et d'afficher l'ensemble des erreurs TypeScript du fichier ouvert dans la fenêtre d'outils de TypeScript.
Lorsque vous exécutez des tests avec Jest, Karma, Mocha ou Protractor et si certains de ces tests échouent, vous pouvez désormais voir l'emplacement du problème directement dans l'éditeur. L'EDI reprend les informations de la trace de pile et met en évidence le code erroné. Survolez l'erreur pour afficher le message correspondant et commencer immédiatement le débogage du test.
Découvrez la toute nouvelle console de débogage interactive et améliorée dans les fenêtres d'outils de débogage JavaScript et Node.js ! Elle affiche désormais les objets sous forme d'arborescence et prend en charge l'application de styles aux messages de fichiers journaux avec CSS, ainsi que leur regroupement à l'aide de console.group() et console.groupEnd(). Vous pouvez également filtrer les différents types de messages de journaux.
Lors de l'ajout de nouveaux scripts au fichier package.json, l'EDI propose désormais des suggestions pour les commandes disponibles fournies par les paquets installés. Après avoir tapé « node », l'EDI vous proposera des noms de dossiers et de fichiers. Et après avoir tapé « npm run », vous verrez une liste de tâches définies dans le fichier actuel.
Consultez les nouveautés de WebStorm pour en savoir plus sur les améliorations de JavaScript disponibles dans RubyMine 2019.1.
La documentation (F1) des propriétés CSS et des balises et attributs HTML présente désormais des descriptions et des informations à jour de la prise en charge du navigateur à partir de MDN, ainsi que des liens vers la version complète des articles MDN.
Vous pouvez désormais utiliser dans RubyMine les nouveaux thèmes d'interface utilisateur en couleur qui sont accessibles sous forme d'extensions. Choisissez entre les thèmes Dark Purple, Gray, et Cyan Light, ou créez le vôtre.
Les outils de bases de données de RubyMine ont bénéficié d'un relooking grâce à nos collègues de l'équipe DataGrip :
L'IDE comprend maintenant beaucoup mieux les portées Rails. Par exemple, lorsque vous ajoutez un objet d'association à votre portée, RubyMine vous proposera les méthodes de recherche disponibles. Vous découvrirez également la saisie automatique du code et la navigation pour les portées enchaînées.
RubyMine ajoute la prise en charge complète de Struct. Vous pouvez maintenant saisir automatiquement, naviguer et refactoriser les objets de classes Struct de la même manière que vous le faites avec toute autre classe Ruby et leurs instances.
Une nouvelle inspection Nil dereference vérifiera votre code pour détecter d'éventuelles erreurs nil dans le contexte actuel, comme lorsque vous appelez une méthode sur une variable qui pourrait être nulle.
Utilisez le nouveau dialogue i18n pour créer des traductions pour tous vos dictionnaires en même temps. Tout comme précédemment, placez le caret sur une chaîne, appuyez sur Alt+Entrée et choisissez de l'i18niser. Ensuite, une fois générée, maintenez Cmd/Ctrl enfoncé et cliquez sur la clé créée pour naviguer vers une traduction existante.
Vous pouvez également créer des traductions pour des clés à espaces de nom et des recherches retardées sans effort supplémentaire, car la nouvelle version de RubyMine vous permet de créer des traductions pour ces clés directement depuis l'éditeur.
RubyMine peut vous montrer les traductions actuelles au lieu des clés i18n, appuyez simplement sur Cmd/Ctrl sur n'importe quelle clé dans un contrôleur ou un fichier de vue. Vous pouvez même choisir quel dictionnaire doit être utilisé comme aperçu de traduction.
Consultez les fonctionnalités i18n dans RubyMine pour d'autres améliorations de l'internationalisation apportées dans la version 2018.3.
La nouvelle boîte de dialogue pour l'extraction de paramètre (Refactor | Refactor this | Refactor this | Extract Parameter) vous permet non seulement d'extraire un argument, mais aussi de lui donner une valeur par défaut, de le rendre facultatif ou de le passer comme bloc.
Nous avons amélioré la refactorisation inline pour vous permettre de vous débarrasser des méthodes excessives et des variables de manière plus sûre. En particulier, l'incorporation de méthodes avec des arguments et des variables avec interpolation de chaîne est maintenant beaucoup plus robuste.
Enfin, nous avons ajouté une possibilité très pratique d'extraire des parties de chaînes vers des variables et des constantes.
En savoir plus sur les options de refactorisation dans Refactorisations RubyMine : Vue d'ensemble et améliorations.
De nouvelles actions d'intention vous aideront à rendre votre code plus lisible. Par exemple, vous pouvez maintenant utiliser l'intention de loi de De Morgan pour simplifier les vilaines négations et extraire les appels de bloc aux méthodes. Il suffit de mettre votre caret sur un code smell et d'appuyer sur Alt+Entrée pour appliquer un correctif rapide approprié.
Apprenez-en plus sur d'autres nouvelles intentions dans les Actions d'intention dans RubyMine.
RubyMine 2018.3 offre également une gouttière pratique pour chaque méthode de test. Ces gouttières sont des ancres visuelles qui vous montrent chaque test spécifique qui peut être exécuté dans un fichier. Elles offrent également un moyen plus rapide d'exécuter des tests que le menu contextuel.
Consultez Exécution de tests dans RubyMine pour en savoir plus sur d'autres fonctionnalités de test pratiques.
Vous pouvez maintenant voir les requêtes Pull GitHub directement dans RubyMine. Allez à VCS | Git | View Pull Requests pour voir la description, les libellés, les responsables et les actuelles modifications de la requête Pull.
De plus, toutes les fonctionnalités habituelles de l'intégration Git, telles que la mise à jour du projet, la validation des modifications, la visionneuse de différences et la résolution des conflits, fonctionnent désormais avec les sous-modules Git.
Le nouveau thème Darcula élimine les couleurs parasites, devient plus agréable à l'œil et s'aligne mieux avec les schémas similaires conçus pour d'autres langages de programmation dans les IDE JetBrains.
L'ancien Darculta est aussi toujours disponible. Si vous préférez rester avec celui-ci, allez dans Preferences / Settings | Editor | Color Scheme | Ruby, cliquez sur l'icône d'engrenage, et choisissez Transform current scheme to Darcula 2018.2.
Vous découvrirez également la nouvelle boîte de dialogue pour la fonction Rechercher partout (Shift+Shift). Elle facilite l'utilisation de tous les autres dialogues de navigation, tels que Go to Class, Fichier, Symbole et Action. Appuyez simplement sur Tab pour passer d'un type de recherche à l'autre.
La nouvelle section Plugins (Preferences / Settings | Plugins) facilite la gestion, l'installation, la désinstallation et la mise à jour des extensions. Par exemple, vous pouvez maintenant rechercher les extensions par balises, et trier les résultats par téléchargement, nom, note, recommandé ou mises à jour.
Lorsque vous travaillez avec Angular, profitez d'une saisie automatique du code et d'une navigation améliorées pour les variables, les pipes, les pipes asynchrones et les variables de référence du modèle.
Dans les applications React, la saisie automatique du code suggère désormais toutes les méthodes de cycle de vie des composants. L'inspection des Variables non résolues vous avertit de la possibilité de composants non définis.
Dans les fichiers JavaScript, l'IDE peut maintenant ajouter automatiquement les imports, non seulement pour les symboles définis dans votre projet, mais aussi pour les symboles des dépendances du projet. Cela fonctionne si la bibliothèque a ses sources écrites en modules ES ou dans un fichier de définition de type TypeScript.
La nouvelle action Extract ruleset (Alt-Entrée) vous aide à extraire rapidement des déclarations CSS d'un jeu de règles vers un nouveau jeu plus spécifique.
Le style de code pour CSS et ses préprocesseurs a maintenant une configuration pour l'utilisation des lignes vierges. De plus, vous pouvez maintenant trier les propriétés CSS à l'intérieur des blocs, par ordre alphabétique ou dans n'importe quel ordre personnalisé.
Consultez les nouveautés de WebStorm pour en savoir plus sur les améliorations JavaScript disponibles dans RubyMine 2018.3.
La nouvelle action Introduce reference vous aide à créer des références pour les liens inline. L'IDE trouvera tous les doublons de liens dans le fichier et proposera de les remplacer par la référence nouvellement créée.
De plus, vous pouvez maintenant barrer le texte et modifier la taille de l'en-tête. Retrouvez ces nouvelles actions dans la barre d'outils.