Nouveautés de ReSharper Ultimate 2019.3

ReSharper Ultimate 2019.3 inaugure un tout nouveau gestionnaire de localisations et des suggestions de noms de types. Il offre en outre une prise en charge renforcée de C# 8, C++ 20 et Unreal Engine. La navigation, les styles de code et les tests unitaires ont été améliorées, et les outils de ligne de commande pour ReSharper et dotTrace fonctionnent maintenant sur Linux et macOS.

Télécharger

Essai gratuit sur 30 jours disponible

Localization Manager

Localization Manager

Le tout nouveau Localization Manager vous aider à travailler plus efficacement avec un grand nombre de fichiers .resx dans votre solution. Il affiche tout le contenu de vos fichiers .resx dans une seule et même grille. Cela vous permet d'observer l'état actuel de l'application ou de la localisation du site Internet pour repérer rapidement les valeurs de ressource manquantes dans une culture donnée.

Vous pouvez :

  • Ajouter, modifier, renommer, chercher, incorporer, déplacer et supprimer en toute sécurité vos ressources localisées.
  • Trouver toutes les ressources sans valeurs localisées.
  • Masquer les paramètres régionaux dont vous n'avez pas besoin pour le moment;
  • Créer les fichiers .resx de culture manquants.
  • Afficher une infobulle détaillant le problème qui se pose dans la cellule.

Découvrez Localization Manager dans ReSharper | Windows ou dans le menu contextuel de Solution Explorer.

Pour en savoir plus, veuillez consulter La localisation se simplifie grâce au Localization Manager.

Amélioration renforcée de la prise en charge de C# 8

Amélioration renforcée de la prise en charge de C# 8

La nouvelle version de ReSharper gère encore mieux C# 8. Elle inclut désormais :

  • Une meilleure compréhension des types Nullable Reference, notamment la prise en charge des contraintes notnull
  • Des expressions switch de type ciblé
  • Une prise en charge anticipée des méthodes d'interface par défaut
  • Une nouvelle suggestion 'Local function can be static' avec le correctif rapide correspondant.
  • Un nouveau correctif rapide active les annotations et les avertissements nullable dans un fichier, un projet ou l'ensemble des projets d'une solution.
  • Un nouveau correctif rapide ajoute l'attribut EnumeratorCancellation aux paramètres CancellationToken des itérateurs async.

En outre, l'inspection de code 'Type or type member is never used' a été divisée en deux options distinctes, une pour les types ('Type is never used') et une autre pour les membres de type ('Type member is never used').

Génération de code

Génération de code

L'action Generate en sait davantage sur C# 8 et vous aide à le maîtriser également, grâce à :

  • Un nouveau correctif rapide Add missing arms pour vérifier les valeurs des énumérations de façon exhaustive.
  • Un nouveau correctif rapide et une action contextuelle pour générer des schémas de type dans les expressions switch.
  • Nullability pris en compte lors de la génération de comparateurs/membres relationnels ou d'égalité.

Il existe en outre une nouvelle option permettant d'utiliser System.HashCode pour implémenter GetHashCode lorsque vous générez des membres d'égalité ou des comparateurs d'égalité pour C# et VB.NET, ce qui contribue à la propreté de votre code.

Mise en forme du code

Style de code

Dans cette version, nous avons répondu à une autre demande très attendue. Les paramètres de nommage C# prennent désormais en charge la lecture de/l'exportation vers EditorConfig.

En plus de cet énorme changement, d'autres petits ajustements vous offrent davantage de contrôle sur le style de votre code :

  • Pour ceux qui préfèrent utiliser var au lieu des types explicites uniquement si le type de l'expression de l'initialiseur est évident/apparent, ReSharper peut maintenant détecter davantage de cas “evident”. Il existe également un mode 'compatibility' correspondant au comportement Roslyn.
  • Une nouvelle option de style de code, compatible avec StyleCop et Roslyn, permet d'ajouter des parenthèses qui clarifient la précédence uniquement pour un groupe d'opérateurs imbriqués avec d'autres du même groupe. Par exemple, si vous ne pouvez pas vous rappeler si && ou || passe en premier, cette option vous aidera à le clarifier à l'aide des parenthèses.
  • Comment Code ajoute maintenant par défaut une indentation à un commentaire. Il existe un nouveau paramètre 'Place comments at first column when commenting out code' (Placer les commentaires dans la première colonne lorsque vous placez une partie de code en commentaire) si vous souhaitez désactiver cette option.
  • Les pages d'options permettant de configurer les indentations affichent maintenant la notification appropriée lorsque le paramètre Autodetect indent size and value est ON.
  • Il existe également une infobulle de notification qui explique les fonctionnalités Configure formatting et Autodetect formatting sur les pages d'options de l'outil de mise en forme C#.
