ReSharper 2023.2 améliore la prise en charge de C# et apporte de nouvelles inspections pour travailler avec les fonctions locales et les chaînes brutes, ainsi que pour résoudre les problèmes courants liés à Entity Framework. Cette version apporte également la prise en charge des refactorisations C++ et de nouvelles fonctionnalités de C++20 et C++23. Parmi les fonctionnalités nouvellement introduites dans ReSharper 2023.2, on trouve la possibilité de créer et de naviguer facilement dans les tests unitaires, le mode de débogage prédictif et le nouvel AI Assistant.
Essai gratuit sur 30 jours disponible
ReSharper 2023.2 ajoute de nouvelles inspections de code et de nouveaux correctifs rapides pour travailler avec les littéraux de chaînes brutes et les fonctions locales, ainsi que pour traiter les problèmes courants liés à l'utilisation d'Entity Framework et les directives nullable redondantes. La prise en charge de C# 12 inclut les constructeurs primaires et les expressions lambda avec paramètres optionnels. Nous avons également amélioré la prise en charge des discards et des ressources remplaçables, et ajouté de nouveaux conseils dans les lignes et entre les lignes.
Les tests unitaires de ReSharper ont fait l'objet d'une mise à jour majeure avec l'ajout d'une fonctionnalité permettant de naviguer et de créer des tests pour votre code de production !
Pour créer un test, appelez simplement l'action Generate Code, puis choisissez Unit Test ou appuyez sur Ctrl+U,C. ReSharper vous permet de choisir le nom de la classe de test et peut même créer un projet à partir de votre framework de test préféré (si cela n'est pas déjà fait). Une fois le test créé, vous pouvez naviguer entre votre implémentation et le code de test avec l'action Navigate To ou en appuyant sur Ctrl+U,F.
Les versions 2023.2 des IDE basés sur IntelliJ et des outils .NET inaugurent une fonctionnalité majeure : AI Assistant. Actuellement, les fonctionnalités générées par IA fournissent un chat intégré et une assistance pour plusieurs workflows utilisateurs essentiels via des actions contextuelles, ce qui permet à l'AI Assistant d'expliquer les éléments de code sélectionnés, d'éliminer les problèmes potentiels et de générer de la documentation XML.
Nous avons ajouté de nouvelles inspections C# et des actions contextuelles pour le travail avec les chaînes brutes et amélioré l'aide à la saisie et les options de formatage :
Consultez cet article pour en savoir plus sur l'amélioration de la prise en charge des chaînes brutes.
Nous avons ajouté plusieurs nouvelles inspections, des correctifs rapides et des options de navigation contextuelle pour les problèmes courants survenant lorsque vous travaillez avec des bases de données avec un framework ORM (Object-Relational Mapping) comme Entity Framework.
Vous trouverez plus d'informations sur les nouvelles inspections liées à Entity Framework dans cet article.
ReSharper 2023.2 introduit deux nouvelles inspections et les correctifs rapides correspondants afin d'améliorer la lisibilité du code avec les fonctions locales :
return
ou continue
explicite avant les fonctions locales à la fin d'une méthode. return
, continue
, ou d'une autre instruction de déplacement de flux de contrôle. Pour les cas dans lesquels vous ne voulez pas modifier le code ou n'avez pas la permission de le faire, ReSharper 2023.2 affiche un conseil interligne avec les instructions return;
ou continue;
placées avant les fonctions locales afin de vous aider à comprendre le code sans le modifier.
Lisez cet article pour plus de détails sur les nouvelles inspections.
#nullable
et annotations NRT Plusieurs nouvelles inspections sont disponibles pour les directives #nullable
et les annotations NRT :
JetBrains.Annotations
sur un membre de base. Pour en savoir plus sur ces inspections, consultez cet article.
var
améliorée Désormais, toutes les actions de navigation (Go to…, Find Usages, etc.0>) suggèrent les types sous-jacents lors de la navigation depuis var
pour les types de wrappers courants. Par exemple, ReSharper suggère la navigation vers Person
lors de l'utilisation de l'action Go to declaration depuis le mot-clé var
d'une variable ayant le type ImmutableArray<Person>?
.
Vous trouverez plus d'informations dans cet article.
La version 2023.2 de Rider apporte la prise en charge des constructeurs primaires pour les classes autres que record et les structs de la version preview de C# 12. Plusieurs inspections détectent les types pour lesquels l'initialisation peut être exprimée par de nouveaux constructeurs primaires et suggèrent l'application d'un correctif rapide pour réduire de façon significative les répétitions de code.
Parfois, l'initialisation du type doit être rendue plus formelle et ne peut plus être exprimée par un constructeur primaire. C'est pourquoi nous avons introduit deux actions contextuelles qui permettent d'annuler le remplacement des paramètres de constructeurs primaires par constructeurs et champs ordinaires.
Pour en apprendre plus sur ces fonctionnalités de constructeurs primaires et en découvrir d'autres en action, consultez cet article.
Dans le cadre de notre travail d'intégration des mises à jour de C# 12, nous avons introduit la prise en charge des valeurs de paramètres par défaut dans les expressions lambdas. En plus de l'ensemble de messages d'avertissement standard associés à la reconnaissance de cette syntaxe, nous avons adapté une inspection existante, The parameter has the same default value, pour prendre en compte les valeurs des paramètres par défaut dans les lambdas. Vous trouverez plus d'informations à ce sujet ici.
ReSharper 2023.2 introduit deux nouvelles inspections de code conçues pour mieux contrôler la suppression d'un objet :
Nous avons aussi amélioré la fonctionnalité Generate dispose pattern pour prendre en charge l'interface IAsyncDisposable
et générer une méthode asynchrone pour libérer les ressources.
Vous trouverez plus de détails sur ces ajouts ici.
Plusieurs ajouts à la prise en charge des discards C# ont été faits pour l'analyse du code :
_
name is typically reserved for local parameters without usages porte sur les variables et les paramètres nommés, tels que _
, qui sont réellement utilisés. Ils semblent être des valeurs « ignorées », mais en fait c'est le contraire. Consultez cet article pour en savoir plus sur la prise en charge améliorée des discards.
Lorsque vous transférez une valeur à un argument de tuple ou un type de retour, C# permet d'ignorer les noms de composants. Cependant, en l'absence de noms, il devient plus difficile d'interpréter la signification de chaque composant sans examiner son type cible. Par exemple, de nombreux développeurs doivent rechercher où un tuple (null
, false
) est affecté pour comprendre ce que signifient ses composants.
C'est là que les conseils d'insertion peuvent vous aider ! ReSharper 2023.2 affiche des conseils d'insertion contenant des noms de composants de tuples lorsque ces noms ne sont pas déjà apparents au niveau de l'expression du composant, ce qui rend votre code beaucoup plus facile à lire et compréhensible.
Pour les composants null et par défaut, ReSharper 2023.2 affiche des conseils sur leurs types cibles même si le composant cible n'a pas de nom explicite. Il fait toutefois une exception pour les types chaîne et objet, car ces derniers sont généralement peu informatifs.
Les noms améliorent également la lisibilité des modèles de déconstruction pour lesquels le nom explicite est connu s par la méthode Deconstruct
ou par les composants du tuple source. Ces conseils ont été développés pour vous fournir davantage de contexte lorsqu'un modèle ne contient pas suffisamment de données pour comprendre ce qui est mis en correspondance, comme dans value is ({ }, true, null)
.
#pragma warning
Les directives Pragma permettent de désactiver ou de restaurer facilement les avertissements du compilateur en fonction de leurs identifiants. Cependant, si ces ID sont un excellent moyen de communiquer avec le compilateur, ils peuvent être difficiles à comprendre. Sans connaissances approfondies, il n'est pas évident de savoir à quoi correspond l'identifiant CS0168
ou CS0618
, et ce qui nécessite une attention particulière.
Les requêtes LINQ sont souvent complexes et impliquent de multiples transformations et projections. Le débogage de requêtes LINQ complexes peut être chronophage, surtout pour les grands ensembles de données. Afin de vous aider à inspecter facilement la sortie de chacune des étapes de la requête, ReSharper affiche désormais les résultats intermédiaires sous forme de conseils d'insertion durant le débogage.
Les éléments de l'éditeur qui affichent les résultats intermédiaires vous aident à détecter rapidement les valeurs inattendues ou transformations incorrectes.
ReSharper C++ introduit la refactorisation Safe Delete, qui permet de supprimer des symboles dans le code source en toute sécurité. Cette refactorisation est disponible pour les classes, les fonctions, les variables, les énumérateurs, les espaces de noms et même les concepts.
Avant de supprimer un symbole, ReSharper C++ recherche ses occurrences et fournit une prévisualisation des modifications du code afin d'éviter toute suppression non intentionnelle. Si vous essayez de supprimer une entité complexe comme une classe ou un espace de nom, ReSharper C++ vérifiera récursivement les utilisations de tous ses membres.
Cette nouvelle version introduit la prise en charge de plusieurs nouvelles fonctionnalités du langage, notamment if consteval
, les modules de bibliothèque standard C++23, l'attribut [[no_unique_address]]
et les opérateurs statiques operator()/operator[]
.
ReSharper 2023.2 introduit deux nouvelles options de formatage du code C# qui améliorent la lisibilité des appels de méthode chaînés.
La première option de formatage du code permet de contrôler le placement d'un saut de ligne avant le premier appel de méthode. La seconde option concerne les cas dans lesquels un appel de méthode et un appel de propriété sont mélangés et détermine si un saut de ligne est nécessaire après l'appel de propriété.
L'AI Assistant n'est pas directement fourni avec ReSharper et doit être installé séparément. L'accès à la fonctionnalité AI Assistant est limité pour le moment et nous avons mis en place une liste d'attente.
Vous trouverez plus d'informations sur l'AI Assistant et la façon de l'installer avec Toolbox App ou le programme d'installation de dotUltimate dans notre aide web.
Par défaut, l'AI Assistant tient compte de votre environnement de développement : les langages de programmation, frameworks, bibliothèques et technologies utilisés dans la solution. L'intelligence artificielle est ainsi en mesure de fournir des réponses plus précises et pertinentes à vos questions.
L'option Smart chat permet à l'AI Assistant de référencer des fichiers spécifiques et des symboles, d'extraire des fragments de code ou les dernières modifications, et de rechercher les utilisations de méthodes spécifiques. Ainsi, ses suggestions sont encore plus précises.
Avec l'installation du plugin AI Assistant, les actions contextuelles de ReSharper offrent plusieurs options générées par IA. L'AI Assistant peut vous aider pour les tâches suivantes :
Le mode débogage prédictif de ReSharper 2023.2 peut prévoir tous les états possibles déclenchés par l'exécution d'un programme sans avoir à l'exécuter réellement, ce qui lui permet :
Grace au débogueur prédictif, vous bénéficiez d'une compréhension plus avancée de l'exécution de votre programme. Il vous donne aussi la possibilité d'essayer différentes valeurs et de déboguer votre code sans avoir à redémarrer le processus de débogage à chaque modification.
Pour activer le débogueur prédictif, allez dans ReSharper | Options | Tools | Debugger | Editor Integration | Predictive debugger | Show predicted values (beta).
Ce débogueur est actuellement en phase Bêta, vos retours nous aideront donc à le faire évoluer. N'hésitez pas à nous signaler les bugs que vous rencontrez via notre outil de suivi et à nous faire part de vos suggestions ou demandes.
ReSharper 2023.2 permet d'obtenir une comparaison détaillée de deux assemblies. Cette fonctionnalité est particulièrement utile pour examiner les différences entre les deux versions d'un assembly donné et rechercher les éventuelles vulnérabilités qui peuvent avoir été introduites dans une version plus récente.
Pour comparer les assemblies, cliquez sur Compare Two Assemblies dans la fenêtre d'outils Assembly Explorer. Vous pouvez comparer les applications à fichier unique et les fichiers .exe
ou .dll
.
Cliquez ici pour en savoir plus sur cette fonctionnalité.
Avec ReSharper 2023.2, nous avons revu notre approche de la mise en cache des données requises par l'IDE pour faire fonctionner ses systèmes. Cette révision, dont l'efficacité a été confirmée par une myriade de tests des performances, a permis de réduire la consommation d'espace disque de façon significative pour chaque solution que vous ouvrez. Dans la pratique, cela réduit le temps consacré aux entrées/sorties de disque et accélère le chargement des solutions.
Un autre changement a permis d'accélérer le chargement de la solution : la refactorisation de la logique de construction des composants internes de ReSharper. Cliquez ici pour en savoir plus.
Essai gratuit sur 30 jours disponible