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#.
Nous poursuivons l'amélioration de la prise en charge de C# 10, notamment pour les directives using globales. 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.
Nous avons examiné les futurs C# 11 et les attributs génériques.
[MemberNotNull] et [MemberNotNullWhen] sont désormais prises en charge dans les projets qui n'utilisent pas de types de référence nullables.
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.
Voici quelques-unes des fonctionnalités et des corrections les plus notables concernant Razor et Blazor :
[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. .razor avec des composants Blazor. Il ne supprime donc plus les déclarations @using.
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.
Le cadre de test Unreal Engine est maintenant supporté. 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.
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 :
make_unique/make_shared) et spécifiques à Unreal (MakeShared/MakeUnique). 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.
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.
Nous avons déjà corrigé un certain nombre de problèmes de performance et établi les bases pour d'autres. 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 ». Veuillez vous référer à la dernière mise à jour dans notre suivi des problèmes.
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.
System.Private.CoreLib. Le chemin de la documentation XML s'affiche à présent dans l'en-tête du fichier décompilé. [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.
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+).
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.
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.
.sqlproj des versions localisées de Visual Studios.