Outils de ligne de commande multiplateforme ReSharper

Outils de ligne de commande multiplateforme ReSharper

On nous demande souvent s'il est possible d'exécuter les ReSharper Command Line Tools sur un CI hébergé sous Linux. Pendant longtemps, nous avons dû répondre : "Non, c'est impossible." Toutefois, nous avons travaillé dur pour éliminer toutes les parties spécifiques à Windows afin de pouvoir migrer le tout vers un environnement d'exécution Mono pour Linux et macOS. Ne vous inquiétez pas. Ils utilisent toujours le framework .NET sous Windows.

Nous avons aujourd'hui le plaisir de vous annoncer que les outils de ligne de commande ReSharper font leur arrivée sur Linux et macOS ! Rien ne vous empêche d'utiliser la puissante analyse de code de ReSharper sur d'autres systèmes d'exploitation que Windows.

Conseils pour les noms de types

Conseils pour les noms de types

Nous espérons que vous aimez les conseils pour les noms de paramètre et les annotations de code que nous avons introduits dans ReSharper 2019.1. Dans cette version, nous sommes allés plus loin et sommes maintenant prêts à vous donner des conseils pour les noms de types. Elles sont disponibles pour :

  • Les paramètres d'une lambda
  • Toutes les occurrences de var, y compris la reconnaissance de schémas et la déconstruction de tuples
  • Les variables de plage à l'intérieur des déclarations LINQ
  • À la fin d'une ligne dans une chaîne d'appels de méthodes
Navigation et Find Usages

Navigation et Find Usages

La plupart d'entre nous se retrouve parfois dans une situation où il serait utile de savoir où une référence donnée est utilisée dans notre code. Pendant longtemps, il était possible d'exécuter l'action “Find dependent code” sur une référence pour détecter tous les emplacements où trouver des types ou des membres de types de cette référence. Toutefois, cette action a toujours eu ses limites.

À compter de la version 2019.3, nous avons éliminé certaines d'entre elles :

  • Find dependent code fonctionne désormais pour les références NuGet et peut être exécutée à l'échelle de toute une solution au lieu d'un simple projet !
  • L'utilisation d'API permet d'étendre les actions “Navigate to” et peut être utile si vous souhaitez répertorier toutes les méthodes qui reçoivent des objets d'un type spécifique dans leurs paramètres.
  • La fenêtre Find results pour Find dependent code comporte de nouveaux filtres.
  • Vous pouvez maintenant naviguer jusqu'aux sources externes des paquets NuGet qui comportent un paquet de symboles sources.
Mise à jour des tests unitaires

Mise à jour des tests unitaires

Les fenêtres d'outils Unit Testing fonctionnent déjà très bien et couvrent la majeure partie des fonctionnalités que l'on peut en attendre. Malgré tout, nous avons décidé d'y ajouter d'autres moyens de personnaliser votre vue de la liste des tests unitaires.

  • Utilisez la nouvelle fonctionnalité avancée Group by dans les fenêtres d'outils Unit Test Explorer et Unit Test Session pour créer un regroupement personnalisé. Grâce à l'ajout de l'élément Duration, vous pouvez à présent regrouper les tests unitaires en fonction de leur durée d'exécution.
  • Vous pouvez filtrer les tests unitaires en fonction du framework cible dans la fenêtre d'outils Unit Test Session, au cas où vous en avez plusieurs (ce qui est assez courant de nos jours), et que vous ne souhaitez afficher que certains d'entre eux.
Mise à jour de la mise en évidence des identifiants

Mise à jour de la mise en évidence des identifiants

La mise en évidence des identificateurs a été entièrement remaniée. Nous avons ajouté davantage de paramètres de couleurs pour améliorer la précision du surlignage de code (disponibles dans Tools | Options | Fonts and Colors). Les nouveaux paramètres de couleurs comprennent :

  • Une section générale pour les couleurs des entités dans tous les langages
  • Des paramètres dédiés pour les couleurs de C#
  • De nouveaux paramètres de couleurs pour les constructs dans divers langages
