Nouveautés de GoLand 2019.3

GoLand 2019.3 consomme moins de puissance CPU pour de meilleures performances, améliore la prise en charge de ses modules Go, ajoute un lot de nouveaux correctifs rapides et optimise les refactorisations. Il est possible d'appeler une méthode pour un champ imbriqué à l'aide de Evaluate Expression et de déboguer vos applications à distance grâce à Mozilla rr.

Vous pouvez également activer un observateur de fichier global pour tous les nouveaux projets, travailler avec MongoDB, et bien plus !

Performances

Graphique avec la mesure des temps de démarrage de GoLand 2019.3 sur différents systèmes d'exploitation

Depuis la sortie de GoLand 2019.2 cet été, nous avons travaillé dur pour en accélérer les performances et réduire sa consommation CPU. L'une des principales améliorations de performance a permis de réduire la durée du démarrage, pendant laquelle l'IDE prépare tous ses composants en coulisse, affiche l'écran d'accueil et indexe un projet.

Notez bien que les résultats peuvent varier en fonction de la taille de votre projet ainsi que de l'âge, la mémoire RAM et l'espace disque de votre équipement. Nous allons poursuivre notre travail sur ce front. Vous pouvez vous attendre à un démarrage encore plus rapide dans les futures versions.

Amélioration des modules Go

Navigation du fichier go.mod vers la vue du projet

GoLand 2019.3 permet la mise en évidence des éléments syntaxiques et la navigation dans les fichiers go.mod. Appuyez sur ⌘+B sous macOS ou Ctrl+B sous Windows/Linux sur un chemin d'importation de dépendances spécifiques pour que GoLand vous en affiche les sources dans la vue Project View.

Toujours dans Project View, les modules Go s'affichent avec leur chemin d'importation complet au lieu du dernier segment. La version de chaque module Go sera aussi affichée avec une couleur de police plus atténuée que le chemin d'importation pour permettre de mieux les distinguer.

Mises à jour du débogueur

Boîte de dialogue Evaluate Expression avec le résultat de l'appel

Appeler une méthode d'un champ imbriqué

Evaluate Expression dans le débogueur vous permet à présent d'appeler directement une méthode dans un champ imbriqué.

Débogage avec Mozilla rr

Débogage à distance avec Mozilla rr

Beaucoup de services de production écrits en Go s'exécutent sous Linux. Mozilla rr peut aider à enquêter sur les bogues difficiles à reproduire. La prise en charge du débogage dans Mozilla rr remonte à GoLand 2018.3, mais son fonctionnement se limitait jusqu'ici aux machines de développeurs sous Linux. Il est maintenant possible de lancer un serveur de débogage sur une machine Linux et de déboguer la trace à distance depuis macOS ou Windows. Suivez cette procédure :

  • Collectez une trace rr sur la machine distante.
  • Lancez le débogueur sur la machine distante comme ceci : dlv --headless --api-version 2 -l localhost:2345 replay /path/to/trace/dir /path/to/binary.
  • Connectez-vous à la machine distance à l'aide de la configuration Go Remote.

Veuillez noter que Mozilla rr n'est disponible que sur les machines Linux.

Nouveaux correctifs rapides

Supprimer le nom de paramètre inutilisé de l'expression grâce à Alt + Entrée

Gestion des paramètres inutilisés

GoLand met désormais en évidence le nom et le type des paramètres inutilisés s'ils peuvent tous deux être supprimés, ou uniquement leur nom si le type est utilisé pour implémenter la spécification d'une méthode.

Dans ce dernier cas, l'IDE vous propose deux correctifs rapides : Delete parameter names (supprimer les noms de paramètres) ou Rename to_ (renommer en). Le même comportement est fourni pour les fonctions utilisées comme type de fonction

Il est de plus possible à présent de supprimer l'ensemble des paramètres inutilisés d'un coup. Appuyez sur Alt+Enter et utilisez le correctif rapide Delete all unused parameters.

Créer une fonction manquante

Créer la méthode ou la fonction manquante

GoLand propose un correctif rapide pour créer une fonction ou méthode manquante lorsqu'elle est utilisée dans un type de fonction. Il vous suffit d'appuyer sur Alt+Entrée et de sélectionner Create method/function.

GoLang suggère d'importer le paquet

Gestion améliorée des alias de packages

GoLand suggère maintenant d'importer les packages en fonction des alias utilisés via Alt+Enter dans tout fichier de votre projet.

Refactorisations

Les types de paramètres sont affichés dans les onglets Parameters et Result Parameters

Signature de changement

Change Signature affiche maintenant toujours le type des paramètres dans les onglets Parameters et Result parameters. Cochez la nouvelle case Reuse types pour réduire l'affichage des types induits dans Signature Preview et le résultat.

Vous trouverez en outre deux nouvelles actions d'intention, Reuse signature types qui fusionne les définitions de paramètres en une seule déclaration, et Expand signature types qui ajoute des types à chaque paramètre à l'aide du raccourci Alt+Entrée.

