Nouveautés de GoLand

La version 2020.3 de GoLand vous permet de gérer le vidage des goroutines, d'exécuter différents tests de tables individuels et de naviguer dans les tests, et apporte une prise en charge étendue du framework de test Testify. Vous y trouverez également de nombreuses nouvelles fonctionnalités pour l'édition de code, notamment la prise en charge de packages de temps, pour le développement web et pour le travail avec des bases de données, des moyens plus intelligents de gérer les packages, des améliorations de l'interface utilisateur et un nouveau service pour le développement collaboratif et la programmation en binôme.

Vous préférez apprendre de manière interactive plutôt que de lire des cours ? Consultez le tutoriel What's New in GoLand 2020.3 disponible dans l'IDE depuis l'écran Welcome.

Améliorations du débogueur

Exploration de la pile de goroutines dans le débogueur

Dans le débogueur, la nouvelle icône Dump Goroutines vous permet de trouver facilement les goroutines qui contiennent une chaîne spécifique dans la pile pendant la session de débogage. Il suffit de cliquer sur l'icône pour ouvrir un dump dans une fenêtre séparée.

Pour éviter les distractions et maintenir l'attention sur les informations importantes, vous pouvez masquer une goroutine donnée ou plusieurs goroutines avec la même pile. Faites un clic droit sur une goroutine et sélectionnez l'action souhaitée ou appuyez simplement sur la touche supprimer pour la déplacer vers une section spéciale Hidden située dans la fenêtre de dump.

Arrêter la configuration 'Go Remote'

GoLand 2020.3 permet de stopper un processus avec la configuration Go Remote si aucune reconnexion au processus n'est requise.

Dans vos paramètres de configuration, vous pouvez spécifier le comportement par défaut du débogueur à la déconnexion avec l'une des options suivantes : Stop remote Delve processes, Leave it running ou laisser GoLand vous demander comment procéder à chaque fois.

Améliorations des tests

Exécuter un test de table individuel

Prise en charge des tests de table

Vous pouvez exécuter différents tests de table et naviguer dans les tests à partir de la fenêtre d'outils Run.

Il y a cependant quelques limitations :

  • La variable de données de test doit être une section, un tableau ou une carte. Elle doit être définie dans la même fonction que l'appel et ne doit pas être modifiée après l'initialisation (sauf pour les clauses de portée dans une boucle for).
  • L'entrée de données de test individuel doit être de type struct literal. Les variables de boucle utilisées dans une expression de nom de sous-test ne doivent pas être modifiées avant l'appel.
  • Une expression de nom de sous-test peut être un champ de chaîne dans les données de test, une concaténation de champs de chaîne de données de test, et un appel fmt.Sprintf() avec des verbes %s et %d.
GoLand suggère un argument dans les fonctions de test

Prise en charge étendue de Testify

L'IDE reconnaît désormais la fonction de test qui lance une suite de tests, et fournit un moyen de lancer un suite.Run individuel et suite.T().Run, tant que le nom du sous-test est une constante de chaîne. En outre, il est possible de réexécuter un sous-test à partir de la fenêtre d'outils Run pour éviter de relancer l'ensemble du test de niveau supérieur.

De plus, GoLand peut désormais exécuter des suites Testify avec le même nom de méthode séparément dans un seul cas de test.

Enfin, lorsque vous exécutez une fonction ou une méthode qui accepte testing.T comme premier argument, GoLand transmet automatiquement cet argument lorsque c'est possible. Cela fonctionne pour les fonctions et méthodes des paquets testify/assert, testify/require, testify/mock et testify/suite.

Inspections de code

GoLand vous avertit en cas de problème potentiel dans l'éditeur et affiche l'intention 'Add format string argument'

L'inspection de code Incorrect usage of Println/Printf like functions vous avertira des problèmes potentiels dans les paquets github.com/pkg/errors, github.com/sirupsen/logrus et go.uber.org/zap.

En plus de cela, nous avons ajouté le surlignage et le pliage des espaces réservés, ainsi que l'intention Add format string argument.

