Avec ReSharper 2024.1, nous poursuivons notre travail d'amélioration de la prise en charge de C# en incluant davantage de suggestions pour convertir le code en expressions de collections et des avertissements lorsqu'une collection est modifiée lors d'une itération à l'intérieur de boucles foreach
. La prise en charge de Razor permet de résoudre les références pour les directives @addTagHelper
et @removeTagHelper
et nous avons considérablement amélioré l'interface/expérience utilisateur pour l'édition des règles de nommage personnalisées.
Essai gratuit sur 30 jours disponible
Dorénavant, vous recevrez des suggestions pour convertir davantage de constructions dans votre code source en expressions de collection de C# 12, telles qu'un tableau vide ou la déclaration et l'initialisation d'un ImmutableArray
.
Nous avons ajouté l'inspection Possible 'System.InvalidOperationException: Collection was modified', qui vous prévient lorsqu'une collection est modifiée lors de l'itération dans les boucles foreach
, cette modification étant susceptible de provoquer une exception lors de l'exécution. Cette analyse tient compte des cas de sortie de la boucle après la modification d'une collection. Par conséquent, ces situations ne déclenchent donc pas l'avertissement.
Cette inspection s'accompagne d'un correctif rapide pour vous aider à résoudre ce problème instantanément.
Generate | Formatting Members vous permet de générer automatiquement du code pour contourner la méthode ToString()
et renvoyer une chaîne significative pour vos types. À compter de la version 2024.1, cette fonctionnalité prend en charge davantage de types, tels que ISpanFormattable
, IUtf8SpanFormattable
et IFormattable
.
[MustDisposeResource]
: l'analyse du code C# permet désormais de s'assurer que les ressources renvoyées par les méthodes asynchrones, y compris celles qui sont encapsulées dans Task<IDisposable>
et ValueTask<IDisposable>
, soient correctement éliminées, afin d'éviter de supprimer accidentellement la tâche elle-même. .ConfigureAwait(...)
, .AsTask()
ou .Result
. Voici les principales améliorations apportées à la refactorisation Change Signature :
List<>
, par exemple, vous pouvez donc utiliser la complétion de code pour sélectionner facilement le type souhaité, tel que int
. System.Collections.Generic.List<System.Int16>
dans la boîte de dialogue Change Signature, il sera automatiquement raccourci en List<short>
dans le code résultant. in
et ref readonly
et les types record
. La refactorisation Make Static prend maintenant en charge les paramètres des constructeurs primaires. Ils apparaissent dans la liste Introduce parameters et sont signalés par une icône distincte pour vous aider à les reconnaître plus facilement. Cette refactorisation est également disponible pour les fonctions locales.
L'analyse du code prend désormais en charge l'attribut ProtoContract
et l'énumération ImplicitFields
inclus dans la bibliothèque protobuf-net. Ces deux éléments permettent de marquer les membres qui sont utilisés de façon implicite pour la sérialisation. Par conséquent, ces membres ne sont plus signalés par les avertissements unused members.
@addTagHelper
et @removeTagHelper
ReSharper peut maintenant résoudre les références pour les noms d’assemblies spécifiés dans les directives @addTagHelper
et @removeTagHelper
dans vos vues Razor. Ainsi, vous bénéficiez de la saisie semi-automatique du code, de la recherche des utilisations et de la navigation facilitée dans le code.
ReSharper considère désormais les noms d'assemblies non résolus comme des erreurs et les met en évidence en rouge afin que vous les visualisiez plus facilement.
Principales améliorations dans la prise en charge de C++ :
Plus d'informations sur les mises à jour de C++ : Nouveautés de ReSharper C++ 2024.1.
Nous travaillons sur le mode d'utilisation intensive des ressources pour l'analyse à tous les niveaux de la solution, ce qui réduit considérablement la durée de l'analyse via une utilisation du parallélisme du processeur plus efficace. Nous avons amélioré le profil d'affectation de la mémoire des activités d'analyse du code pour minimiser le temps consacré au nettoyage de la mémoire. Pendant la phase de finalisation, nous vous serions reconnaissant d'activer ce mode et de nous faire part de votre avis sur cette expérience.
Le changement de nom des éléments de votre code est désormais plus rapide et efficace. Cette modification affecte également les autres composants centraux de ReSharper, ce qui a permis d'améliorer de nombreuses fonctionnalités, telles que Find Usages.
Les performances de la refactorisation Move to Another Type pour les membres statiques ont été considérablement rehaussées pour gérer les grandes classes.
Les modifications apportées ont pour but de faciliter l'utilisation des règles de nommage avancées et le respect de toutes les règles importées de fichiers EditorConfig.
Ce nouveau paramètre de mise en forme vous permet de laisser ou supprimer les espaces dans les lignes vides.
La version 2024.1 introduit la nouvelle fenêtre d'outils Assembly Diff dans ReSharper. Il en résulte les changements suivants :
.zip
a été déplacée de la fenêtre Assembly Explorer vers la fenêtre d'outils Assembly Diff. Le décompilateur de ReSharper prend désormais en charge le format de package WebCIL pour WebAssemblies. Cette prise en charge couvre :
.wasm
dans la fenêtre Assembly Explorer. La prise en charge des applications de bureau MAUI et les applications macOS utilisant .NET est maintenant disponible dans dotTrace, dotMemory et dotCover depuis Visual Studio.
Frameworks cibles pris en charge :
net8.0-windows
, net7.0-windows
net8.0-maccatalyst
, net7.0-maccatalyst
net8.0-macos
, net7.0-macos
Cliquez ici pour plus d'informations sur la disponibilité du mode de profilage et les restrictions.
La prise en charge des projets MAUI est également disponible dans les versions autonomes de ces outils .NET.
L'outil de profilage autonome dotMemory prend désormais en charge le Frozen Object Heap, une fonctionnalité introduite pour la première fois avec le SDK .NET 6 dans le cadre de l'amélioration des performances de nettoyage de la mémoire.
Le FOH alloue une zone de mémoire dédiée aux objets immuables. Ces objets ne sont plus modifiés après leur allocation et ne sont pas affectés par le nettoyage de la mémoire. La prise en charge de cette technologie permet à dotMemory d'effectuer une analyse plus détaillée de la mémoire utilisée par les objets immuables dans le FOH, ce qui booste l'optimisation de l'utilisation de la mémoire.
À partir de la version 2024.1, le format de sortie par défaut d'InspectCode est SARIF. Le format XML sera bientôt obsolète. Les résultats restent disponibles au format XML dans la version actuelle lors de l'utilisation du paramètre -f="xml"
.
Nous avons terminé une refactorisation interne des commandes de texte. Dans le cadre de nos travaux sur l'exécution hors processus de ReSharper, cette refactorisation est conçue pour améliorer le typage et les aspects connexes des performances de l'éditeur aussi bien pour ReSharper que Rider. Vous trouverez les dernières informations sur la progression de l'exécution hors processus de ReSharper ici.
JetBrains Marketplace a adopté un nouveau mécanisme de filtrage qui repose sur la vérification de la compatibilité pour son flux de plugins. Ainsi, les plugins incompatibles ne s'affichent plus dans le gestionnaire d'extensions de ReSharper.
Essai gratuit sur 30 jours disponible