Nouveautés de GoLand

GoLand 2020.1 apporte diverses mises à niveau pour la prise en charge des modules Go, ainsi que des fonctionnalités d'édition de code nécessitant peu ou pas d'interaction de l'utilisateur et un éventail étendu de saisie semi-automatique du code.

Par ailleurs, vous bénéficiez de nouvelles améliorations : inspections de code, correctifs rapides, etc. Citons par exemple le nouveau mode LightEdit, qui vous permet d'ouvrir un fichier dans l'éditeur de texte sans créer ou charger un projet, des vérifications intelligentes de l'orthographe et de la grammaire, et de nouvelles fonctions pour le développement web et le travail avec des bases de données.

Vous préférez apprendre de manière interactive plutôt qu'en lisant sur le sujet ? Suivez le didacticiel Fonctions de GoLand 2020.1 depuis l'IDE.

Améliorations des modules Go

Configuration de GOPROXY avec le choix automatiquement suggéré par GoLand entre les valeurs « direct » et « off » dans la nouvelle boîte de dialogue 'Environment Variables'.

Les variables d'environnement Go 1.13 GOPROXY, GOPRIVATE, GOSUMDB, GONOPROXY, et GONOSUMB sont maintenant prises en charge.

Configurez leur valeur par défaut à l'aide du modèle de projet Modules Go. Cliquez simplement sur l'icône de navigation Browse dans le champ Environment pour ouvrir la nouvelle boîte de dialogue Environment Variables.

Saisie semi-automatique du code pour le mot-clé « replace », le nom de la dépendance et le chemin d'accès au remplacement à l'œuvre.

La saisie semi-automatique du code pour les mots-clés go, module, require, replace, exclude, les noms des dépendances et les remplacements par des chemins locaux est disponible pour le fichier go.mod.

GoLang suggère d'importer le paquet.

Les refactorisations Rename et Move sont également opérationnelles. Lorsque vous renommez ou déplacez des répertoires référencés par des instructions replace, GoLand modifie le chemin d'accès dans le fichier go.mod en conséquence.

Utilisation de Find Usages pour trouver où le répertoire est utilisé dans le fichier go.mod et accéder à sa source.

Maintenant, vous pouvez également appeler Find Usages dans la vue Project View pour découvrir où le chemin vers un répertoire particulier est utilisé dans le fichier go.mod.

GoLang met en évidence les dépendances inutilisées et manquantes et suggère de les supprimer et de les récupérer à l'aide de correctifs rapides via Alt+Entrée

Dans GoLand 2020.1, vous pouvez récupérer les dépendances manquantes et supprimer les dépendances inutilisées via Alt-Entrée.

GoLand notifie que le commit inclut le fichier go.mod avec des remplacements vers les chemins d'accès locaux.

Enfin, la nouvelle version affichera une notification avant le commit s'il existe des remplacements par des chemins locaux, afin que vous ne les validiez pas par accident.

Des fonctionnalités de saisie automatique du code que vous n'avez pas besoin d'apprendre à utiliser

Complétion du modèle de gestion des erreurs en tapant « if » à l'intérieur de la fonction.

GoLand 2020.1 proposera if err != nil { ... } pour compléter un schéma de gestion d'erreur. Il vous suffit de saisir if à l'intérieur de l'expression.

Déclaration de « struct » et « interface » à l'aide de la saisie semi-automatique du code.

Définissez plus rapidement les types de struct et d'interface en tapant simplement le mot-clé type ou struct et interface.

« Fill Fields » ajoute des espaces après les deux points.

L'action Fill Fields ajoute des espaces après les deux-points lorsque les règles de mise en forme l'exigent. Elle ajoute également une virgule à la fin de l'instruction dans les déclarations de littéraux composites.

GoLand déplace le curseur derrière le crochet de fermeture.

Maintenant, lorsque vous travaillez avec des cartes, la saisie semi-automatique du code déplace le curseur derrière le crochet de fermeture une fois que vous avez complété un type de clé.

GoLand fournit des suggestions pour compléter les variables locales dans le type de retour de la fonction.

