Nouveautés de ReSharper Ultimate 2020.1

ReSharper Ultimate 2020.1 inaugure un nouvel outil d'analyse de flux de données pour les valeurs entières en C# et offre une meilleure prise en charge de la fonctionnalité des types de référence nullables ainsi que des nouvelles fonctionnalités de C++ 20. Il améliore la prise en charge du XAML et d'Unreal Engine, se dote de quelques nouvelles fonctionnalités pour la navigation et permet d'ajouter des commentaires dans le Localization Manager. Le décompilateur prend en charge davantage de fonctionnalités C# 7.x et 8.0.

Télécharger

Essai gratuit sur 30 jours disponible

Analyse du flux de données des valeurs entières en C#

Analyse du flux de données des valeurs entières en C#

Cette version de ReSharper inaugure un nouveau type d'analyse de code C# pour suivre l'utilisation des valeurs entières dans votre application. Ce nouveau type d'analyse suit la variation des valeurs de toutes les variables int locales, et vérifie l'exactitude de toutes les opérations courantes sur ces variables pour détecter d'éventuels morceaux de code inutiles ou erronés. Plus précisément, il vous avertit des problèmes suivants :

  • Opérateurs relationnels/d'égalité donnant toujours des résultats true ou false.
  • Cas de switch heuristiquement inaccessibles vérifiant les valeurs int.
  • Opérations arithmétiques dénuées de sens, telles que multiplication par 1, addition de 0, etc.
  • Débordements int possibles.
  • Division possible par 0.

Pour améliorer la précision de l'analyse, nous avons également ajouté deux nouveaux attributs JetBrains.Annotations à utiliser avec les membres de type et les paramètres de type int : [NonNegativeValue] et [ValueRange(from, to)] . Ces attributs indiquent comment les valeurs de membres int donnés peuvent varier pendant l'exécution.

Prise en charge de C#

Prise en charge de C#

Nous continuons à renforcer la prise en charge des fonctionnalités du langage C# 8. En coulisses, nous avons beaucoup refactorisé notre prise en charge du langage C# pour préparer l'analyse de code et d'autres fonctionnalités, telles que les refactorisations et ReSharper Build, pour prendre en charge les types de référence nullables (NRT). Dans ReSharper 2020.1, l'analyse de code signale les avertissements de compilation liés aux types de référence nullables et propose des correctifs rapides pour la plupart d'entre eux.

Plusieurs nouvelles inspections et correctifs rapides font leur arrivée :

  • Détecter les contraintes de paramètre de type redondantes par rapport aux types de référence nullables.
  • Pour détecter et utiliser les surcharges async des méthodes lorsqu'elles sont disponibles au lieu des surcharges sync.
  • Pour utiliser l'expression nameof au lieu d'utiliser la construction typeof(SomeType).Name pour obtenir le nom du type actuel.

Actualités concernant les performances

Cette version apporte des tonnes de modifications à l'architecture de ReSharper pour nous rapprocher de plus en plus de notre objectif d'exécuter toutes les fonctionnalités principales de ReSharper en dehors du processus Visual Studio. Toutes ces modifications ont eu lieu en coulisses, vous ne remarquerez donc aucun changement dans l'interface/expérience utilisateur de la build ReSharper 2020.1.

Si vous avez manqué les actualités de notre progression vers le retrait de ReSharper du processus, c'est une bonne occasion de vous rattraper et de voir où nous en sommes maintenant.

Mises à jour de la navigation

Cette mise à jour apporte plusieurs fonctionnalités, petites mais utiles, à Navigation, et elles profitent autant à ceux qui utilisent principalement la souris qu'à ceux qui utilisent principalement le clavier pour interagir avec ReSharper :

  • Vous pouvez maintenant cliquer avec le bouton du milieu (le bouton de défilement de votre souris) pour appeler Go to Declaration.
  • Appuyez sur Ctrl+Entrée dans la liste des résultats de Go to File pour mettre en évidence le fichier dans la fenêtre Solution Explorer.
  • Vous pouvez désormais utiliser un chemin d'accès complet dans Go To File / Go To Everything pour rechercher des fichiers.
Amélioration de la prise en charge du XAML

Amélioration de la prise en charge du XAML

Dans la version 2020.1, nous avons apporté de nombreuses améliorations et de nombreux correctifs à la prise en charge XAML. Ils couvrent les XAML de WPF, Xamarin.Forms, UWP et Avalonia

Nous sommes heureux de proposer une bien meilleure prise en charge pour l'inférence de contexte des données et la résolution de symboles dans les liaisons :

  • Quand d:BindingContext est utilisé
  • Dans Picker.ItemDisplay dans Xamarin.Forms
  • Liaison RelativeSource dans Xamarin.Forms
  • Liaison de modèle pour le contrôle ScrollViewer
  • Quand ItemsSource est utilisé en tant qu'élément imbriqué
  • Dans TreeView.ItemContainerStyle

Dans les projets UWP, nous avons ajouté la prise en charge des éléments suivants : 

  • Balisage XAML conditionnel
  • Liaison CustomResource 