GoLand émet un avertissement lorsqu'un chemin d'exécution n'appelle pas la fonction d'annulation

L'inspection contexte.CancelFunc not called code signale des utilisations potentiellement dangereuses d'annulation du contexte. Cette inspection est particulièrement utile lorsque la fonction « cancel » renvoyée par contexte.WithCancel (et les fonctions similaires) n'est pas appelée sur tous les chemins d'exécution.

Pour en savoir plus sur ce paquet, veuillez consulter : https://golang.org/pkg/context/.

Édition du code

GoLand fournit la saisie automatique du code pour le formatage de l'heure

Prise en charge des paquets de temps

Nous avons ajouté un prise en charge des paquets de temps afin de faciliter votre travail avec le temps et la durée. GoLand propose des éléments de présentation prédéfinis via la saisie automatique (Ctrl+Espace), comme des espaces réservés YYYY, MM, DD de ISO-8601.

Appuyez sur Ctrl+P sur un jeton et l'IDE affichera sa signification. La mise en évidence des éléments de syntaxe est également disponible pour les jetons de présentation. La saisie automatique suggère aussi des présentations du temps standards en dehors du littéral de chaîne.

Exclusion du paquet de l'importation et saisie automatique du code via Alt+Entrée

Gestion plus intelligente des paquets

L'IDE est propose une hiérarchisation plus intelligente des éléments de saisie automatique des paquets que vous utilisez fréquemment et qui sont explicitement déclarés dans le fichier go.mod de votre projet.

Nous avons également ajouté une option permettant d'exclure complètement les paquets de vos suggestions de chemin d'importation du projet et de la saisie automatique. Pour l'utiliser, appuyez sur Alt+Entrée ou allez dans la nouvelle fenêtre Exclude for import and completion dans Settings | Go | Imports.

GoLand utilise une couleur différente pour mettre en évidence l'ombrage des variables sur toute déclaration existante

Prise en charge de l'ombrage des variables

GoLand permet de détecter plus facilement les ombrages de variables :

  • L'IDE affiche maintenant les variables qui ombrent une déclaration existante dans une couleur différente.
  • L'action d'intention Navigate to shadowing declaration vous permet de passer immédiatement à la déclaration ombrée.
GoLand prend en charge les crochets dans les paramètres de type

Crochets dans les paramètres de type

Nous avons pris en compte les mises à jour du design des génériques de l'équipe Go et ajouté la prise en charge des crochets au lieu des parenthèses pour la syntaxe générique.

Veuillez noter que le paramètre Enable generics (experimental support for type parameters) dans Settings | Go est désactivé par défaut. Vous devez cocher la case correspondante pour utiliser cette fonctionnalité.

Lisez cet article de blog pour en savoir plus sur les paramètres de type.

Autres améliorations

GoLand affiche les live templates « Test » et « Benchmark » dans la liste de suggestions de la saisie automatique

Lorsque vous saisissez func dans le fichier de test, GoLand propose par défaut les Live Templates bench et test dans les options de saisie automatique.

GoLand suggère de compléter une boucle for avec b.N à l'intérieur du benchmark

Lorsque vous saisissez for à l'intérieur du benchmark, l'IDE suggère de le compléter par une boucle for avec b.N.

GoLand propose de corriger une faute de frappe

Amélioration des vérificateurs d'orthographe et de grammaire

Les suggestions apparaissent maintenant immédiatement dans la boîte de dialogue lorsque vous appuyez sur Alt+Entrée. De plus, une nouvelle version du moteur de vérification grammaticale LanguageTool améliore les révisions de texte en anglais et prend en charge 10 langues supplémentaires.

Code With Me

« Code With Me » en action

GoLand 2020.3 prend en charge Code With Me (version EAP), un nouveau service de JetBrains pour le développement collaboratif et la programmation en binôme. Code With Me vous permet de partager le projet que vous avez actuellement ouvert dans votre IDE avec d'autres personnes et de travailler dessus ensemble en temps réel.