Extract Variable suggère l'erreur pour l'expression de l'erreur de type

Extract Variable et Rename

Extract Variable et Rename offrent maintenant de meilleures suggestions de noms. Par exemple, err est suggéré pour les expressions de type error, ctx est suggéré pour context.Context, etc.

Amélioration du comportement des inspections de code

Comparaison du comportement des inspections de code entre les versions 2019.2 et 2019.3

Les inspections de code de GoLand sont désormais plus ciblées. Nous avons réduit la portée de la mise en évidence des problèmes détectés dans l'éditeur de code pour améliorer la pertinence de l'affichage des correctifs rapides et des actions d'intention pour un morceau de code donné lorsque vous invoquez le menu contextuel à l'aide du raccourci Alt+Entrée.

Édition du code

Un exemple de message d'erreur pour le littéral de rune

Amélioration de l'analyseur lexical des littéraux Rune

Nous avons amélioré l'analyseur lexical des littéraux de type rune de plusieurs façons :

  • GoLand fournit un message d'erreur plus clair et plus concis pour expliquer pourquoi l'expression n'est pas correcte.
  • GoLand ne signale pas un littéral de rune valide en tant qu'erreur après sa modification.
  • L'analyse des littéraux Rune non valides est plus stable.
GoLang met en évidence la réaffectation sur le côté gauche de la déclaration

Mise en évidence des éléments syntaxiques dans les réaffectations

Go permet d'utiliser des variables existantes sur le côté gauche des déclarations var courtes. Par conséquent, deux constructions similaires peuvent avoir des significations différentes. Pour détecter ces cas plus facilement, nous avons ajouté une mise en évidence de la syntaxe pour les réaffectations de ce genre.

Exemple de pliage du code pour des littéraux composites

Pliage du code pour les littéraux composites

GoLand 2019.3 permet le pliage de code pour les littéraux composites. Utilisez les commutateurs de pliage de code pour réduire ou étendre le fragment de code, ou appuyez sur Ctrl+Moins (pavé num.)/Ctrl+Plus (pavé num.) sous Windows ou ⌘+Moins (pavé num.)/⌘+Plus (pavé num.) sous macOS. Pour configurer le comportement de pliage du code par défaut, accédez à Settings/Preferences | Editor | General | Code Folding.

Amélioration des modèles dynamiques

pour le modèle en direct suggère une ligne comme valeur

Les modèles dynamiques for et forr suggèrent maintenant des noms de variables pertinents. Par exemple, des noms comme i et index sont suggérés pour un index; s, string, et line sont suggérés pour une valeur.

Le live template meth fournit des suggestions de code pour les noms de récepteurs.

Navigation

Rechercher uniquement dans la zone sélectionnée

Recherche limitée à une zone sélectionnée

Limitez votre recherche à une zone sélectionnée lorsque vous utilisez Find (⌘+F sous macOS et Ctrl+F sous Windows/Linux). Sélectionnez simplement le morceau de code dont vous avez besoin dans l'éditeur et invoquez Find. L'IDE lancera alors la recherche dans la zone sélectionnée uniquement. Pour basculer facilement vers une recherche dans le fichier complet, appuyez à nouveau sur ⌘+F/ Ctrl+F, ou décochez l'option In Selection dans la barre d'outils.

Recherche ‘Find in Path' avec une option de masque de fichier à l'œuvre

Utilisation de 'Find in Path' avec une option de masque de fichiers

Désormais, lorsque vous lancez une recherche dans la boîte de dialogue Find in Path à l'aide d'un masque de fichiers, GoLand affiche les extensions de fichiers dans les résultats de recherche en fonction de ces paramètres. Cela permet de distinguer plus facilement les fichiers ayant le même nom mais des extensions différentes.

Activer un observateur de fichiers global pour tous les nouveaux projets

Activation de golangci-lint pour tous les nouveaux projets

Dans GoLand 2018.2, nous avions ajouté une option pour partager une configuration d'observateur de fichiers entre plusieurs projets à l'aide des options Project et Global – elle s'appelle Global File Watcher.

Toutefois, vous aviez toujours besoin d'activer cet observateur dans chaque nouveau projet. Il est désormais possible d'activer ce watcher par défaut dans tous les nouveaux projets que vous créez ou ouvrez.

Dans le menu File, sélectionnez Other Settings | Settings for new projects, puis accédez à Tools | File Watchers, ajoutez un nouvel observateur global, puis cochez la case correspondante pour l'activer dans tous les nouveaux projets.

Didacticiels

Un exercice pour la nouvelle fonctionnalité de la refactorisation Extract Variable

Souvent, le temps manque pour lire toutes les pages de nouveautés, de notes de version et les articles de blog sur le produit que vous utilisez, alors même que vous avez besoin de finir votre projet dans les temps. C'est pourquoi nous avons ajouté des Didacticiels pour que vous puissiez découvrir les fonctionnalités de GoLand quand vous en aurez le temps.

