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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Utilisez cette action d'intention pour introduire une nouvelle variable locale lorsque le curseur est placé sur une expression.
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.
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.
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.
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.
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.
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.
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.
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
.
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.
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.
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).
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
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.
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.
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.
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 !
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.
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 :
f
, t
, d
, n
, g
ou c
introduira les valeurs correspondantes : false
, true
, default
, null
, generated
et computed
. Array.to_h()
et Dir.each()
. 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.