Consultez ces articles pour en savoir plus à ce sujet.

Améliorations de l'interface utilisateur

Nouvel écran d'accueil

Nouvel écran d'accueil

Nous avons retravaillé l'écran Welcome pour vous donner un accès immédiat aux :

  • Options de recherche des projets.
  • Paramètres pour personnaliser votre IDE.
  • Plugins pour étendre les fonctionnalités de votre IDE.
  • Tutoriels pour en savoir plus sur les fonctionnalités de votre IDE.
Option « Sync with OS theme » dans les paramètres

Synchronisation du thème de l'IDE avec les préférences de votre système d'exploitation

Sélectionnez l'option Sync with OS dans Settings | Appearance & Behavior | Appearance | Theme pour changer automatiquement votre thème IDE en fonction des préférences de votre système d'exploitation.

Faire glisser un onglet pour diviser l'éditeur

Glisser-déposer des onglets pour diviser l'écran de l'éditeur

Divisez l'écran principal de l'éditeur horizontalement ou verticalement en faisant glisser un onglet à la position souhaitée et en le déposant à cet endroit. Lorsque vous faites glisser un onglet, l'éditeur indique les endroits où vous pouvez le déposer.

Ouverture d'un deuxième fichier dans l'éditeur

Mises à jour de la vue Project

Nous avons amélioré l'expérience utilisateur pour le travail avec des fichiers dans la vue Project. Dorénavant, lorsque vous ouvrez un fichier à partir de la vue Project, le focus est automatiquement fait sur l'éditeur pour vous permettre de commencer à travailler directement avec votre code. Appuyez sur la barre d'espace pour que l'IDE vous présente un aperçu du fichier dans la vue Project.

Si vous souhaitez que plusieurs fichiers soient ouverts simultanément dans l'éditeur, vous pouvez désormais le faire grâce à un simple raccourci. Sélectionnez le fichier dans la vue Project et appuyez sur Maj+Entrée pour que l'IDE divise la fenêtre Editeur et ouvre le fichier dans la partie droite de celle-ci.

Mises à jour de VCS

Menu VCS retravaillé

Menu VCS retravaillé

Le menu VCS s'adapte désormais au système de contrôle de version que vous utilisez actuellement, ce qui facilite l'accès aux principales fonctionnalités du VCS puisqu'elles ne sont plus cachées dans un sous-menu.

Zone de staging Git

Prise en charge de la zone de staging Git

La zone de staging Git maintenant est prise en charge dans l'IDE ! Veuillez noter que cette fonctionnalité n'est disponible que pour la fenêtre d'outils Commit.

Cochez la case Enable staging area dans Settings | Version Control | Git pour l'activer. La prise en charge des listes de modifications sera alors désactivée.

Dans l'interface utilisateur de commit, vous trouverez les fichiers indexés et non indexés. Lorsque vous êtes prêt à indexer un fichier, il vous suffit de cliquer sur l'icône + à côté de celui-ci. Le fichier apparaîtra sous le nœud Staged. Pour ajouter vos modifications à la zone de staging, vous pouvez également utiliser l'icône gouttière ou Show Diff.

GoLand corrige les noms de branches incorrects

Amélioration du travail avec les branches

Le travail avec les branches a été amélioré :

  • L'IDE corrige désormais automatiquement les symboles non acceptés dans les noms de nouvelles branches afin qu'elles soient conformes au format accepté.
  • L'IDE vous montre également toutes les actions disponibles pour la branches électionnée, tout comme il le ferait pour les autres branches.
  • Pour les branches distantes, nous avons renommé les actions Merge into Current et Rebase Current onto Selected en Pull into Current Using Merge et Pull into Current Using Rebase.

Plus de fonctionnalités

Désactivation d'un plugin pour tous les projets

Activation des plugins par projet

Nous avons ajouté la possibilité de choisir d'activer les plugins pour le projet en cours ou pour tous les projets en sélectionnant Enable for Current Project ou Enable for All Projects. Dans Settings | Plugins, appuyez sur l'icône engrenage du plugin que vous souhaitez activer ou désactiver et sélectionnez l'option souhaitée.

