IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

ReSharper 2020.3, l'extension Visual Studio pour les développeurs .NET développée par JetBrains,
Apporte la compatibilité avec les fonctionnalités C# 9

Le , par Stéphane le calme

134PARTAGES

8  0 
JetBrains a annoncé la disponibilité de la troisième mise à jour majeure 2020 de ReSharper, son extension Visual Studio pour les développeurs .NET. ReSharper 2020.3 apporte la compatibilité avec les fonctionnalités C# 9, un nouvel angle sur les conseils d'insertion, la prise en charge d'Avalonia, lùanalyse de programme dynamique intégrée et un ensemble de mises à jour pour vous aider dans votre développement au quotidien.

Prise en charge de C#

Source Generators est sans doute la fonctionnalité du compilateur C# la plus commentée. C'est compréhensible : la possibilité de créer du nouveau code dès le processus de compilation et de l'utiliser immédiatement est très intéressante et peut être utile dans de nombreuses situations.


Comment ReSharper peut-il être utile ici ? Eh bien, ce qu'il fait le mieux : prendre en compte les fichiers générés lors des refactorisations, fournir des fonctionnalités d'édition de code et vous aider à naviguer vers le code généré.


Les méthodes partielles sont maintenant autorisées à avoir des paramètres out, des types de retour non annulés, et tout type d'accessibilité, et peuvent donc être plus largement utilisées avec Source Generators. Source Generators peut utiliser la déclaration de définition de la méthode partielle pour personnaliser le comportement du code généré.

Autre ajout intéressant : les propriétés init-only. Ces propriétés ne peuvent être définies que lors de l'initialisation d'un objet. Vous pouvez donc enfin utiliser des initialiseurs d'objet sans exposer la propriété comme modifiable !

ReSharper détecte les propriétés init-only et les prend en compte lors de la saisie semi-automatique de votre code, de la saisie automatique générative, de l'analyse pour déterminer si la propriété a changé quelque part et pour proposer un correctif rapide pour la rendre modifiable si vous changez d'avis.

L'endroit idéal pour appliquer init est dans les nouveaux types record. Ce sont des types de référence avec une sémantique de valeur qui vous aident à obtenir une immutabilité, mais cette fois pour l'ensemble de l'objet. Une fois de plus, Rider a suivi l'évolution du langage, des correctifs rapides pour choisir le style de déclaration que vous préférez à la saisie automatique de base.

Les records positionnels ont une méthode Deconstruct() générée par le compilateur. Rider prend en charge toutes les fonctionnalités de déconstruction de ces objets. Observez la fenêtre contextuelle lors de l'introduction d'une variable : elle vous donne le choix entre une variable unique ou une déclaration déconstructive. Le même choix sera proposé lorsqu'une fonction accède à une propriété d'un objet record.


Au-delà des nouveautés majeures, les fonctions locales sont désormais autorisées à avoir des attributs (ainsi que des paramètres et des paramètres de type). Ceci est pris en charge par les correctifs rapides de ReSharper y compris la fonctionnalité d'annotation de la méthode comme [NotNull] ou [CanBeNull], en appuyant respectivement sur ! ou ?.

C# 9 apporte également la possibilité très utile d'écrire des programmes de niveau supérieur. Plus besoin de se battre avec les classes de programme : vous pouvez placer votre code initial juste après les directives using ! Une aide est également disponible pour travailler avec les instructions de niveau supérieur. Il y a deux règles concernant les instructions de niveau supérieur : elles doivent précéder tout type ou espace de noms et un seul fichier du projet peut contenir du code de niveau supérieur. Or ces deux règles peuvent facilement être enfreintes par erreur lorsque vous réorganisez et copiez-collez du code. ReSharper fournit des correctifs rapides pour remédier à cela en déplaçant votre code de niveau supérieur vers le haut ou vers un autre fichier.

Conseils d'insertion

JetBrains est persuadé de l'intérêt des conseils d'insertion, mais sait aussi qu'il est important que l'environnement reste aussi propre et épuré que possible. Aussi, l'équipe responsable du développement de ReSharper a mis au point un nouveau mécanisme « Push-to-Hint » pour les conseils d'insertion afin de pouvoir en profiter sans avoir à faire de compromis.

En mode de visibilité Push-to-Hint, les conseils ne sont pas affichés par défaut. Ils s'affichent si vous maintenez la touche Ctrl enfoncée (et sont de nouveau masqués dès que vous la relâchez) ou si vous appuyez deux fois sur Ctrl (auquel cas ils restent visibles jusqu'à ce que vous appuyiez à nouveau deux fois sur Ctrl).

L'outil propose des paramètres assez granulaires : vous pouvez indiquer à ReSharper les conseils qui doivent être activés en permanence, ceux à afficher en mode push et ceux dont vous pouvez vous passer. Utilisez le paramètre « Visibility » pour chaque type de conseil.