Pour le type de retour de la fonction, la saisie semi-automatique fournit des suggestions pour les variables locales et les valeurs nulles qui seront appropriées pour le type de valeur de retour correspondant.

Saisie semi-automatique intelligente (Ctrl+Maj+Espace)

GoLand suggère un pointeur vers l'initialiseur de la struct.

La saisie semi-automatique intelligente Smart Code Completion suggère un pointeur vers l'initialiseur de struct.

GoLand suggère un type compatible dans la déclaration.

Elle suggère également les types compatibles dans les déclarations et les cas de changement de type en premier.

GoLand suggère le type de la variable affectée dans la déclaration.

Dans une déclaration de type, elle propose le type de la variable attribuée.

GoLand fournit une liste de pointeurs possibles dans l'expression à l'aide de « Smart Code Completion ».

Enfin, elle fournit une liste de suggestions de pointeurs possibles dans l'expression.

Saisie semi-automatique basique (Ctrl+Espace)

GoLand complète le nom de la fonction dans le bloc de commentaire.

Merci de réserver votre meilleur accueil à la saisie semi-automatique basique du code pour les commentaires, qui facilite grandement la rédaction de la documentation ! Elle suggère des noms pour les déclarations du paquet actuel et des noms de paramètres pour les fonctions et les méthodes.

GoLand suggère des conversions dans l'expression.

En plus de cela, cette fonction suggérera des littéraux et des conversions.

Édition du code

GoLand ajoute des parenthèses autour du type « int » après que vous avez tapé la virgule pour ajouter le type de retour suivant.

GoLand 2020.1 ajoute des parenthèses autour des types de retour après la virgule lorsque vous écrivez la signature d'une fonction de retour à valeurs multiples.

GoLand a échappé les guillemets doubles après avoir collé le texte dans un littéral de chaîne.

Lorsque vous collez du texte dans un littéral de chaîne, l'IDE échappe les guillemets doubles.

Pour en savoir plus sur les fonctionnalités en arrière=plan, consultez l'article Les fonctionnalités d'édition de GoLang que vous ne connaissiez pas.

Prise en charge de Go 1.14

Différence entre GoLand 2019.3 et 2020.1 en matière de prise en charge du chevauchement d'interfaces.

Prise en charge des interfaces qui se chevauchent

Go 1.14 a décidé de prendre en charge l'intégration d'interfaces qui se chevauchent, et nous aussi ! Si vous décrivez différents aspects d'un type à l'aide d'interfaces qui se chevauchent, GoLand ne signalera pas les méthodes en doublon comme des erreurs.

Nouveaux paramètres dans la section « Go Modules ».

Mode vendoring automatique

Le mode vendoring est activé automatiquement dans Go 1.14 si la racine du module contient un répertoire vendor. Dans GoLand 2020.1, nous avons décidé d'implémenter un comportement similaire pour les versions Go 1.13 et antérieures. L'IDE résoudra automatiquement les importations vers le dossier vendor/ s'il est présent dans le module.

Mises à jour du débogueur

Exploration de goroutines avec des libellés de profileur dans la fenêtre « Debug ».

Prise en charge des libellés du profileur

Pour vous aider à distinguer plus facilement entre les goroutines au cours du débogage ou de l'analyse des principaux vidages de mémoire, nous leur avons ajouté des libellés de profileur.

Pour en savoir plus, lisez cet article : Comment trouver des goroutines au cours du débogage.

Choix de macros prédéfinies dans la nouvelle boîte de dialogue « Macros » pour le champ « Program arguments » dans « Run/Debug Configurations ».

Prise en charge des macros

Il est maintenant possible d'utiliser des macros en tant que paramètres pour exécuter ou déboguer votre application. Dans la boîte de dialogue Run/Debug Configurations, cliquez sur + dans les champs Go Tool ou Program arguments pour ouvrir la nouvelle boîte de dialogue Macros avec la liste des macros disponibles à utiliser.

De plus, vous pouvez maintenant stocker le fichier de configuration dans le projet. Sélectionnez l'options Store as project file en haut de la boîte de dialogue Run/Debug Configurations.

