Quoi de neuf dans RubyMine 2020.2

RubyMine 2020.2 : une nouvelle façon d'examiner les problèmes dans le code, 27 nouvelles actions d'intention, prise en charge de Liquid, prise en charge complète des requêtes pull GitHub et bien d'autres nouvelles fonctionnalités pour Ruby, Rails, JS et les outils de base de données.

Analyse du code

Une nouvelle façon de réviser votre code et d'y résoudre les problèmes

Une nouvelle façon de réviser votre code et d'y résoudre les problèmes

Nous avons ajouté un nouveau widget qui affiche le nombre de problèmes dans le fichier actuel. Cliquez dessus pour ouvrir une fenêtre d'outils avec la liste des problèmes. À partir de cette liste, vous pouvez accéder au code concerné ou résoudre les problèmes directement via la fenêtre d'outils.

En savoir plus

Langage de modèle Liquid

Prise en charge basique du langage de modèle Liquid

Prise en charge basique du langage de modèle Liquid

RubyMine 2020.2 propose une prise en charge basique pour le langage de modèle Liquid. L'IDE vous montrera les éventuels problèmes de syntaxe, vous fournira des Live Templates pour insérer des constructions fréquemment utilisées et reformatera le code selon les indications que vous avez spécifiées dans les paramètres de Style de code.

En savoir plus sur la prise en charge de Liquid

Nouvelles actions d'intention intelligentes

Gagnez du temps lorsque vous codez !

RubyMine 2020.2 fournit une multitude de nouvelles actions d'intention (Alt+Entrée) qui vous permettent d'optimiser votre code rapidement.

Inverser les opérateurs ternaires et if-else

Inverser les opérateurs ternaires et if-else

Avec l'action Invert ‘if-else', vous pouvez inverser un opérateur if-else afin que la condition soit niée et que les branches soient échangées. Pour les opérateurs ternaires, l'action d'intention Flip ‘?:' fonctionne de la même manière.

Basculer entre instructions 'if' imbriquées et expressions booléennes

Basculer entre instructions 'if' imbriquées et expressions booléennes

Utilisez l'action Merge nested ‘if' pour fusionner une instruction imbriquée en une expression booléenne. Pour appeler cette action, placez le curseur sur le if externe de l'expression.

Split into multiple ‘ifs', accessible lorsque vous placez le curseur sur l'opérateur booléen, effectue l'action inverse.

En savoir plus

Basculer entre des instructions 'else/if' et 'elsif'

Basculer entre des instructions 'else/if' et 'elsif'

Avec les actions d'intention Merge ‘else if' et Split ‘elsif', vous pouvez fractionner une instruction elsif en une branche imbriquée else/if et inversement.

Fusionner/fractionner les ‘if‘ séquentiels

Fusionner/fractionner les ‘if‘ séquentiels

L'action Merge/split sequential ‘if's est disponible pour les mots-clés elsif ou if. Elle suggère de fusionner deux branches si le code qu'elles contiennent est parfaitement identique. RubyMine combinera ensuite les deux conditions en utilisant un opérateur || et ajoutera des parenthèses si nécessaire. L'action Split into multiple ‘if's fera le contraire.

Développer ou réduire l'espace de noms

Développer ou réduire l'espace de noms

Ces actions d'intention développeront les lignes avec les opérateurs de résolution de portée :: en modules imbriqués et inversement. Notez que l'action Flatten namespace réduira les modules situés au-dessus.

Trier les hachages en fonction de leurs clés

Trier les hachages en fonction de leurs clés

Utilisez cette action d'intention pour trier les hachages par ordre alphabétique en fonction de leur clé. Cette action fonctionne également pour les hachages avec différents types de clés. Dans ce cas, les clés sont d'abord regroupées par type, puis triées.

En savoir plus

Ajouter/supprimer des parenthèses de clarification

Ajouter/supprimer des parenthèses de clarification

L'action d'intention Add clarifying parentheses fonctionne pour les expressions binaires et ternaires. Cela ajoute des parenthèses aux expressions complexes qui reposent sur la priorité des opérateurs, afin de clarifier la façon dont l'expression devrai être évaluée. Vous pouvez également supprimer les parenthèses inutiles en appelant Remove unnecessary parentheses.

En savoir plus

Ajouter/supprimer des traits de soulignement dans les nombres

Ajouter/supprimer des traits de soulignement dans les nombres

L'action Add underscores ajoute des traits de soulignement pour les grands nombres afin d'améliorer la lisibilité. Les types pris en charge sont integer/float/octal (ajout d'un trait de soulignement tous les 3 chiffres), ainsi que les types hexadecimal/binary (ajout d'un trait de soulignement tous les 4 caractères/chiffres).

Vous pouvez appeler l'action Remove underscores sur les nombres comportant des traits de soulignement.