Les correctifs supplémentaires incluent la prise en charge de :

  • Utilisation du nom URN (Uniform Resource Name) dans la définition d'un schéma d'espaces de noms XML personnalisé
  • Ajout d'un symbole de barre oblique dans un nom de ressource
  • Directives x:Static pour Avalonia
Mises à jour des tests unitaires

Mises à jour des tests unitaires

À compter de ReSharper 2020.1, vous pouvez exporter et importer n'importe laquelle de vos Sessions de Tests Unitaires. Cela vous permet de les partager avec votre équipe, entre vos ordinateurs ou entre plusieurs branches, lorsque vous modifiez quelque chose dans le code et que vous souhaitez exécuter ou couvrir le même ensemble de tests unitaires pour les deux branches.

De plus, pour éviter de perdre les Sessions de Tests Unitaires ouvertes et fermées, celles qui ont déjà été créées sont conservées après la mise a niveau vers a une nouvelle version majeure de ReSharper.

Commentaires dans Localization Manager

Commentaires dans Localization Manager

Vous l'avez demandé et nous vous l'offrons ! La grille comporte de nouvelles lignes pour les commentaires. Vous pouvez désormais laisser un commentaire (ou en modifier un existant) pour toute valeur provenant de fichiers de ressources directement à l'intérieur de la grille. Vous pouvez également exporter et importer ces commentaires. Si vous n'utilisez pas les commentaires ou si vous n'en avez pas besoin pour le moment, vous pouvez les masquer en cliquant sur l'icône Show/Hide comments.

En dehors de cela, nous avons implémenté plusieurs correctifs de performances qui accélèrent le chargement et le filtrage de la grille, éliminent certains blocages de l'interface utilisateur et facilitent le défilement.

Il convient également de mentionner les nombreuses améliorations apportées à l'expérience utilisateur :

  • Améloiration de la prise en charge pour les langues qui s'écrivent de droite à gauche
  • Navigation plus précise vers des lignes spécifiques à partir de l'éditeur de texte et des boîtes de dialogue de refactorisation
  • Amélioration de la saisie semi-automatique et de la validation du code dans les boîtes de dialogue
Mise en forme du code

Mise en forme du code

La mise en forme du code apporte de nouveaux paramètres qui incluent la virgule de fin pour les styles de code C#. Vous les trouverez sous ReSharper | Options | Code Editing | C# | Code Style | Trailing comma, et ils sont également compatibles avec l'inspection StyleCop SA1413 (sauf dans un très petit nombre de cas particuliers).

Prise en charge de C++20

Prise en charge encore meilleure du C++20

La norme C++ 20 a presque été approuvée et ReSharper C++ étend sa prise en charge à la dernière norme. Plusieurs nouvelles fonctionnalités de langage sont désormais prises en charge, notamment les espaces réservés de types contraints, les modèles de fonction abrégés et l'utilisation des déclarations using enum. De plus, ReSharper C++ propose un correctif rapide pour mettre à jour une déclaration de lambda avec la syntaxe du modèle C++ 20 et une refactorisation pour introduire facilement les déclarations using enum.

Développement de jeux

Plus de fonctionnalités pour le développement de jeux

Avec les mises à jour de sa prise en charge d'Unreal Engine, ReSharper C++ 2020.1 améliore la refactorisation Rename et introduit la prise en charge des fichiers USF et du GDK SpatialOS avec des chemins d'accès aux fichiers virtuels. ReSharper C++ adhère également plus étroitement aux directives Unreal Engine en supprimant l'inspection Use auto et en respectant les conventions de nommage des variables de console et des catégories de journaux.

ReSharper C++ 2020.1 propose une prise en charge initiale pour HLSL. Même à ce stade précoce, cette prise en charge comprend une variété de fonctionnalités, de la mise en évidence basique du code à sa saisie semi-automatique du code en passant par la navigation rapide.

Nouveautés de ReSharper C++

Next Important Call

Next Important Call dans dotTrace dotUltimate

Vous pouvez maintenant naviguer dans l'arborescence des appels à l'aide de l'action Next Important Call. Appuyez sur Ctrl+Shift+Right et dotTrace vous amène vers un nœud parmi les plus pertinents pour une analyse plus approfondie (par exemple, un nœud avec un temps d'exécution propre élevé).

La fonctionnalité est disponible dans dotTrace Standalone (Performance Viewer et Timeline Viewer), dans Visual Studio, et dans JetBrains Rider.

Nouveautés de dotTrace 2020.1

Prise en charge des types de référence nullables

Prise en charge des types de référence nullables dans dotPeek

Cette version apporte une meilleure prise en charge des fonctionnalités du langage C # :

  • La prise en charge des types de référence nullables (NRT) est arrivée dans le décompilateur. Veuillez noter qu'elle ne fonctionne que dans les déclarations, pas dans le corps des méthodes.
  • Nous avons apporté la prise en charge de la décompilation des membres par défaut des interfaces et des attributs Auto-Implemented Property Field-Targeted
  • Nous avons amélioré la prise en charge de la décompilation des noms de composants tuple .

Nouveautés de dotPeek 2020.1

Télécharger

Essai gratuit sur 30 jours disponible