Saisie semi-automatique pour Postfix

Fonctionnement du modèle Postfix pour « .else ».

Le modèle Postfix Completion .else ajoute rapidement une déclaration if pour vérifier si l'expression est fausse.

Correctifs rapides

Conversion de Println en Printf

Changez un appel non formatant en appel formatant en un rien de temps, en appuyant sur Alt+Entrée.

« Create variable » suggère de compléter une expression avec une valeur attendue pour ce type.

Le correctif rapide Create variable affiche à présent une suggestion de type attendu pour faciliter la saisie de la bonne valeur.

Inspections de code

GoLand avertit des appels non valides de méthodes de pointeur sur des récepteurs non pointeurs et propose un correctif rapide.

Cette nouvelle inspection de code vous avertit des appels non valides des méthodes de pointeur sur des récepteurs non pointeurs et propose un correctif rapide.

GoLand avertit d'une éventuelle mauvaise utilisation d'un pointeur non sécurisé.

L'inspection de code Invalid conversions of uintptr to unsafe.Pointer vous avertit des utilisation incorrectes de uintptr et unsafe.Pointer pour convertir des entiers en pointeurs.

GoLand avertit qu'un argument de la fonction « Unmarshal » doit être du type pointeur.

L'inspection Unmarshal is called with incorrect argument analyse les appels à json.Unmarshal et aux fonctions similaires des paquets encoding/json, encoding/xml, et encoding/gob.

GoLand avertit que l'argument doit être du type pointeur.

L'inspection de code Locks mistakenly passed by value vous aide à éviter de copier accidentellement une valeur contenant un verrou.

Modèles dynamiques

Déclaration de « var » et « consts ».

Nous avons ajouté de nouveaux modèles pour vous aider à créer rapidement des groupes de déclarations. Citons notamment consts, vars, types, et imports. Lorsque vous utilisez l'un de ces modèles, GoLand ajoute des accolades autour des noms de déclarations.

Fonctionnement du modèle « fori ».

Le modèle fori insère le code réutilisable pour la boucle for classique.

Refactorisations

La refactorisation « Extract Method » conserve l'ordre d'origine après son exécution.

La refactorisation Extract Method conserve l'ordre d'origine des paramètres de la méthode et de la fonction parente.

« Rename » propose de renommer les utilisations à l'aide d'Alt+Entrée.

La refactorisation Rename détecte désormais automatiquement le renommage d'une déclaration. Par conséquent, si vous renommez manuellement une déclaration, l'IDE affichera une icône dans la gouttière pour vous proposer d'en renommer toutes les utilisations.

Navigation

« Find Usages » affiche les utilisations des méthodes de l'interface.

Navigate to implementations (Ctrl+Alt+B) et Navigate to Declaration ou Usages (Ctrl+B) affichent maintenant les résultats du projet actuel en premier.

De plus, l'action Find Usages (Alt+F7) recherche maintenant toujours les utilisations des méthodes de l'interface par défaut. Pour trouver les utilisations de la méthode actuelle comme auparavant, utilisez Alt+Shift+Ctrl+F7.

Améliorations de VCS

Nouvelle fenêtre d'outil « Commit » avec le diff dans l'éditeur.

Nouvelle fenêtre d'outil Commit

La nouvelle fenêtre d'outil Commit intègre maintenant les onglets Local Changes et Shelf. Cette fenêtre d'outil couvre toutes les tâches associées aux commits, comme la vérification de diffs, la sélection de fichiers et de morceaux de fichiers à valider, et la saisie d'un message de commit. Commit est une fenêtre d'outil verticale située sur la gauche de l'écran, ce qui laisse suffisamment de place à l'éditeur pour afficher le diff.

Fenêtre contextuelle « Branches »

Amélioration de la fenêtre contextuelle Branches

La fenêtre contextuelle Branches a été remaniée sur plusieurs points :

  • Nous avons ajouté un champ de recherche explicite qui vous permet de rechercher les branches distantes et locales existantes.
  • Vous pouvez maintenant utiliser le bouton Refresh pour mettre à jour les branches distantes existantes.
  • Des indicateurs de commit entrant (bleu) et sortant (vert) ont été ajoutés à la barre d'état.
