Nouveautés de RubyMine

2019.2 (29 juillet)

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 !

Débogueur

Debugger speed comparison v2019.1 v2019.2

Débogueur plus rapide

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.

Smart step into

Smart step into

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.

Points de rupture de bloc

Points d'arrêt de bloc

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.

Ruby 2.7

Reconnaissance de schémas

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

Paramètres de bloc numérotés

Paramètres de bloc numérotés

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.

Rails 6

Prise en charge Action Mailbox

Action Mailbox

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.

Inspections Action Mailbox

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.

Prise en charge de l'énumération

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.

YARD

Prise en charge améliorée de YARD

Prise en charge améliorée de YARD

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.

Bot Factory

Renommage des factory

Renommage des factory

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).

JavaScript

Intentions de déstructuration

Nouvelles actions d'intention

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.

Utilisations dynamiques dans l'aperçu de refactorisation

Refactorisation Rename améliorée

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.

Props Vuetify

Meilleure prise en charge de la bibliothèque de composants Vue.js

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.

Inspection de code dupliqué

Recherche des doublons de code

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.

Style de code

Modification des configurations de style de code

Prise en charge améliorée d'EditorConfig

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.

Scripts shell

Modification de script shell

Modification de scripts Shell

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.

Git

saisie automatique améliorée .gitignore

Saisie automatique dans .gitignore

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.

Outils de base de données

Improvements in Database tools – Full-text search

Trouver des données avec la recherche plein texte

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.

Autres améliorations:

  • Prise en charge de standard gem
  • Prise en charge de Action Text
  • Prise en charge de Cucumber 4
  • Améliorations mineures de l'interface de la fenêtre d'outils Version Control
2019.1 (4 avril)

Docker

Docker-compose exec

Repensez Docker avec docker-compose exec

RubyMine 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.

Expérimental : Run with docker compose.

Accélérez ​​RubyMine

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.

Emplacements récents

Emplacements récents

Fenêtre contextuelle Recent Locations

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.

Profileur

Créer des traductions i18n

Applications du profil

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.

Associez le profileur à une application en cours d'exécution

Associer aux applications en cours d'exécution

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 !

Bot Factory

Saisie automatique et navigation dans les attributs

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.

Complétez les méthodes de création factory dans les fichiers de test

Saisie automatique et navigation dans les méthodes

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.

Intégration complète du MVC

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.

Call Hierarchy

Call Hierarchy

Enquêtez sur les appels de méthode

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.

TruffleRuby

TruffleRuby

Prise en charge de TruffleRuby

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.

JavaScript

TypeScript dans Vue

Prise en charge améliorée de TypeScript dans les applications Vue

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.

Mise en évidence des erreurs dans les tests

Surlignage des lignes erronées en cours de test

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.

Nouvelle console de débogage

Nouvelle console de débogage

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.

Nouvelle console de débogage

Saisie automatique pour les scripts npm

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.

HTML et CSS

HTML et CSS

Mise à jour de la documentation

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.

Thèmes personnalisés

Thèmes personnalisés

Nouveaux thèmes pour l'interface utilisateur

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.

Outils de bases de données

Améliorations des outils de bases de données – Nouvelles sources

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 :

  • Prise en charge de nouvelles bases de données : Greenplum, Vertica et Apache Hive
  • La saisie automatique prend en charge les déclarations combinées pour CREATE et DROP
  • Prise en charge des attributs DEFINER dans MySQL et MariaDB
  • Prise en charge du mode Oracle dans MariaDB
  • Vous pouvez désormais définir le dossier par défaut pour un projet

Autres améliorations:

  • Possibilité d'exécuter et de déboguer des tests avec Spring
  • Associations polymorphes : paramètres source et source_type pris en charge
  • Spécifiez d'autres fichiers gem à l'aide de bundle.config
  • Spécifiez le chemin d'accès aux gems locaux à l'aide de bundle.config
  • I18n : prise en charge de l'option par défaut
  • Prise en charge améliorée des méthodes de champ de requête dans les modèles Rails
2018.3 (Nov 22)

Analyse prédictive du code

Prise en charge des portées Rails

Portées Rails

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.

Prise en charge de Struct

Struct

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.

Analyse de nullabilité pour Ruby

Analyse de nullabilité pour Ruby

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.

Internationalisation

Création de traductions i18n

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.

Portées et clés retardées

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.

Aperçus de traduction

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.

Refactorisation

Nouvelle boîte de dialogue pour l'extraction de paramètre

Extraction de paramètre

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.

Amélioration des refactorisations inline

Amélioration de la refactorisation inline

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.

Extraire des sous-chaînes vers des variables et des constantes

Extraire des sous-chaînes vers des variables et des constantes

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.

Nouvelles actions d'intention

Actions d'intention

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.

Tests

Gouttières de test

Gouttières de test

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.

Git

Requêtes Pull GitHub

Voir les requêtes Pull

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.

Interface utilisateur

Nouvelle palette de couleurs Darcula

Darcula revisité

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.

Nouvelle boîte de dialogue Search Everywhere

Rechercher partout

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.

Nouvelle interface de plug-in

Interface de plug-ins

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.

JavaScript

Saisie automatique améliorée pour les modèles Angular

Frameworks

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.

Imports automatiques dans JavaScript

Imports automatiques dans JavaScript

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.

Extraire le jeu de règles CSS

HTML et feuilles de style

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.

Markdown

Améliorations Markdown

Extraction de liens de référence et plus encore

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.

Autres améliorations:

  • Amélioration de la mise en évidence des mots-clés dans les déclarations conditionnels
  • Recherchez des valeurs YAML par clés imbriquées applaties
  • Copiez un chemin vers une valeur YAML à partir du fil d'Ariane
  • Prise en charge améliorée pour attr_accessors
  • Conseils de paramètres dans les fichiers JavaScript
  • Thème contrasté
  • Suppression sécurisée dans i18n
  • Moniteur d'activité