Nouveautés de ReSharper 2022.1

La version 2022.1 est dédiée à la qualité, aux améliorations et aux correctifs de bugs, notamment pour le développement avec Blazor et la prise en charge de C#.

Télécharger

Essai gratuit sur 30 jours disponible

Prise en charge de C#

We continue to improve support for C# 10, particularly global usings. Nous avons implémenté deux nouvelles refactorisations qui sont également disponibles en tant qu'actions contextuelles.

Extract Global Using peut vous aider à introduire le concept de directives using globales dans votre projet. Vous pouvez l'appeler sur une directive using standard et ReSharper vous proposera de l'extraire vers un fichier GlobalUsings.cs désigné (si ce fichier n'existe pas encore dans votre projet, il sera créé). Toute directive using ordinaire superflue sera ensuite supprimée des fichiers de votre projet.

Si vous décidez de refactoriser une directive using globale en directive using ordinaire, la refactorisation Inline Global Using peut là aussi vous aider. Si vous l'appelez sur une directive using globale, elle la supprime du fichier GlobalUsings.cs et ajoute l'instruction using correspondante aux fichiers de votre projet, là où elle est nécessaire.

La fonctionnalité using globale est prise en charge dans Find Usages et dans l'analyse de code pour les méthodes d'extension.

We’ve looked into the approaching C# 11 and supported generic attributes.

Types de référence nullables

  • Nous avons divisé en deux catégories les avertissements relatifs aux contrôles de null sur les expressions qui ne devraient jamais être nulles. Le premier avertissement concerne les expressions qui ne sont jamais null parce qu'une annotation NRT (nullable reference type) le dit. Le deuxième avertissement concerne les expressions pour lesquelles il y a une vérification de null au moment de l'exécution.
  • Nous avons ajouté un nouveau paramètre pour passer en mode Runtime enforced not null warnings only afin de n'avertir qu'en cas de vérification null au moment de l'exécution. Il est accessible à partir du groupe d'éléments de configuration dans le menu Alt+Enter pour les avertissements annotation-based.
  • Les annotations[MemberNotNull] et [MemberNotNullWhen] sont désormais prises en charge dans les projets qui n'utilisent pas de types de référence nullables.

Points de terminaison

Notre prise en charge des points de terminaison fonctionne désormais pour les API minimales d'ASP. NET Core 6 et le routage conventionnel. Elle inclut la navigation, l'analyse du code et la saisie semi-automatique.

Razor et Blazor

Voici quelques-unes des fonctionnalités et des corrections les plus notables concernant Razor et Blazor :

  • Nous avons ajouté la prise en charge du nouvel attribut [EditorRequired] de .NET 6. L'inspection et le correctif rapide correspondants sont également disponibles si vous essayez d'utiliser un composant Blazor sans spécifier les paramètres requis.
  • Nous avons implémenté la prise en charge des fonctions locales C# dans la syntaxe Razor tant attendue.
  • Nous avons amélioré le nettoyage du code dans les fichiers .razor avec des composants Blazor. Il ne supprime donc plus les déclarations @using.
  • Nous avons également corrigé les actions contextuelles If To Switch et Invert If dans le code Razor avec des références aux composants Blazor.
  • ReSharper utilise désormais le bon style de nommage pour les propriétés injectées par Blazor.
  • L'action Comment with Line Comment commente maintenant uniquement la partie du code Razor souhaitée.
  • We’ve added navigation through inheritance hierarchy to Razor code. Les marques des gouttières correspondantes sont maintenant indiquées pour les symboles de base et dérivés. Vous pouvez cliquer dessus pour accéder au code.

Nettoyage et Mise en forme du code

Nous avons réorganisé tous les éléments du menu Alt+Entrée liés à Code Cleanup et Formatting. Format selection, Cleanup selection et Apply syntax style ont été combinés en un seul élément Reformat and Cleanup afin de fournir un point d'entrée unique.

En plus de ces changements, les paramètres du style syntaxique sont maintenant disponibles dans les actions Configure code style et Autodetect code style settings. Le volet Preview code style affiche également les changements de style de la syntaxe.

Tests unitaires d'Unreal Engine

The Unreal Engine testing framework is now supported. ReSharper C++ introduit la prise en charge des tests unitaires d'Unreal Engine et ajoute les indicateurs d'action correspondants près de chaque test dans l'éditeur pour exécuter ou déboguer le test ou l'ensemble de la suite du test. La fenêtre Unit Test Sessions permet de consulter les résultats des tests et d'exécuter à nouveau les tests qui ont échoué, tous les tests ou des tests spécifiques.

Nouveautés de ReSharper C++ 2022.1

Renforcement de la prise en charge de C++

ReSharper C++ gère mieux les appels implicites de constructeurs, ce qui vous permet de trouver des utilisations et d'accéder au constructeur appelé dans davantage de cas, notamment :

  • fonctions de création de pointeur intelligentes standard (make_unique/make_shared) et spécifiques à Unreal (MakeShared/MakeUnique).
  • méthodes de conteneur de type emplace.
  • static_cast et expressions de conversion de type C.

ReSharper C++ 2022.1 affiche également un avertissement de surcharge si une fonction de type emplace est appelée avec des arguments incorrects.

Nouveautés de ReSharper C++ 2022.1

Générateurs de code source

Après avoir analysé les performances de la prise en charge des générateurs de code source, nous avons décidé d'espacer les requêtes lors de l'extraction des documents générés par la source sur le compilateur.

Cela évite que les générateurs de code source s'exécutent avant le compilateur et réduit la charge de travail du processeur. Le gain de performances réellement obtenu peut varier, notamment si d'autres fonctionnalités déclenchent également les générateurs, tels que la saisie semi-automatique de ligne de Visual Studio.

Performances

We’ve fixed a number of performance issues already and laid the groundwork for more. Cela inclut le traitement des instantanés de performances de nos clients, les sessions de profilage interne et la collecte de données pour mettre en place ultérieurement des contrôles permettant d'être alerté automatiquement en cas de dégradation des performances.

Nous travaillons également sur le mode « hors processus ». Please refer to the newest update in our issue tracker.

Outils de ligne de commande de ReSharper

Les outils InspectCode peuvent générer des fichiers de sortie compatibles avec le format SARIF (Static Analysis Results Interchange Format).

Les outils de ligne de commande prennent désormais en charge Alpine Linux.

Décompilateur

  • Le décompilateur intégré affiche désormais les commentaires de documentation XML pour les assemblies de plateforme, ce qui inclut les assemblies dont le nom diffère des noms des fichiers de documentation XML, par exemple, System.Private.CoreLib. Le chemin de la documentation XML s'affiche à présent dans l'en-tête du fichier décompilé.
  • Nous avons désactivé le reciblage de la navigation dans la vue Metadata.
  • Nous avons ajouté des présentations de blob décodés/bruts dans les propriétés des nœuds de blob.
  • Assembly Explorer prend maintenant en charge les types transférés (les attributs [TypeForwardedTo]). L'action Locate in Metadata fonctionne également pour les types transférés, les références d'assemblies et de modules, et les ressources.
  • Nous avons amélioré la navigation PDB pour les types sans points de séquence, tels que les interfaces et les énumérations.

Nouveautés de dotPeek 2022.1

Prise en charge améliorée des événements de SQL Server dotUltimate

dotTrace prend désormais en charge les événements SQL Server du fournisseur Microsoft.Data.SqlClient sous Windows (.NET Core, .NET 5+), ainsi que sous macOS et Linux (.NET Core 3.0+, .NET 5+).

Nouveautés de dotTrace 2022.1

Attachement aux applications par glisser-déposer dotUltimate

Il est désormais possible d'attacher le profileur à une application en cours d'exécution en faisant simplement glisser l'icône spéciale sur la fenêtre d'application.

Nouveautés de dotMemory 2022.1

Exclure du code de l'analyse de couverture en utilisant les commentaires dotUltimate

Il est désormais possible d'utiliser les commentaires pour exclure certaines lignes ou certains blocs de code de l'analyse de la couverture. Plusieurs options sont disponibles pour cela :

// dotcover disable
var i = 1;
var j = 10;
// dotcover enable

/* dotcover disable */ var i = 1; /* dotcover enable */

var i = 1; // dotCover disable this line

// dotcover disable next line
var j = 100;

Pour que l'une de ces options fonctionne, vous devez référencer le package JetBrains.dotCover.MSBuild NuGet. Il s'agit d'une dépendance réservée au développement qui ne sera pas incluse en tant que dépendance d'exécution dans votre projet.

Nouveautés de dotCover 2022.1

Autres mises à jour

  • Nous avons apporté des améliorations à la refactorisation Move type to file, ce qui inclut également une action contextuelle et un correctif rapide. Désormais, les directives de préprocesseur sont déplacées en même temps que le type.
  • Nous avons résolu le problème de « changement massif du système de fichiers ». Il s'agissait en fait d'un dépassement de la mémoire tampon d'événement. Cela forçait ReSharper à réviser l'ensemble des fichiers de la solution sans véritable raison, ce qui entraînait une forte sollicitation du processeur et, dans certains cas, un blocage de l'interface utilisateur.
  • Nous avons corrigé les problèmes qui affectaient la fonctionnalité de ReSharper dans les fichiers .sqlproj des versions localisées de Visual Studios.
  • Nous avons ajouté la vue d'arborescence Metadata dans ReSharper (uniquement pour Visual Studio 2022). Elle vous permet de parcourir tous les éléments des métadonnées d'assemblies et inclut les recherches et la navigation jusqu'aux sources, et bien plus encore. For a full list of the features, please refer to the description in dotPeek documentation – the decompiler was the first product to have it.
  • Nous avons résolu plusieurs problèmes de longue date qui conduisaient ReSharper à colorer le code en rouge lors du passage d'une branche Git à une autre. Nous avons identifié plusieurs scénarios à l'origine de ce problème et avons pris les mesures nécessaires.
Télécharger

Essai gratuit sur 30 jours disponible