Nouveautés de Rider 2019.3

Rider 2019.3 propose une prise en charge exceptionnelle des modèles T4, un profiler multiplateforme pour .NET Core, et une couverture de tests multiplateforme pour Unity. Le démarrage est plus rapide, le débogueur prend en charge Docker Compose, et les prises en charge du contrôle des version et de Xamarin ont été améliorées sur tous les plans.

Prise en charge des modèles T4

Prise en charge des modèles T4

Vous nous avez demandé de prendre en charge les modèles de texte T4, et voilà ! La prise en charge des modèles T4 est arrivée. Elle repose sur notre propre générateur et est disponible en tant qu'extension préinstallée. 

Maintenant, vous pouvez facilement exécuter, traiter et déboguer tous vos modèles T4 dans Rider. Nous espérons que vous apprécierez la nouvelle assistance interne à l'éditeur, qui comprend :

  • Une prise en charge de C# riche en fonctionnalités dans les blocs de code, avec notamment la mise en évidence des éléments syntaxiques du code, la navigation, la saisie semi-automatique de code, l'assistance à la saisie, les refactorisations, des actions contextuelles, des inspections, une mise en forme, et plus encore.
  • La prise en charge des fonctionnalités spécifiques au T4, notamment des inspections, une assistance à la saisie, le pliage et la correspondance entre les accolades.
  • La prise en charge complète des directives include afin que la résolution du code C# soit aussi correcte que possible.
  • La prise en charge de toutes sortes de directives, avec notamment des inspections, des correctifs rapides, une mise en évidence de la syntaxe du code, la navigation, etc.

Toutes ces fonctionnalités fonctionnent sous Windows, macOS, et Linux.

Profileur multiplateforme pour .NET Core

Profileur multiplateforme pour .NET Core

Rider 2019.1 a vu l'arrivée du profileur de performances sous macOS et Linux, mais il ne prenait en charge à l'époque que les applications Mono et Unity Mono. Cette version opère un véritable bond en avant : il est maintenant possible de profiler des applications .NET Core sous Linux et macOS à l'aide de l'extension dotTrace intégrée. Vous pouvez donc profiler vos applications .NET sous Windows, macOS et Linux.

Notez que seuls les projets ciblant .NET Core 3.1 sont entièrement pris en charge. En raison de certaines limitations de .NET Core, le profilage des projets ciblant .NET Core 3.0 ou version antérieure peut, dans de rares cas, entraîner le blocage ou la fermeture de l'application profilée.

Couverture de tests pour Unity

Couverture de tests pour Unity

C'est un réel plaisir pour nous d'essayer d'améliorer l'expérience des scripts Unity, et nous cherchons à produire des avancées exceptionnelles à chaque nouvelle version. Cette fois-ci, nous inaugurons les tests continus et une couverture de tests multiplateformes pour vos tests Unity en mode édition !

Voici quelques-unes des nouvelles fonctionnalités qui devraient vous intéresser :

  • Les tests unitaires en mode lecture sont désormais pris en charge dans l'outil de tests unitaires.
  • Rider prend en charge UIElements avec mise en évidence de la syntaxe, saisie semi-automatique du code et validation du schéma des fichiers UXML et USS.
  • La prise en charge des fichiers .asmdef est de retour !
  • Le nom du projet s'affiche pour les éditeurs Unity lorsque la liste des processus du débogage est générée.
  • Nous avons amélioré les performances d'analyse des ressources lors du chargement initial du projet.
  • “Clear on play” pris en charge par Rider dans la fenêtre d'outil qui permet de visionner les fichiers journaux.
  • Un bogue agaçant lors de la suggestion de fonctionnalités C# 8 par Rider a été corrigé.
  • Nous avons rectifié plusieurs incidents marginaux en maintenant les fichiers .meta à jour lors des refactorisations.