L'équipe a également travaillé sur les conseils pour les conversions de types implicites. De telles conversions peuvent entraîner une perte de données ou une dégradation des performances, et ReSharper peut désormais indiquer les emplacements où a lieu une conversion implicite.

Formatage

JetBrains continue à améliorer la précision des paramètres du moteur de formatage. Voilà ce qui a été ajouté dans cette version.

Un groupe de paramètres pour organiser les schémas de propriétés : vous pouvez demander à ReSharper de placer un schéma simple sur une seule ligne et lui indiquer la façon dont vous souhaitez que les soient schémas soient repartis en lignes. Il existe également un paramètre pour aligner les schémas de propriétés en colonnes.

Il est maintenant possible d'ajouter des lignes vides autour des accesseurs de propriété ou d'événement.

Pour Visual Basic, il est possible d'ajouter un espace après l'opérateur +/- unaire.

La prise en charge de .editorconfig a été mise à jour. ReSharper prend désormais en charge les propriétés Roslyn : file_header_templates, dotnet_sort_system_directives_first et dotnet_separate_import_directive_groups.

Il existe également un nouveau paramètre « Spaces around '=' » dans l'exportation vers .editorconfig. Il est automatiquement détecté dans les fichiers existants et peut être configuré manuellement pour les nouveaux fichiers. Par défaut, il est défini sur « true ».

Dynamic Program Analysis

JetBrains a ajouté l'analyse dynamique des programmes (DPA) à ReSharper pour vous aider à analyser et à améliorer votre code en détectant les fermetures et les allocations pour les tas d'objets dans la mémoire.

La bonne nouvelle est que vous n’avez rien à faire en plus de votre routine habituelle de codage, exécution et débogage. La DPA s'effectue en arrière-plan et vous fournit un rapport après chaque lancement de votre projet. Gardez simplement un œil sur l'icône en bas à droite.


Suppression structurelle

Vous connaissez peut-être déjà la fonction de navigation structurelle : elle permet de sélectionner des morceaux de code en fonction de leur structure, d'un mot-clé, d'un bloc, d'une méthode, etc.

Lorsque vous utilisez les actions Extend ou Shrink Selection, elles nécessitent une autre étape pour sélectionner une virgule, un point ou un crochet. Il est facile de l'oublier. Si vous supprimiez un bloc, cela entraînait une erreur de code. ReSharper fait un petit nettoyage dans ce cas : si quelque chose a été sélectionné structurellement, ReSharper essaie de le supprimer structurellement lorsque vous appuyez sur Retour arrière ou Supprimer.

Outils de ligne de commande

Si vous travaillez sur une grande base de code, chaque opération à l'échelle de la solution prend beaucoup de temps à s'exécuter. Avez-vous déjà dû attendre que toute la solution soit reformatée après avoir modifié quelques fichiers ? Eh bien, vous pouvez maintenant exécuter l'outil de console CleanupCode sans pointer vers le fichier de solution : indiquez simplement un ensemble de fichiers ou de dossiers. La ligne de commande ressemblera à ceci: cleanupcode.exe [Chemin d'accès au dossier] [Chemin d'accès au fichier] [Chemin d'accès à un autre fichier]

Veuillez noter que l'outil formate uniquement le code. Le nettoyage n'est pas disponible dans ce mode.