Autres fonctionnalités

Autres fonctionnalités

  • De nouvelles inspections NUnit couvrent les tests unitaires combinatoires et les paramètres individuels des tests unitaires avec paramètres.
  • La fenêtre contextuelle Parameter Info est disponible pour les tuples.
  • La prise en charge de Xamarin bénéficie de plusieurs correctifs importants, qui permettent notamment de prendre en compte x:DataType et Class attribute.
  • En ce qui concerne la suppression de nouvelles lignes à l'aide des touches Supprimer ou Retour arrière avant une nouvelle ligne, l'assistance à la saisie laisse désormais un espace pour séparer les jetons ou lorsque les règles de mise en forme l'exigent.
Prise en charge de C++20

Prise en charge de C++20

Le développement des fonctionnalités de C++20 est terminé. Il sera officiel dès l'année prochaine pour apporter un éventail d'améliorations très attendues des développeurs C++. ReSharper C++ 2019.3 prend déjà en charge beaucoup de ces fonctionnalités, renforcées par une analyse et des informations supplémentaires.

Pour commencer, ReSharper C++ a maintenant conscience que les agrégats peuvent être initialisés à partir d'une liste de valeurs entre parenthèses, et qu'un ADL supplémentaire est nécessaire dans certains cas avec les modèles de fonctions.

Non seulement les concepts sont pris en charge dans l'analyseur de ReSharper C++, mais les refactorisations Rename et Find Usages sont également disponibles. Mieux encore, l'analyse du code peut à présent afficher davantage de détails sur les erreurs associées aux concepts. Par exemple, si la résolution d'une surcharge échoue parce qu'une exigence de concept n'est pas remplie, vous verrez toutes les informations dans une infobulle. D'ailleurs, dans ReSharper 2019.3, nous avons également ajouté des couleurs à l'infobulle des informations sur les échecs de résolution des surcharges.

Nous avons initié une série d'articles de blog sur C++20 et ReSharper C++. Vous pouvez les lire pour en savoir plus sur les nouvelles fonctionnalités du langage et leur adoption dans ReSharper C++.

Prise en charge d'Unreal Engine 4

Prise en charge d'Unreal Engine 4

Si ReSharper C++ détecte que vous développez un projet Unreal Engine, il ajuste son comportement pour mieux s'adapter à UE4.

Le modèle postfix "new" pour les UCLASS s'étend pour former un véritable appel de fonction factory (qui peut enregistrer l'objet créé dans le ramasse-miettes). Des modèles dynamiques portant les noms correspondants sont désormais disponibles pour vous aider à générer rapidement USTRUCT/UCLASS/UENUM/UENUMCLASS.

Les pointeurs intelligents d'Unreal Engine (TSharedPtr, TSharedRef, TWeakPtr, TUniquePtr) sont à présent gérés par ReSharper C++ de façon similaire à std::shared_ptr/std::unique_ptr. Cela signifie que des fonctionnalités comme Parameter Info, l'analyse de code et la saisie semi-automatique du code postfix fonctionnent aussi pour les pointeurs intelligents.

Enfin, plusieurs améliorations de performances ont été apportées pour les projets UE4. Nous avons par exemple corrigé un blocage après l'actualisation "Refresh Visual Studio Project" dans l'éditeur UE4.

Consultez la page Nouveautés de ReSharper C++.

Profileur en ligne de commande sous MacOS et Linux

Profileur de ligne de commande sur macOS et Linux dotUltimate

Le profileur en ligne de commande arrive enfin sur macOS et Linux. dotTrace.sh possède les mêmes fonctionnalités que son homologue sous Windows et est distribué en tant qu'archive .tar.gz et en tant que paquet NuGet.

Consultez les Nouveautés de dotTrace 2019.3.

Améliiorations de dotCover dotUltimate

dotCover 2019.3 bénéficie de plusieurs améliorations :

  • Prise en charge d'Unity 2018.3 et ses versions ultérieures sur tous les systèmes d'exploitation. Pour effectuer une analyse de la couverture de code des tests Unity, vous devez utiliser JetBrains Rider.
  • Prise en charge des Microsoft Fakes.
  • Capacité à regrouper les résultats de la couverture du code par espaces de noms imbriqués dans Rider, Visual Studio, et dans les rapports générés par l'outil de console dotCover.

Consultez les Nouveautés de dotCover 2019.3.

Télécharger

Essai gratuit sur 30 jours disponible