Introduire une nouvelle variable locale

Introduire une nouvelle variable locale

Utilisez cette action d'intention pour introduire une nouvelle variable locale lorsque le curseur est placé sur une expression.

Variable locale inline

Variable locale inline

Cette action d'intention est utile lors de la refactorisation, dans les cas où vous vous retrouvez avec une variable qui n'est utilisée qu'une seule fois.

Basculer entre les commentaires de bloc et de ligne

Basculer entre les commentaires de bloc et de ligne

Vous pouvez maintenant convertir des commentaires de bloc en commentaires de ligne et inversement. Notez que ces actions ne sont disponibles que pour les commentaires commençant au début de la ligne, car c'est une condition requise pour tous les commentaires de bloc.

Éditeur de code

Amélioration de la lisibilité des instructions pliées if/while/for

Amélioration de la lisibilité des instructions pliées if/while/for

Pour les constructions pliées comme if, while et for, RubyMine affiche maintenant la condition ou les variables utilisées dans la première ligne. Cette approche permet de voir plus facilement si vous avez besoin de déplier la construction pour l'examiner.

Affichage des commentaires de la documentation RDoc/YARD dans l'éditeur

La lecture de documents RDoc ou YARD dans l'éditeur peut être désagréable à cause de toutes les balises à parcourir, en particulier si vous devez interagir avec des liens et des images de référence. C'est pourquoi nous avons ajouté un moyen d'afficher la documentation directement dans l'éditeur.

Pour activer cette fonctionnalité, allez dans Preferences/Settings | Editor | General | Appearance | Render documentation comments.

Injections Heredoc

Injections Heredoc

RubyMine prend désormais en charge les injections heredoc qui vous permettent de définir une chaîne multiligne tout en conservant la mise en forme et l'indentation d'origine. Utilisez-les pour incorporer des snippets de code, comme du HTML ou SQL.

En savoir plus

Navigation entre les méthodes améliorée

Navigation entre les méthodes améliorée

Vous pouvez maintenant naviguer entre les méthodes super et les méthodes de remplacement en appelant une action d'intention ou en cliquant sur l'icône dans la gouttière.

Ruby

Prise en charge des plages sans début

Prise en charge des plages sans début

Comme toujours, RubyMine prend en charge la dernière version de Ruby. Par exemple, RubyMine v2020.2 prend en charge les plages sans début, qui ont été introduites dans Ruby 2.7.

Amélioration de la saisie semi-automatique pour les méthodes de bibliothèque standard

Amélioration de la saisie semi-automatique pour les méthodes de bibliothèque standard

RubyMine suggère maintenant une saisie semi-automatique beaucoup plus précise pour plusieurs méthodes de bibliothèque standard, notamment Array#sort_by, Hash#each.

Convertir les paramètres nommés en paramètres numérotés et inversement

Convertir les paramètres nommés en paramètres numérotés et inversement

Vous pouvez désormais convertir facilement les paramètres nommés en paramètres numérotés, introduits avec Ruby 2.7. Placez le curseur sur un paramètre nommé, appuyez sur Alt+Entrée et sélectionnez l'action d'intention Convert named parameters to numbered. L'action Convert numbered parameters to named fera le contraire.

En savoir plus

Ajouter un attr_accessor/reader/writer à une variable d'instance

Ajouter un attr_accessor/reader/writer à une variable d'instance

Avec les nouvelles actions d'intention, vous pouvez facilement ajouter un attribute accessor, reader ou writer aux variables d'instance. Pour ce faire, placez le curseur sur une variable et appuyez sur Alt+Entrée.

Rails

Étendre les lazy keys

Étendre les lazy keys

Dans les applications Rails qui utilisent des lazy keys (lazy lookups), cette action d'intention étendra automatiquement la clé à sa forme complète. Si le contrôleur comporte une lazy key, l'intention peut demander vers quelle lazy key l'étendre (car il peut y avoir plusieurs options).

Git

Prise en charge complète des requêtes pull GitHub

Vous n'avez plus besoin de'alterner entre le navigateur et votre IDE. L'ensemble du workflow de requête pull peut maintenant s'effectuer dans RubyMine !

Avec la v2020.2, vous pouvez parcourir, attribuer, gérer et même fusionner les requêtes pull, voir la chronologie et les commentaires en ligne, soumettre des commentaires et des révisions, et accepter les modifications.

En savoir plus sur la prise en charge des requêtes pull GitHub

Amélioration des boîtes de dialogue des actions Git

Les boîtes de dialogue Git Merge, Pull et Rebase affichent désormais une meilleure cohérence visuelle et plus de clarté. Le nouveau design vous permet de voir rapidement quelle commande Git sera exécutée.

Nous avons également ajouté l'option –rebase à la boîte de dialogue Pull et l'option –no-verify à la boîte de dialogue Merge.