Ce ne sont que les grandes lignes. Comme toujours, cette version vous offre également de nombreuses autres fonctionnalités et correctifs de moindre envergure. Consultez-en la liste complète dans le journal des modifications !

Amélioration des performances

Amélioration des performances

Rider 2019.3 inclut automatiquement toutes les optimisations de performances ajoutées à IntelliJ Platform au cours de notre récent Quality Marathon. Voici quelques-unes des grandes améliorations : la performance de démarrage s'est beaucoup améliorée, le défilement de la souris est désormais plus fluide, et nous avons éliminé un grand nombre de blocages de l'interface utilisateur. Si vous souhaitez en savoir plus, n'hésitez pas à consulter les détails sur l'ensemble des améliorations de performances sur le blog IntelliJ IDEA.

Docker Compose arrive dans le débogueur

Docker Compose arrive dans le débogueur

Dans la version 2018.2, nous avons introduit la prise en charge de Docker dans le débogueur ; elle vous permet de déboguer les conteneurs créés à partir d'un fichier Dockerfile dans Rider. Toutefois, le débogage des conteneurs créés à l'aide de Docker Compos (docker-compose.yml) n'était pas encore pris en charge.

Mais l'attente est terminée ! La prise en charge de Docker Compose est enfin arrivée dans le débogueur ! Vous pouvez désormais déboguer des applications Docker à plusieurs conteneurs d'un simple clic de souris.

Edit & Continue s'améliore encore

Edit & Continue encore amélioré Windows uniquement

Edit & Continue peut désormais appliquer des modifications à une application en cours d'exécution (non suspendue) et l'application n'a pas besoin d'être stoppée à un point d'arrêt. Vous pouvez appliquer des modifications à tout moment en cliquant sur le lien “Apply Changes” dans l'infobulle en haut de l'onglet de l'éditeur. Vous pouvez en outre désactiver l'application automatique des modifications Edit & Continue à partir des actions “Step”/”Resume”/”Jump to Statement” en accédant à “Settings | Build, Execution, Deployment | Debugger | Editing during debug”.

Notez bien que la prise en charge de Edit & Continue reste limitée à Windows.

Améliorations du débogueur

Améliorations du débogueur

Nous avons opéré de nombreuses modifications sur d'autres parties du débogueur. Tout d'abord, l'arborescence des exceptions dans la vue Breakpoints a reçu une grosse mise à jour :

  • La recherche englobe désormais les nœuds dont l'affichage est réduit.
  • Les exceptions sont regroupées par type (Utilisateur/Système) et par espace de noms.
  • Le nœud principal comporte un nouveau nom, “CLR Exceptions”.

Deuxièmement, le débogage à distance connaît quelques nouveautés :

  • Les descriptions et les notifications concernant les erreurs qui peuvent se produire lorsque vous l'utilisez ont été améliorées.
  • Si vous n'indiquez pas de mot de passe ou de phrase secrète pour Remote Debugging, il vous le/la demande lorsque vous vous connectez à un serveur distant.

Et enfin :

  • De nombreuses actions du débogueur ont reçu de nouveaux noms reflétant mieux ce qu'elles font.
  • La fonctionnalité “Pin to top” prend en charge l'évaluation recursive.
  • Une action “Jump to Type Source” est désormais disponible.
  • L'option “Just my code” pour les points d'arrêt dans les exceptions fonctionne beaucoup mieux sur Mono.
Prise en charge VCS actualisée

Prise en charge VCS actualisée

Nous avons commencé à expérimenter en vue d'améliorer l'interface et l'expérience utilisateur pour les systèmes de contrôle de version tels que Git. Dans cette version, un nouvel aperçu diff s'ouvre en direct dans l'onglet de l'éditeur de code afin d'offrir une bien meilleure expérience utilisateur.

Nous avons également introduit une nouvelle fenêtre d'outils Commit, qui s'affiche à gauche par défaut afin de laisser plus d'espace vertical à l'écran pour les listes de modifications, les descriptions des commits, etc.