Vous pouvez trouver des Tutoriels sur l'écran d'accueil, au-dessus de votre liste de projets. Lorsque vous mettrez l'IDE à niveau vers une nouvelle version, vous verrez une leçon abordant les fonctionnalités de la nouvelle version. Vous pouvez également accéder à Tutorials à l'aide de la fenêtre d'outils correspondante depuis n'importe quel projet.

Autres modifications

Basculer entre les appelants et les appelés dans la fenêtre d'outil Hierarchy

Fenêtre d'outils Hierarchy

Une nouvelle option permet d'analyser la hiérarchie des méthodes des appelés dans la fenêtre d'outils Hierarchy. Nous avons ajouté deux boutons dédiés qui vous permettent de basculer entre les appelants et les appelés de la méthode sélectionnée. En outre, vous pouvez trier les éléments d'une arborescence par ordre alphabétique, en cliquant sur un bouton spécial dans le menu. Pour afficher la fenêtre d'outils Hierarchy dans la liste Tool Windows, vous avez d'abord besoin de construire une hiérarchie. Accédez ensuite à Navigate | Call Hierarchy or Navigate | Type Hierarchy.

Changer d'extension de thème sans redémarrer l'IDE

Changez vos extensions de thème et de configuration clavier à la volée

Dans GoLand 2019.3, vous pouvez installer et désinstaller n'importe quelle extension de thème ou de configuration clavier sans redémarrer l'IDE.

Sélectionnez « Add Keyboard Shortcut » dans les paramètres de l'action « Focus Editor »

Un raccourci personnalisé pour renvoyer le focus vers l'éditeur

Configurez votre raccourci personnalisé pour l'action qui ramène le focus sur l'éditeur, au lieu d'utiliser ESC. Cherchez l'action Focus Editor dans references/Settings | Keymap, effectuez un clic droit dessus, puis sélectionnez Add Keyboard Shortcut dans la liste déroulante.

Barres de défilement plus visibles dans l'éditeur

Amélioration de la visibilité des barres de défilement

Nous avons ajouté une option pour améliorer la visibilité des barres de défilement. Pour ce faire, cochez la case Use contrast scrollbars dans Preferences/Settings | Appearance & Behavior | Appearance.

Améliorations du contrôle de version

Boîte de dialogue New clone avec la liste des référentiels

Remaniement de la boîte de dialogue Clone

La boîte de dialogue Clone se trouve dans VCS | Get from Version control. Vous pouvez maintenant vous connecter depuis cette boîte de dialogue ou, si vous êtes déjà connecté, obtenir un aperçu instantané des listes de tous les dépôts regroupés par compte ou par organisation.

« Show Details » ouvre une fenêtre avec les modifications conflictuelles

Plus d'informations sur les conflits de fusion

Il est maintenant plus facile d'enquêter sur un conflit lors d'une opération de fusion, de changement de base ou de sélection précise. Il vous suffit de cliquer sur le lien Show Details pour obtenir la liste des commits qui mènent à l'état du code obtenu, et vous pouvez consulter plus d'informations sur la source des modifications dans la boîte de dialogue Merge.

Mises à jour des bases de données

Consultez les collections et les champs dans l'explorateur de base de données

Prise en charge de MongoDB

GoLand 2019.3 assure une prise en charge de base pour MongoDB. Vous pouvez maintenant :

  • Consultez les collections et les champs dans l'explorateur de base de données.
  • Ouvrez une collection ou observez le résultat de la requête. Il est également possible de trier par colonne ou de filtrer les valeurs.
  • Lancez des requêtes et obtenez-en les résultats. Sélectionnez une instruction et exécutez-la en appuyant sur Ctrl/⌘+Entrée ou à l'aide du bouton Play de la barre d'outils.
Un exemple de l'erreur de connexion

Rechercher les erreurs de connexion

Il est maintenant plus facile d'approfondir les erreurs de connexion. En cas d'échec de connexion, vous pouvez simplement cliquer sur le bouton dédié de l'IDE pour accéder aux résultats de recherche concernant votre erreur fournis par le moteur de recherche Google.

Développement web

Saisie semi-automatique du code pour les noms de classes de la bibliothèque CSS

Saisie automatique pour les bibliothèques CSS sur CDN

Si vous utilisez Bootstrap ou une autre bibliothèque CSS avec un lien provenant d'un CDN dans votre fichier HTML, vous pouvez désormais bénéficier de la saisie automatique pour les noms de classes de cette bibliothèque sans avoir à ajouter ses sources au projet.

Suggestions de code pour une nouvelle variable

Suggestions de noms pour les nouveaux symboles

Lorsque vous ajoutez de nouveaux noms de variables et de paramètres dans des fichiers JavaScript ou TypeScript, vous obtenez maintenant des suggestions de noms en fonction des noms de classes, d'interfaces et d'alias de types définis dans le projet, des bibliothèques standard et des dépendances que vous utilisez.

Pour les nouvelles variables, fonctions, classes et interfaces, vous recevrez également des suggestions pour les noms déjà utilisés dans la même portée mais pas encore définis.