Fenêtre « Rebasing Commits »

Boîte de dialogue Interactively Rebase from Here

Nous avons considérablement remanié Interactively Rebase from Here. C'est une boîte de dialogue qui vous permet de modifier, combiner et supprimer vos commits précédents, pour rendre votre historique de commits plus linéaire et plus compréhensible.

Pour appeler cette boîte de dialogue, accédez à l'onglet Log de la fenêtre d'outil Git, sélectionnez le plus ancien commit de la série de commits que vous souhaitez modifier, cliquez dessus avec le bouton droit de la souris et choisissez Interactively Rebase from Here.

Mises à jour des bases de données

Les résultats s'affichent dans l'éditeur de code.
  • Exécutez des fichiers de script et des snippets de code à l'aide de Run configurations. Cela vous permet d'exécuter plusieurs fichiers simultanément, de les réorganiser, d'en ajouter de nouveaux et d'exécuter d'autres programmes ou configurations avant le lancement.
  • Vous pouvez maintenant consulter les résultats dans l'éditeur de code. Cette option est désactivée par défaut. Pour l'activer, utilisez : Settings/Preferences | Database | General | Show output results in the editor.
  • Créez une configuration pour le tunnel SSH et utilisez-la dans de nombreuses sources de données ou même des projets.
  • Nous avons ajouté la possibilité d'exporter des données vers un fichier Excel.
  • Vous pouvez également choisir votre format de données préféré dans la liste déroulante de l'extracteur.

Développement web

GoLand propose de convertir le code existant en chaînage optionnel et/ou en coalescence nulle à l'aide d'Alt+Entrée.

Nouvelles intentions et inspections intelligentes pour JavaScript et TypeScript

Utilisez les nouvelles intentions et inspections intelligentes (Alt+Entrée) pour gagner du temps lors du codage ! Par exemple, vous pouvez désormais convertir rapidement le code existant en chaînage facultatif et/ou en coalescence nulle, la syntaxe introduite dans les dernières versions de JavaScript et TypeScript.

La fenêtre contextuelle Documentation indique le type de symbole et l'emplacement de sa définition.

Amélioration de la pertinence de la documentation rapide

Pour JavaScript et TypeScript, la fenêtre contextuelle Documentation affiche maintenant des informations plus utiles, notamment le type et la visibilité du symbole ainsi que l'emplacement où ce symbole est défini.

Autres modifications

Un fichier ouvert dans l'éditeur de texte sans créer ou charger un projet via le nouveau mode « LightEdit ».
  • JetBrains Mono, une nouvelle police de caractères créée par JetBrains, est disponible par défaut. Pour en savoir plus sur la police de caractères, rendez-vous sur cette page.
  • Grazie, une extensionqui propose des vérifications d'orthographe et de grammaire intelligentes pour le texte que vous écrivez dans l'IDE, est intégrée par défaut.
  • Le nouveau mode LightEdit vous permet d'ouvrir un fichier dans l'éditeur de texte sans créer ni charger de projet. Pour essayer cette nouvelle fonctionnalité, vous devez d'abord créer un lanceur de ligne de commande à partir de Tools | Create Command-line Launcher, comme décrit ici (si vous utilisez l'application JetBrains Toolbox App, la procédure sera légèrement différente). Pour plus d'informations sur l'ouverture d'un fichier, la comparaison/fusion des fichiers et même l'exécution des inspections de code, voir cette section d'aide Web.
  • Nous avons ajouté un nouveau mode Zen pour vous aider à vous concentrer totalement sur votre code. En résumé, ce mode combine le mode sans distraction et le mode plein écran. Pour l'activer, cliquez sur View | Appearance | Enter Zen Mode, ou sélectionnez-le dans la fenêtre contextuelle Quick Switch Scheme (Ctrl+` | View mode | Enter Zen Mode).
  • External Documentation amène maintenant à https://pkg.go.dev au lieu de https://godoc.org.
  • Nous proposons de nouveau la palette de couleurs Default, mais sous un nouveau nom, Classic Light.