Si vous ne trouvez pas l'onglet Version Control lors de votre premier lancement de Rider 2019.3, ne vous inquiétez pas. Il n'a pas disparu, il a juste un nouveau nom : Repository.

En plus de cela, nous avons amélioré la vue “Compare with Current”, remanié la boîte de dialogue Clone et rendu possible le push d'une branche non active.

Pour en savoir plus, consultez l'article de blog Nouveau fonctionnement de Commit ! Découvrez les fenêtres d'outils Commit et Repository dans Rider 2019.3.

L'extension AWS Toolkit fait son arrivée dans Rider

L'extension AWS Toolkit fait son arrivée dans Rider

Au cours de ce cycle de développement, nous avons déployé beaucoup d'efforts pour optimiser l'extension AWS Toolkit pour les développeurs .NET et la rendre compatible avec Rider.

  • Utilisez un modèle de projet prédéfini pour créer une nouvelle application AWS sans serveur.
  • Vous pouvez créer, exécuter et déboguer une Lambda AWS localement et à distance. En outre, vous pouvez faire tout cela directement dans l'éditeur, à l'aide des icônes de la gouttière.
  • Vous pouvez déployer votre application sans serveur sur AWS.
  • La prise en charge du débogage Cloud est arrivée ! Vous pouvez déboguer vos applications Cloud .NET Core exécutées sur Amazon ECS avec AWS Fargate directement à l'intérieur d'un conteneur distant dans un Cloud, sans aucune émulation locale.
  • L'extension est disponible pour Rider v2019.2 et v2019.3.

Une fois l'extension AWS Toolkit for Rider installée, vous aurez tout le nécessaire pour commencer à travailler instantanément sur vos applications AWS sans serveur.

Prise en charge renforcée de Xamarin

Prise en charge renforcée de Xamarin

Nous avons poursuivi notre objectif de faire de Rider un excellent IDE pour le développement en Xamarin et proposons quelques améliorations sympathiques pour Xamarin Android et Xamarin iOS :

  • Les appareils et simulateurs Apple opèrent désormais une meilleure découverte sur Mac grâce aux composants JetBrains AppCode intégrés.
  • Vous trouverez la liste des appareils Apple connectés dans la barre d'outils.
  • Nous prenons à présent en charge les builds d'appareils mtouch (compilateur Mono pour iOS).
  • “Publish Android APK” est disponible pour les projets Xamarin Android (cherchez l'action “Archive or Publish” dans le menu contextuel d'un projet).
  • Vous pouvez modifier les propriétés de projet spécifiques à Android dans Project Properties.

Nous n'avons pas non plus oublié la prise en charge de Xamarin Forms, qui comporte quelques correctifs importants, notamment la prise en charge des attributs x:DataType et Class.

Amélioration renforcée de la prise en charge de C# 8

Amélioration renforcée de la prise en charge de C# 8

La nouvelle version de Rider gère encore mieux C# 8. Elle inclut désormais :

  • Une meilleure compréhension des types Nullable Reference, notamment la prise en charge des contraintes notnull
  • Des expressions switch de type ciblé
  • Une prise en charge anticipée des méthodes d'interface par défaut
  • Une nouvelle suggestion Local function can be static avec le correctif rapide correspondant
  • Un nouveau correctif rapide active les annotations et les avertissements nullable dans un fichier, un projet ou l'ensemble des projets d'une solution.
  • Un nouveau correctif rapide ajoute l'attribut EnumeratorCancellation aux paramètres CancellationToken des itérateurs async.

En outre, l'inspection de code Type or type member is never used a été divisée en deux options distinctes, une pour les types (Type is never used) et une autre pour les membres de type (Type member is never used).

Génération de code

Génération de code

