ReSharper 2022.3 apporte la prise en charge basique des dernières fonctionnalités de C# 11, notamment des littéraux UTF-8, des types locaux de fichiers, des membres virtuels statiques et de la correspondance de modèles sur les spans. Pour cette version, nous avons retravaillé la mise en évidence du code, introduit la détection des dépendances vulnérables pour les packages NuGet et permis l'importation et l'exportation des diagrammes de dépendances de types et de projets au format GraphML. Cette version fournit également une prise en charge préliminaire de Microsoft Visual Studio sur ARM64.
Essai gratuit sur 30 jours disponible
Nous sommes en train de finaliser la prise en charge de base des dernières fonctionnalités de C# 11 :
Nous avons ajouté la prise en charge basique des littéraux UTF-8
. L'analyse de code suggère maintenant d'utiliser le suffixe u8
pour un littéral au lieu de la méthode System.Text.Encoding.UTF8.GetBytes()
ou d'un tableau d'octets avec des symboles UTF8
corrects. En outre, un ensemble d'avertissements et d'erreurs de compilateur a été ajouté pour les littéraux UTF-8
.
La prise en charge des types de fichiers locaux inclut la compréhension de la nouvelle syntaxe, un modificateur d'accessibilité file
pour les types, ainsi que des avertissements et des erreurs de compilateur avec des suggestions de correctifs rapides, tels que Move class to outer scope lorsque le modificateur file
est spécifié pour une classe imbriquée. Vous trouverez aussi une action contextuelle très pratique pour convertir un type général en type de fichier.
ReSharper permet désormais de convertir les chaînes ordinaires et textuelles en chaînes brutes. De nombreuses fonctionnalités existantes pour les chaînes sont désormais également disponibles pour les chaînes brutes.
Dans cette version, nous avons introduit des suggestions pour utiliser la nouvelle syntaxe de schéma de modèle de liste de C# 11 (au lieu des vérifications classiques de longueur de collection avec l'expression d'accès de l'indexeur qui en résulte) pour vérifier les éléments correspondants de la collection.
Avec C# 11, vous pouvez utiliser les modificateurs abstract
et virtual
pour les membres static
dans les interfaces et utiliser ces membres dans du code générique avec des paramètres de type spécifiés par cette interface. ReSharper a été mis à jour afin de gérer les membres polymorphiques de type static
de la même façon que les membres polymorphiques ordinaires :
override
incluent aussi les membres de l'interface, ce qui facilite l'implémentation des membres abstraits ou virtual static
. >>>
) Rider peut désormais reconnaître les modèles de code complexes que les développeurs C# doivent écrire afin d'effectuer un décalage à droite non signé pour des types de données avec signe, et suggère d'utiliser l'opérateur de décalage à droite non signé (>>>
) en C# 11 à la place.
Si vous analysez des Spans de caractères, vous utilisez probablement la méthode MemoryExtensions.SequenceEqual
fréquemment. C# 11 introduit un raccourci pour ce type de vérification. Vous pouvez désormais simplement faire correspondre des Span de caractères avec des littéraux de chaînes avec les expressions is
ou switch
.
ReSharper suggère maintenant d'utiliser les expressions is
ou switch
plutôt que de nombreuses instructions if
.
ref
et mot-clé scoped
Avec C#11, vous pouvez déclarer les champs ref
dans les structures ref
. ReSharper prend en charge cette nouvelle règle de syntaxe, fournit l'ensemble des erreurs et des avertissements de compilateur, affiche le mot-clé ref
lors de la saisie semi-automatique du code et permet d'initialiser ces champs dans un constructeur.
ReSharper tient désormais compte du nouveau mot-clé « scoped » que vous pouvez utiliser sur les arguments by-ref
ou ref struct
et les variables locales. La prise en charge inclut l'analyse correcte de la nouvelle syntaxe, le mot-clé scoped
dans la saisie semi-automatique du code et la préservation du mot-clé scoped
lors de la génération de substitutions de méthodes. Elle permet également de vérifier la compatibilité des modificateurs scoped
et inclut des correctifs rapides pour les paramètres scoped
qui ne concordent pas lors des substitutions, des implémentations d'interface et des conversions de délégués.
C# 11 et .NET 7 ont également introduit des modifications des règles de sécurité ref
du langage. Ces modifications déterminent les opérations qui sont disponibles pour les variables by-ref
et ref struct
, de façon à assurer la sécurité ref
dans le code géré avec l'introduction de champs ref
. ReSharper tient compte de ces modifications et vous aidera à trouver les parties de votre projet qui doivent être mises à jour et annotées avec le nouveau mot-clé scoped
pour intégrer les modifications lors de la migration vers C# 11 ou .NET 7.
La version 2022.3 apporte quelques modifications à la prise en charge des injections de langage :
Les injections de langage fonctionnent désormais dans les littéraux des chaînes de caractères brutes de C# 11.
ReSharper supports the [StringSyntax]
attribute from .NET 7, along with its different syntaxes for language injection and code completion.
Nous avons ajouté une nouvelle icône dans la gouttière pour prévenir les utilisateurs lors des importations d'espaces de nom implicites dans les fichiers C# et Razor.
En appuyant sur Alt+Entrée sur la ligne correspondante, vous pouvez voir la liste complète d'importations implicites et les informations sur le fichier source où sont situées les directives global using. Si vous sélectionnez un nom d'espace importé spécifique, ReSharper peut vous amener jusqu'à sa déclaration, y compris pour les balises <Using Include="Some.NameSpace" />
dans le fichier de projet .csproj
.
ReSharper présente également les importations générales depuis _Imports.razor
et permet de naviguer jusqu'aux définitions d'importation correspondantes.
L'ajout des types numériques Int128
et UInt128
dans .NET 7 nous a permis d'actualiser nos suggestions de spécificateur de format de saisie semi-automatique du code.
Nous avons également ajouté la prise en charge des types date/heure DateOnly
et TimeOnly
de .NET 6, ainsi que celle du type numérique à virgule flottante de demi-précision Half
introduit dans .NET 5.
Parfois, après la refactorisation, les expressions de correspondance de modèles peuvent se transformer en modèles récursifs simples. À ce stade, il n'est pas forcément nécessaire d'utiliser la syntaxe de schéma récursif, c'est pourquoi Rider fournit une action qui permet de réécrire les schémas sous forme d'expressions plus simples, tout en préservant la sémantique de correspondance des schémas d'origine.
Lorsque vous reprenez la saisie après un appel, il arrive que vous ne voyiez quasiment aucune suggestion pertinente. Cela peut se produire si l'appel n'a produit aucune valeur car une méthode renvoyant void
a été appelée. Généralement, il faut plusieurs actions de l'IDE pour que cela se produise (revenir en arrière et accéder à la déclaration de méthode, ou survoler l'appel). Dans cette version, nous avons introduit l'élément de conseil void
pour ces types d'appels de retour void
afin de vous fournir un retour immédiat sur le type résultant de l'appel. L'acceptation de cet élément void
ajoute un point-virgule après l'appel s'il n'y en a pas.
La mise en évidence du code et le soulignement ondulé ont été remaniés dans ReSharper 2022.3. En raison d'une différence de logique interne, ReSharper créait un conflit avec les analyseurs de style de code de Microsoft Roslyn, ce qui entraînait des chevauchements des zones sélectionnées, l'affichage de la même sélection à des endroits différents ou le doublement de lignes ondulées. Les différences de logique derrière la majorité de ces instances a maintenant été résolue, et pour les rares exceptions qui subsistent, les messages d'erreurs sont accompagnés de suggestions claires sur la façon de résoudre le problème.
Chaque fois que vous utilisez des packages NuGet open source dans vos solutions, il y a un risque d’exposer votre projet à des vulnérabilités de sécurité. Bien que NuGet fournisse des outils externes pour détecter ces menaces, il est infiniment plus pratique de disposer d'un outil de ce type directement dans votre IDE pour détecter toute vulnérabilité au moment de la conception. C'est pourquoi nous avons introduit la détection des dépendances vulnérables dans ReSharper. À partir de cette version, toutes les dépendances affectées seront mises en évidence dans les fichiers .csproj
et .vbproj
.
ReSharper peut être intégré dans Microsoft Visual Studio sur les périphériques équipés de processeur ARM. Nous fournissons une prise en charge initiale de tous les workflows de développement basiques, à l'exception de la correction orthographique avec ReSpeller.
L'installateur a été mis à jour pour prendre en charge x64 et ARM64. La version adéquate sera installée automatiquement en fonction de l'architecture du processeur de votre machine.
dotPeek, dotMemory, dotTrace et dotCover, ainsi que les outils de ligne de commande de ReSharper, prennent désormais en charge Windows ARM64.
Le décompilateur embarqué de ReSharper 2022.3 prend en charge :
static abstract
et static virtual
dans les interfaces checked
définis par l'utilisateur La fenêtre d'outil IL Viewer est désormais capable de décompiler le code en différents niveaux de constructions du langage C#. Deux niveaux de C# sont disponibles : le niveau supérieur, avec certaines constructions syntaxiques simplifiées à l’aide des dernières fonctionnalités du langage, et le niveau inférieur pour les cas où vous souhaitez connaître l’état brut de ces constructions syntaxiques.
ReSharper vous permet désormais d'enregistrer et d'importer des diagrammes de dépendances de types et de projets au format GraphML, et préserve la possibilité d'utiliser le diagramme comme une carte de code afin de pouvoir naviguer rapidement au sein des dépendances.
L'analyse de programme dynamique (DPA - Dynamic Program Analysis) fournit de nouvelles inspections qui permettent d'identifier différents problèmes en relation avec l'utilisation de bases de données :
Les nouvelles inspections sont disponibles pour toutes les applications qui utilisent Entity Framework Core et un fournisseur de données .NET pour SQL Server.
ReSharper C++ 2022.3 apporte une prise en charge expérimentale des modules de C++20. Nous avons mis à jour le moteur de langage et de nombreuses fonctionnalités de ReSharper C++ afin qu'ils puissent fonctionner avec le nouveau modèle de compilation, prenant en charge à la fois les modules nommés et les unités d'en-tête.
ReSharper C++ 2022.3 propose une intégration fluide de clang-format. Vous pouvez maintenant alterner entre le moteur de formatage de ReSharper, le moteur intégré ou un binaire clang-format personnalisé pour formater vos fichiers. ReSharper C++ exécute clang-format dans un processus séparé, ce qui garantit une compatibilité totale avec l'outil de formatage standard, de meilleures performances et une plus large gamme d'options de formatage.
Essai gratuit sur 30 jours disponible