Raccourcis clavier du système pour macOS dans les paramètres

Raccourcis clavier du système pour macOS

La carte clavier macOS system shortcut (Settings | Keymap) est une alternative à la cartec lavier macOS qui offre une compatibilité étendue avec les raccourcis du système et vous évite d'utiliser les touches F pour des actions essentielles.

Flame Graph dans le profileur en action

Profileur – Flame Graph

Nous avons amélioré le mécanisme de recherche du Flame Graph dans le profileur et sa visualisation pour vous permettre de trouver plus rapidement les métriques de la méthode. Vous pouvez cliquer sur l'icône loupe ou saisir votre recherche dans le volet Flame Graph.

Nous avons également ajouté un champ de recherche, des flèches haut/bas pour une navigation rapide dans les résultats de recherche et la possibilité de rechercher dans l'ensemble du Flame Graph ou uniquement dans une sous-arborescence spécifique.

Modifications relatives au développement web

Création d'un composant React à partir de son utilisation

Créer un composant React à partir de son utilisation

Grâce à l'équipe WebStorm, GoLand dispose maintenant d'une prise en charge étendue pour le développement web. L'un des changements notables dans ce domaine est la possibilité de créer un composant React à partir d'une référence non résolue. Placez le curseur sur le composant non résolu, appuyez sur Alt+Entrée et sélectionnez l'inspection correspondante.

GoLand prend charge pnpm

Prise en charge complète de pnpm

GoLand fournit une prise en charge complète du gestionnaire de package pnpm, ainsi que de npm et yarn. Lorsque vous ouvrez un projet avec un fichier pnpm-lock et que pnpm est installé sur votre machine, GoLand l'utilisera automatiquement comme gestionnaire de package pour ce projet. L'IDE propose également une option pnpm dédiée dans la liste des gestionnaires de package dans Settings | Languages and Frameworks | Node.js and NPM.

Paramètres de webpack

Prise en charge basique de plusieurs configurations webpack

GoLand 2020.3 vous permet de choisir entre la détection manuelle ou automatique des fichiers de configuration webpack. Les nouvelles options se trouvent dans Settings | Languages & Frameworks | JavaScript | Webpack.

Travailler avec des bases de données

Ajout de Couchbase Query comme source de données

Prise en charge de Couchbase

Grâce à nos collègues de l'équipe DataGrip, GoLand prend un charge un nouveau membre de la famille des bases de données : Couchbase ! Veuillez noter que l'IDE prend en charge le service Couchbase Query et non le service Couchbase Analytics.

GoLand affiche les autorisations dans les DDL d'un objet

Prise en charge des permissions

GoLand gère les droits d'accès aux objets de bases de données et les affiche dans les DDL d'un objet. Cela fonctionne pour MySQL, PostgreSQL, Greenplum, Redshift et SQL Server.

GoLand affiche la valeur formatée dans un éditeur séparé

Éditeur séparé pour les valeurs de cellule

Nous avons amélioré l'éditeur séparé pour les valeurs des cellules :

  • Il affiche maintenant la valeur formatée même si la valeur n'est pas formatée correctement.
  • Il est possible de modifier la valeur dans la vue formatée et de la mettre à jour avec le formatage original sur une ligne XML et JSON.
  • Si la largeur de l'écran est cruciale pour votre flux, vous pouvez déplacer l'éditeur de valeurs de cellules en bas de l'éditeur de données.
  • Et ce panneau peut maintenant afficher des images !
Extracteur « One-Row » en action

Importation/exportation pour les bases de données

Nous avons ajouté deux nouveaux extracteurs pour vous aider à travailler plus facilement avec les données :

  • One-Row vous aidera à copier une colonne dans une chaîne séparée par des virgules.
  • SQL-Insert-Multirow génére une déclaration INSERT unique avec les nouvelles lignes à insérer.

De plus, il existe désormais une nouvelle option dans la configuration du format CSV : never quote values.