L'action Generate en sait davantage sur C# 8 et vous aide à le maîtriser également, grâce à :

  • Un nouveau correctif rapide Add missing arms pour vérifier les valeurs des énumérations de façon exhaustive
  • Un nouveau correctif rapide et une action contextuelle pour générer des schémas de type dans les expressions switch.
  • Nullability pris en compte lors de la génération de comparateurs/membres relationnels ou d'égalité

Il existe en outre une nouvelle option permettant d'utiliser System.HashCode pour implémenter GetHashCode lorsque vous générez des membres d'égalité ou des comparateurs d'égalité pour C# et VB.NET, ce qui contribue à la propreté de votre code.

Conseils pour les noms de types

Conseils pour les noms de types

Nous espérons que vous appréciez les suggestions de noms de paramètres et d'annotations de code introduites dans Rider 2019.1. Dans cette version, nous sommes allés encore plus loin. Nous sommes prêts à vous proposer les suggestions de noms de types. Elles sont disponibles pour :

  • Les paramètres d'une lambda
  • Toutes les occurrences de var, y compris la reconnaissance de schémas et la déconstruction de tuples
  • Les variables de plage à l'intérieur des déclarations LINQ
  • À la fin d'une ligne dans une chaîne d'appels de méthodes
Navigation et Find Usages

Navigation et Find Usages

La plupart d'entre nous souhaite savoir où une référence donnée est utilisée dans notre code. Pendant longtemps, il était possible d'exécuter l'action “Find dependent code” sur une référence pour détecter tous les emplacements où trouver des types ou des membres de types de cette référence. Toutefois, cette action avait ses limites. Cette version nous a permis d'en éliminer quelques-unes : Find dependent code fonctionne pour les références NuGet, et peut s'exécuter pour l'ensemble d'une solution au lieu d'un simple projet.

Rider propose maintenant beaucoup plus :

  • L'infobulle de superposition Quick definition est disponible pour tous les symboles dans l'éditeur de code, et vous permet de consulter rapidement la définition d'un symbole sans quitter le contexte actuel.
  • L'utilisation d'API permet d'étendre les actions “Navigate to” et peut être utile si vous souhaitez répertorier toutes les méthodes qui reçoivent des objets d'un type spécifique dans leurs paramètres.
  • La fenêtre Find results pour Find dependent code comporte de nouveaux filtres.
  • Vous pouvez maintenant naviguer jusqu'aux sources externes des paquets NuGet qui comportent un paquet de symboles sources.
Style de code

Style de code

Dans cette version, nous avons répondu à une autre demande très attendue. Les paramètres de nommage C# prennent désormais en charge la lecture de/l'exportation vers EditorConfig.

En plus de cet énorme changement, d'autres petits ajustements vous offrent davantage de contrôle sur le style de votre code :

  • Pour ceux qui préfèrent utiliser 'var' au lieu des types explicites uniquement si le type de l'expression de l'initialiseur est évident, Rider peut maintenant détecter davantage de cas evident. Il existe également un mode 'compatibility' correspondant au comportement Roslyn.
  • Une nouvelle option de style de code, compatible avec StyleCop et Roslyn, permet d'ajouter des parenthèses qui clarifient la précédence uniquement pour un groupe d'opérateurs imbriqués avec d'autres du même groupe. Par exemple, si vous ne pouvez pas vous rappeler si && ou || passe en premier, cette option vous aidera à le clarifier à l'aide des parenthèses.
  • Comment Code ajoute maintenant par défaut une indentation à un commentaire. Il existe un nouveau paramètre 'Place comments at first column when commenting out code' (Placer les commentaires dans la première colonne lorsque vous placez une partie de code en commentaire) si vous souhaitez désactiver cette option.
  • Les pages d'options permettant de configurer les indentations affichent maintenant la notification appropriée lorsque le paramètre Autodetect indent size and value est ON.

Il existe également une infobulle de notification qui explique les fonctionnalités Configure formatting et Autodetect formatting sur les pages d'options de l'outil de mise en forme C#.