JavaScript et TypeScript

Nouvelles intentions intelligentes pour JavaScript

Nouvelles intentions intelligentes pour JavaScript

De nouvelles intentions intelligentes (Alt+Entrée) vous aideront à effectuer certaines actions plus rapidement. Par exemple, vous pouvez maintenant convertir rapidement une boucle for avec un index numérique en une méthode de tableau forEach. La consultation des commentaires de la documentation dans les fichiers JavaScript et TypeScript est également facilitée car vous pouvez désormais les afficher directement dans l'éditeur, ce qui minimise les distractions.

Faire de Prettier l'outil de formatage par défaut dans vos projets JavaSript

Faire de Prettier l'outil de formatage par défaut dans vos projets JavaSript

Vous souhaitez utiliser Prettier au lieu de l'outil de formatage intégré pour mettre de l'ordre dans votre code ? Avec cette mise à jour, c'est encore plus facile qu'auparavant. Cochez simplement la nouvelle case On code reformat pour que l'IDE utilise Prettier chaque fois que vous reformatez vos fichiers .js, .ts, .jsx et .tsx. De plus, vous pouvez facilement ajouter d'autres types de fichiers.

En savoir plus

Bénéficiez de la meilleure prise en charge pour Vue

Bénéficiez de la meilleure prise en charge pour Vue

Au cours de l'année écoulée, nous avons ajouté la prise en charge de Nuxt.js, des paramètres de style de code spécifiques à Vue, des améliorations pour Vue dans les projets TypeScript, et bien d'autres choses. La prise en charge de Vue dans RubyMine n'a jamais été aussi avancée !

En savoir plus

Outils de base de données

Éditeur séparé pour les valeurs de cellule

Éditeur séparé pour les valeurs de cellule

Maintenant, si vous avez une grande valeur dans une cellule, vous pouvez l'afficher ou la modifier dans un volet séparé. Vous pouvez également alterner entre les modes de retour à la ligne à l'aide de la barre d'outils de droite.

Nouvelle interface utilisateur pour les valeurs booléennes

Nouvelle interface utilisateur pour les valeurs booléennes

Il existe désormais un moyen plus intuitif d'afficher et de modifier les valeurs booléennes. Les valeurs true sont maintenant marquées avec une puce afin de les distinguer des autres.

Édition :

  • La touche espace permet d'alterner entre les valeurs comme c'était le cas auparavant.
  • La saisie de f, t, d, n, g ou c introduira les valeurs correspondantes : false, true, default, null, generated et computed.
  • Saisir quoi que ce soit d'autre ouvrira la liste déroulante avec toutes les valeurs possibles.

Autres évolutions

  • La saisie semi-automatique du code assistée par ML inaugurée dans la v2020.1 s'est avérée efficace pour améliorer la pertinence des suggestions de saisie semi-automatique du code. Nous avons décidé de l'activer par défaut dans la v2020.2.
  • Nouvelle présentation des résultats de la recherche dans Search Everywhere, avec tri des éléments en fonction de leur pertinence par rapport à la requête de recherche.
  • RubyMine 2020.2 prend en charge Git, installé dans WSL2, pour travailler avec des projets situés dans des systèmes de fichiers Linux ou Windows.
  • Vous pouvez désormais générer des rapports de couverture de code pour plusieurs suites et les exporter au format HTML.
  • Prise en charge basique de Google BigQuery, un dialecte SQL. RubyMine peut correctement mettre en évidence le code et fournir une assistance au codage pour vos requêtes si vous utilisez Google BigQuery.
  • La saisie semi-automatique du code affiche désormais les noms de type complets des méthodes qui remplacent d'autres méthodes de classes ou modules parents. Cela permet de mieux comprendre l'origine d'une suggestion de méthode.
  • Vous pouvez maintenant lancer la console IRB à partir de Run Anything avec Ruby 2.7.
  • La saisie semi-automatique dans le Gemfile affiche désormais uniquement la dernière version locale des gemmes.
  • RubyMine affiche maintenant un avertissement si vous essayez de transmettre un nombre incorrect de paramètres aux méthodes de stub, notamment Array.to_h() et Dir.each().
  • Nous avons ajouté l'avertissement « ordinary parameter is defined » (le paramètre ordinaire est défini) pour tous les cas lambda dans les paramètres numérotés.
  • Nous avons ajouté la prise en charge du type pour l'appel à « not » dans les chaînes de relations d'enregistrement actives. Désormais, si aucun argument n'est fourni pour une méthode where, RubyMine proposera not dans la saisie semi-automatique.
  • Nous avons amélioré l'accessibilité et RubyMine activera désormais automatiquement les fonctionnalités d'accessibilité si un utilisateur a activé un lecteur d'écran.