Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

JetBrains annonce la disponibilité de la version 2019.3 de ReSharper Ultimate
Sa suite d'outils pour les développeurs .NET et C++

Le , par Michael Guilloux

133PARTAGES

6  0 
JetBrains vient d'annoncer la disponibilité de la troisième et dernière mise à jour majeure de l'année pour ReSharper Ultimate, son offre logicielle regroupant un ensemble d'outils pour le développement en .NET et C++. Il s'agit notamment de :

  • ReSharper : un célèbre plug-in pour Visual Studio, développé par JetBrains pour améliorer la productivité des développeurs .NET avec des fonctionnalités d'analyse de code à la volée, de refactoring, de complétion automatique intelligente, de tests, et des outils d'assistance pour l'internationalisation de vos logiciels, entre autres ;
  • ReSharper C++ : une extension Visual Studio pour les développeurs C++ ;
  • dotMemory : un profileur de mémoire .NET ;
  • dotTrace : un profileur de performance .NET ;
  • dotCover : un exécuteur de test unitaire et un outil de couverture de code pour les logiciels .NET ; et
  • dotPeek : un décompilateur .NET.

La première mise à jour de l'année de ReSharper Ultimate (la version 2019.1), publiée en avril, est venue avec de nombreuses améliorations, et en particulier la prise en charge complète de Visual Studio 2019.1 et un premier support du langage C# 8.0. La plupart des nouvelles fonctionnalités du langage C# 8.0 étaient en effet déjà prises en charge, notamment les types Range et Index, les expressions Switch, les types de références nullables, les flux asynchrones, les déclarations using, entre autres. ReSharper Ultimate 2019.2 a suivi au mois d'août avec une amélioration de la prise en charge de C# 8.0, entre autres nouveautés et améliorations.

Dans la version 2019.3, ReSharper Ultimate 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és, et les outils de ligne de commande pour ReSharper et dotTrace fonctionnent maintenant sur Linux et macOS. Voici, entre autres, les principales nouveautés et améliorations que nous développerons dans la suite.

ReSharper

Localization Manager

Le tout nouveau gestionnaire de localisations (Localization Manager) vous aide à 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 la localisation de l'application ou site web pour repérer rapidement les valeurs de ressource manquantes dans une culture donnée.


Amélioration 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 qui active les annotations et les avertissements nullable dans un fichier, un projet ou l'ensemble des projets d'une solution ;
  • un nouveau correctif rapide qui 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

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 qui est 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 à rendre votre code plus propre.


Style de code

Dans cette version, JetBrains a répondu à une autre demande très attendue. Les paramètres de nommage C# prennent désormais en charge "reading from / exporting to EditorConfig". En plus de cet énorme changement, d'autres petits ajustements vous offrent davantage de contrôle sur le style de votre code.

Outils de ligne de commande ReSharper multiplateformes

Les outils de ligne de commande ReSharper (ReSharper Command Line Tools) sont un ensemble d'outils autonomes gratuits qui exécutent des centaines d'inspections de code ReSharper hors de Visual Studio et qui trouvent les doublons de code. Ces outils peuvent être utilisés sans installer ReSharper et intégrés aux serveurs d'intégration continue (CI) ou de gestion de la qualité du code.

Bon nombre de développeurs ont souhaité pouvoir exécuter les outils de ligne de commande ReSharper sur un serveur CI hébergé sous Linux, mais cela était impossible, car ils étaient seulement disponibles sous Windows. JetBrains a donc travaillé 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. S'ils utilisent toujours le framework .NET sous Windows, aujourd'hui, les outils de ligne de commande ReSharper font leur arrivée sur Linux et macOS, permettant ainsi aux développeurs d'utiliser la puissante analyse de code de ReSharper sur d'autres systèmes d'exploitation que Windows.


Suggestions de noms de type

JetBrains a introduit les suggestions de noms de paramètres et d'annotations de code dans ReSharper 2019.1. Dans cette nouvelle version, l'éditeur va encore plus loin pour vous proposer les suggestions de 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

La plupart des utilisateurs souhaitent savoir où une référence donnée est utilisée dans leur 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 avait ses limites. La nouvelle version de ReSharper a donc permis d'en éliminer quelques-unes : par exemple "Find dependent code" fonctionne pour les références NuGet, et peut s'exécuter pour l'ensemble d'une solution au lieu d'un simple projet.

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, JetBrains a décidé d'y ajouter d'autres moyens de personnaliser votre vue de la liste des tests unitaires. Ainsi, il est désormais possible de :

  • utiliser 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 ;
  • 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 en évidence des identificateurs

La mise en évidence des identificateurs a été entièrement remaniée. JetBrains a 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# ; et de nouveaux paramètres de couleurs pour les constructs dans divers langages.

ReSharper C++

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 (argument-dependent lookup) 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, JetBrains a également ajouté des couleurs à l'infobulle des informations sur les échecs de résolution des surcharges.

Prise en charge d'Unreal Engine 4 (UE4)

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. JetBrains a par exemple corrigé un blocage après l'actualisation "Refresh Visual Studio Project" dans l'éditeur UE4.


Améliorations pour dotTrace, dotCover, dotMemory et dotPeek

En ce qui concerne dotTrace, 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. Notez que seuls les projets ciblant .NET Core 3.1 sont entièrement pris en charge. En raison de certaines limitations de .NET Core, le profilage des projets ciblant .NET Core 3.0 ou version antérieure peut, dans de rares cas, entraîner le blocage ou la fermeture de l'application profilée.


dotCover 2019.3 vient avec plusieurs améliorations, notamment :

  • la 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 Rider ;
  • la prise en charge des Microsoft Fakes, qui permettent d'isoler le code que vous testez ;
  • la 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.


dotMemory bénéficie également d'un certain nombre de mises à jour, y compris une nouvelle API d'autoprofilage, qui permet aux applications d'initialiser et de démarrer une session de profilage par elles-mêmes. L'API d'autoprofilage est distribuée sous forme de package NuGet. Notons également une option pour exporter les détails de l'instance vers un fichier .json (.bson, .hex et .txt sont également disponibles). En outre, il est maintenant possible d'afficher l'adresse de mémoire virtuelle d'une instance d'objet.

Enfin, dotPeek 2019.3 peut naviguer vers les sources externes des packages NuGet qui ont un package de symboles source (.snupkg) et prend en charge la décompilation de ces fonctionnalités supplémentaires du langage C # 7 : tuples, déconstruction, discards.

Télécharger ReSharper Ultimate

Voir aussi :

Sortie de DataGrip 2019.3, l'EDI de JetBrains destiné aux administrateurs de bases de données vient avec le support de MongoDB et une première version du débogueur PL/SQL
RubyMine 2019.3 est disponible avec la possibilité de configurer le mappage pour RuboCop, apporte un meilleur aperçu du code et améliore le débogueur
IntelliJ IDEA 2019.3 est disponible avec une amélioration notable des performances et de la qualité, ainsi que de nombreuses corrections de bugs
WebStorm 2019.3 est disponible avec un démarrage plus rapide, une prise en charge plus avancée de Vue.js et une complétion de code plus intelligente pour JavaScript
PhpStorm 2019.3 est disponible et intègre un support complet de PHP 7.4, le style de code PSR-12, le support de MongoDB, le Windows Subsystem for Linux (WSL), et autres
Sortie de CLion 2019.3, la dernière version majeure de l'année 2019 pour l'EDI C/C++ de Jetbrains

Une erreur dans cette actualité ? Signalez-le nous !