Améliorations du modèle de projet

Le modèle de projet de Rider étend désormais toutes les refactorisations effectuées dans vos fichiers de langage Web, par exemple vos fichiers TypeScript, à l'ensemble des fichiers de votre projet. Par exemple, “moving a TS class to a separate file” met à jour le fichier .csproj correspondant en fonction de cette modification. Nous avons également amélioré l'expérience utilisateur pour l'état de projet “Not Built” dans l'explorateur Solution Explorer.

Veuillez noter que nous avons abandonné notre prise en charge du SDK .NET Core 1.*, car ces versions ont atteint leur date de fin de prise en charge.

Prise en charge initiale de MongoDB

Rider se dote d'une prise en charge initiale de MongoDB (pour en savoir plus). Nous avons en outre étendu la prise en charge des base de données de Rider au débogueur PL/SQL d'Oracle et ajouté de nouvelles inspections et avertissements, un indicateur de progression de la requête intégré à la ligne, et un moyen simple de signaler une erreur de connexion à Google.

Pour en savoir plus, consultez la page des Nouveautés de DataGrip 2019.3.

Développement web

Développement web

Comme d'habitude, nous avons réservé quelques attentions aux développeurs Web :

  • Des améliorations d'envergure de la saisie semi-automatique du code pour Vue.js
  • Documentation rapide dans les projets Vue.js.
  • Une meilleure prise en charge des props dans les composants React sans propTypes
  • Des améliorations de la prise en charge d'Angular
  • La prise en charge de TypeScript 3.7 et autres améliorations de la prise en charge de JavaScript/TypeScript
  • Plusieurs mises à jour de la prise en charge de CSS/SASS
  • La prise en charge de la version Yarn 2 attendue prochainement

Pour en savoir plus, consultez la page des Nouveautés de WebStorm 2019.3.

Autres fonctionnalités

Autres fonctionnalités

  • Nous avons amélioré la prise en charge dans Rider des fichiers de projet (notamment les fichiers .csproj) en tenant compte des divers éléments MSBuild pour la saisie semi-automatique du code. Vous pouvez également utiliser une inspection et un correctif rapide pour la validation de <TargetFramework>/<TargetFrameworks>.
  • Nous générons maintenant la configuration d'exécution prédéfinie de manière plus intelligente, afin que vous puissiez l'exécuter sans mouvements ou ajustements supplémentaires. Elle se dote en outre d'un nom auto-généré approprié au lieu du sempiternel “Default”.
  • D'autres propriétés MSBuild spécifiées dans un fichier launchSettings.json, telles que $(ProjectDir), sont désormais prises en charge.
  • La fenêtre contextuelle Parameter Info est disponible pour les tuples.
  • En ce qui concerne la suppression de nouvelles lignes à l'aide des touches Supprimer ou Retour arrière avant une nouvelle ligne, l'assistance à la saisie laisse désormais un espace pour séparer les jetons ou lorsque les règles de mise en forme l'exigent.
Encore plus de fonctionnalités

Encore plus de fonctionnalités

  • La mise en évidence des identifiants a été complètement repensée avec une page séparée pour C# ainsi que des couleurs distinctes pour les directives du préprocesseur, les méthodes statiques, les champs, etc.
  • De nouvelles inspections NUnit couvrent les tests unitaires combinatoires et les paramètres individuels des tests unitaires avec paramètres.
  • Le bouton Expand All fait son retour dans la barre d'outils de gauche.
  • Un nouveau client TFS réactif fait son arrivée en mode expérimental. Pour l'activer, ouvrez Settings | Version Control | TFVC. Il permet une accélération spectaculaire de l'action "Checking for changes" (maintenant environ 100 à 1 000 fois plus rapide selon nos tests). De nombreuses opérations, telles que les actions Commit et History, seront portées sur le nouveau client après la version initiale.