Pendant un certain temps, il manquait aussi la prise en charge des plugins dans nos outils de console. Eh bien, elle est de retour ! Pour l'instant, elle n'est disponible que sur Windows. Pour l'utiliser, vous devez connaître l'identifiant du plugin. Allez sur JetBrains Marketplace, ouvrez la page du plugin, cliquez sur l'onglet Versions, puis sur n'importe quelle version et vous verrez l'identifiant du plugin. Après cela, utilisez la touche -x=[ID] avec l'identifiant du plugin lors du lancement d'InspectCode ou de CleanupCode. L'outil de console téléchargera et activera automatiquement le plugin : cleanupcode.exe -x = [identifiant] [Chemin d'accès au fichier de la solution ].

Veuillez noter que le plugin doit être compatible avec la version de l'outil. De plus, les plugins ne sont pour le moment pas pris en charge si vous utilisez le mécanisme des outils globaux .NET Core pour installer les outils de ligne de commande de ReSharper.

Navigation

Avez-vous déjà rencontré des difficultés lors de la recherche de texte ? Peut-être pour une chaîne dans votre code ou un commentaire ? Ou une faute de frappe dans votre texte vous a-t-elle empêchée de trouver quelque chose ?


Find Text effectue désormais une recherche de correspondance en plus de la recherche exacte, en tenant compte des éventuelles fautes de frappe et des mots manquants. Les résultats sont affichés sous les résultats de la recherche normale de sous-chaînes, dans la section Fuzzy. Conseil : cela peut être très utile si vous recherchez une build de chaîne mise en forme particulière dans votre code.

Prise en charge d'Avalonia

Analyse du code

Comme c'est généralement le cas pour tous les frameworks de type WPF, l'analyse du code fournit de nombreuses inspections de code communes avec les correctifs rapides appropriés pour les fichiers C# code-behind et .axaml, y compris "Possible 'System.NullReferenceException'" et "Class/Property {...} is obsolete: Use {...}".


En plus des inspections WPF courantes, de nombreuses inspections spécifiques à Avalonia, telles ''Path to resource is case-sensitive'' ou ''ColumnDefinitions tag can be converted to attribute'' sont proposées avec des correctifs rapides. Pour cette dernière, une action contextuelle sur l'attribut ColumnDefinitions="*,Auto,*" permet de reconvertir <Grid.ColumnDefinitions> en balise.

Saisie automatique du code

La saisie semi-automatique du code et les informations sur les paramètres sont disponibles pour tous les mot-clés XAML, toutes sortes d'extensions markup, les propriétés x:Name, Style, Source pour StyleInclude, et bien plus encore.

Navigation

Vous pouvez facilement accéder au type de données de liaison compilé, à la propriété liée, au type de contrôle Avalonia et aux déclarations x:Name. ReSharper peut également passer directement du XAML au code externe décompilé, y compris pour les propriétés du setter de style et les espaces de noms xmlns référencés.

Find Usages

Find Usages vous aide à trouver toutes les utilisations des liaisons de méthodes, attributs x:Name, classes Style et de leurs setters, ainsi que de toutes sortes de propriétés.

Refactorisations

Les refactorisations Rename et Safe Delete tiennent désormais compte de toutes les sortes d'utilisations dans le code Avalonia XAML et les mettent à jour en conséquence.

Mises à jour du décompilateur

Le décompilateur intégré de ReSharper a également bénéficié de mises à jour pour prendre en charge davantage de fonctionnalités C#. JetBrains a amélioré le mécanisme de synchronisation entre IL Viewer et le code source.

Private Source Link est maintenant pris en charge. Après avoir navigué vers des sources externes nécessitant une connexion à un serveur source privé, ReSharper affichera une notification et vous permettra de saisir vos informations d'identification ; à moins, bien sûr, que vous ne les ayez déjà spécifiées dans les paramètres de Visual Studio, auquel cas elles seront appliquées automatiquement (pour GitHub et BitBucket).


Unreal Engine

ReSharper C++ 2020.3 offre une intégration transparente avec UnrealHeaderTool pour vous aider à détecter les problèmes qui ne sont généralement découverts qu'au moment de la compilation. ReSharper C++ exécute UnrealHeaderTool en arrière-plan et affiche les résultats de l'analyse en temps réel directement dans l'éditeur.

Pour améliorer sa prise en charge de HLSL, ReSharper C++ se dote d'inspections d'analyse de flux de contrôle pour les fichiers shader. Le suivi en direct des modifications apportées aux fichiers de configuration de build permet à ReSharper de toujours utiliser le modèle de projet le plus à jour.

Meilleure prise en charge de C++20

ReSharper C++ 2020.3 implémente les modifications C++ 20 des règles de comparaison. Avec des inspections plus riches et les messages d'erreur, vous pouvez compter sur ReSharper C++ pour mieux comprendre le comportement de votre code et les nouveaux correctifs rapides vous aident à travailler facilement avec les opérateurs de comparaison.

En outre, ReSharper C++ 2020.3 apporte de nouvelles inspections pour vous aider à adopter la bibliothèque ranges de C++ 20 et inaugure la prise en charge du mode standard des coroutines C++ 20 introduites dans Visual Studio 16.8.

Autres mises à jour
  • Prise en charge des annotations Nullable sur les types génériques sans contrainte (inclut la contrainte par défaut).
  • JetBrains a implémenté une petite mise à jour de la prise en charge de TypeScript : ReSharper prend désormais en charge la coalescence nulle et le chaînage facultatif.
  • JetBrains a ajouté un nouveau correctif rapide qui vous aide à transformer une vérification de schéma séquentiel en une vérification complexe de correspondance de schéma.
  • Dans la refactorisation Change Signature, JetBrains a remanié l'outil utilisé pour définir la valeur par défaut du paramètre que vous ajoutez : l'outil qui s'ouvre lorsque vous choisissez "Resolve with call tree". La navigation vers le code est désormais disponible en double-cliquant sur un nœud. Il existe une nouvelle option appelée « Create default parameter » qui vous emmène directement dans le code pour en spécifier la valeur. Enfin, des couleurs différentes sont appliquées pour les divers correctifs sélectionnés dans l'arborescence. L'éditeur espère que cela facilitera la résolution des utilisations !

Télécharger ReSharper 2020.3

Source : JetBrains

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de archqt
Membre expérimenté https://www.developpez.com
Le 23/12/2020 à 11:25
L'environnement est il vraiment au dessus de tout le reste ? Pour ma part j'utilise QtCreator comme IDE
0  0 
Avatar de redcurve
Membre extrêmement actif https://www.developpez.com
Le 30/12/2020 à 20:12
Je trouve Resharper génial mais il est vraiment lourd sur de gros projets
0  0