Nouveautés de GoLand

GoLand 2021.1 vous permet de générer et d'exécuter votre programme à distance via Docker, SSH et WSL 2, d'utiliser les fonctionnalités nouvellement prises en charge de Go 1.16, notamment //go:embed, de générer rapidement du code à partir de JSON et de traiter plus facilement les erreurs grâce à de nouveaux correctifs rapides.

GoLand est plus qu'un simple IDE pour Go : en plus des fonctionnalités permettant de travailler avec le code Go, il apporte de nouvelles fonctionnalités pour JavaScript, TypeScript et les bases de données.

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

Run Targets

Configuration des cibles créées dans la fenêtre « Run Configuration »

Dans GoLand 2021.1, vous pouvez développer sur votre machine, avec tout le code source disponible localement, et cibler des ordinateurs distants pour exécuter votre code. Actuellement, l'IDE prend en charge Docker, SSH et WSL 2 (sous-système Windows pour Linux).

Dans Settings, cliquez sur Run | Manage Targets…, puis sur l'icône Add (+), et sélectionnez les cibles avec lesquelles vous souhaitez travailler. Après avoir terminé la configuration, vous devez spécifier la configuration d'exécution Run Configuration dans Run | Edit Configurations... et sélectionner la cible avec laquelle vous voulez travailler.

Go 1.16

Ajout d'un dossier à la directive embed

Prise en charge de //go:embed

À partir de Go 1.16, vous pourrez intégrer des fichiers et des répertoires dans un binaire Go au moment du build.

Embedding works on a few types of variables: string, []byte, and embed.FS. Vous devez déclarer ces variables au niveau supérieur de votre paquet. Enfin, vous devez ajouter la directive //go:embed pour que l'intégration fonctionne.

GoLand fournit la mise en évidence syntaxique du code, la navigation depuis les références à l'intérieur de la directive embed vers les fichiers et les dossiers de votre projet, la refactorisation Rename, Find Usages, la saisie semi-automatique du code et plusieurs inspections de code. Par exemple, GoLand vous avertira si vous essayez d'intégrer des fichiers dans une variable du mauvais type.

Remplacement de la méthode « Fatal » par la méthode « Error » à l'aide d'un correctif rapide

Détection des utilisations incorrectes de (t/b).Fatal

GoLand vous avertit des appels non valides de la méthode testing.T Fatal au sein d'une goroutine créée pendant le test.

Le correctif rapide dédié réécrira le code appelant t.Fatal (ou une méthode similaire) afin qu'il signale l'échec du test avec t.Error et quitte la goroutine de manière anticipée à l'aide d'une instruction return.

L'IDE affiche un avertissement et fournit un correctif rapide approprié pour résoudre le problème.

Détection des utilisations incorrectes de asn1.Unmarshal

Dans Go 1.16, go vet détecte les utilisations incorrectes de asn1.Unmarshal, en s'assurant que la valeur dans laquelle une tranche d'octets est unmarshallée n'est pas nulle.

GoLand 2021.1 fournit une vérification similaire avec un correctif rapide pour résoudre ce problème.

Travailler avec JSON

Collage de données JSON dans l'éditeur par copier-coller

Générez un struct avec des champs et des balises à partir de JSON en un rien de temps, en copiant-collant simplement les données JSON dans l'éditeur.

Si vous souhaitez ajuster le JSON avant de générer un struct, appuyez sur Alt+Entrée pour appeler l'intention Generate type from JSON. GoLand ouvrira la fenêtre Generate Go type from JSON avec le JSON copié. Vous pouvez l'ajuster comme vous le souhaitez dans la fenêtre. Appuyez ensuite sur le bouton Generate : votre struct est prêt. Bien entendu, il est également possible de coller manuellement le JSON dans la fenêtre.

En outre, il est possible de convertir le JSON à l'intérieur d'un struct vide déjà existant. Pour ce faire, il suffit de cliquer sur ce struct vide et d'appeler l'action d'intention Generate struct fields from JSON en appuyant sur Alt+Entrée ou via le menu Generate.

En outre, GoLand vous avertira si le code JSON utilisé dans la fenêtre Generate Go type from JSON n'est pas valide.

Générer un struct à partir de données JSON via la fenêtre « Generate Go type from JSON »

Il est bien plus facile désormais de créer des balises JSON et XML pour tous les champs exportés du struct.

Si vous utilisez Alt+Entrée pour appeler Add key to tags sur le struct ou sur l'un de ses champs, GoLand ajoute une balise à tous les champs du struct comportant un nom de champ. Si vous souhaitez modifier le style du nom du champ pour toutes les balises, appuyez à nouveau sur Alt+Entrée sur n'importe quelle clé et choisissez Change field name style in tags. Les styles nomChamp, NomChamp, nom-champ et nom_champ sont pris en charge.

Vous pouvez actualiser toutes les valeurs des balises en une seule fois avec l'action d'intention Update key value in tags. Appuyez sur Alt+Entrée sur n'importe quelle valeur de balise dans votre struct et GoLand ajoutera des carets à la fin des valeurs de balise dans chaque champ.

De plus, l'IDE propose une saisie semi-automatique pour les jetons connus à l'intérieur des valeurs de balises fournies par le SDK pour le code JSON, XML et ASN.1.

Nouveau style de fichier JSON pris en charge

Enfin, GoLand 2021.1 prend en charge le format JSON Lines délimité par de nouvelles lignes, utilisé pour travailler avec des journaux et des données structurées. L'IDE reconnaît les types de fichiers .jsonl, .jslines, .ldjson et .ndjson.

Dans ce format, les fichiers contiennent plusieurs lignes et chaque nouvelle ligne est un objet JSON séparé par un caractère de nouvelle ligne. Les virgules ne sont pas requises au début ni à la fin des lignes et il n'est pas non plus nécessaire de placer l'intégralité du contenu du fichier entre crochets ou accolades.

Gérer facilement les erreurs

L'inspection de code « Unhandled Error » à l'œuvre avec le correctif rapide « Wrap error handling in a closure »

Nous avons ajouté toute une gamme de correctifs rapides à l'inspection de code Unhandled Error :

  • Le correctif rapide Handle error affecte les résultats des appels aux variables et génère une vérification if error not nil.
  • Le correctif rapide Wrap error handling in a closure, qui est disponible pour les instructions defer et go, produit un code similaire à Handle error mais enveloppe tout dans des accolades.
  • Nous avons étendu le domaine d'application d'Ignore explicitly pour inclure les déclarations defer et go. Le correctif rapide consiste à affecter les résultats de l'appel à des variables vierges et à envelopper le tout dans des accolades.

Autres correctifs rapides

Conversion d'un octet en chaîne de caractères via le nouveau correctif rapide

Correctif rapide pour l'incompatibilité de type dans les littéraux composites

Nous avons élargi le champ d'application du correctif rapide qui traite l'incompatibilité de type. Il suggère désormais d'implémenter une interface et de convertir vers le type attendu dans les littéraux composites également.

Création d'un type avec tous les champs nécessaires à l'aide du nouveau correctif rapide

Le correctif rapide Create Type génère les champs manquants

Non seulement le correctif rapide Create Type propose de créer un type lorsque GoLand remarque que vous en utilisez un qui n'a pas encore été défini, mais il crée également des champs pour vous.

Génération de getters et setters à partir du struct dans la fenêtre « Select Fields »

Générer tous les getters et setters en une fois

Générer les méthodes get et set pour chaque champ dans d'énormes structs peut être assez fastidieux. Vous pouvez maintenant les générer pour l'ensemble du struct en une seule fois.

Appuyez sur Alt+Entrée sur un nom de champ du struct, puis choisissez Generate getter and setters dans le menu déroulant. GoLand ouvrira la fenêtre Select Fields, dans laquelle vous pourrez générer des méthodes get et set pour tous les champs ou seulement pour ceux dont vous avez besoin.

Refactorisations

Extraction d'un type d'une structure existante

Refactorisation Extract Type

La refactorisation Extract Type vous permet d'extraire un type à partir d'un type existant ou de convertir un type de structure anonyme en un type nommé. Appuyez sur Ctrl+Alt+Maj+T pour l'appeler.

Modules Go

Renommer un module via la refactorisation « Rename »

Refactorisation Rename pour le fichier go.mod

Il est parfois nécessaire de renommer un module une fois que vous avez suffisamment avancé sur le projet et terminé tout le travail initial. Nous avons donc ajouté la refactorisation Rename au fichier go.mod. Elle vous permet de renommer le module en toute sécurité, sans devoir effectuer une recherche et un remplacement dans l'arborescence du projet pour remplacer l'ancien nom du module.

Appelez la refactorisation Rename sur le nom du module avec Maj+F6. GoLand ouvrira la fenêtre Rename, dans laquelle vous pourrez modifier le nom actuel, choisir de le modifier ou non dans les commentaires et les chaînes de caractères, et prévisualiser les résultats de la refactorisation. Depuis l'onglet Refactoring Preview, vous pouvez naviguer vers toutes les occurrences de ce nom de module. Vous pouvez utiliser « undo » pour annuler rapidement toutes les modifications apportées par la refactorisation.

Saisie semi-automatique pour Postfix

Nouvelle saisie semi-automatique Postfix à l'œuvre

Nouvelle saisie semi-automatique Postfix varCheckError

Tapez .varCheckError après un identifiant qui renvoie une erreur et l'IDE ajoutera automatiquement des noms de variables par défaut et renverra l'erreur à partir de la fonction.

Mise en forme

Les paramètres « Import »

L'outil de mise en forme intégré peut désormais regrouper les importations de la même manière que goimports -local.

Pour cela, rendez-vous dans Settings | Editor | Code Style | Go | Imports et activez le regroupement des importations. Vous pouvez ensuite préciser quelles importations doivent être regroupées dans des blocs distincts.

Exécuter et Déboguer

Les paramètres de « Process Elevation »

GoLand 2021.1 vous permet d'exécuter une session sudo étendue. Lors de la première exécution, GoLand vous demandera si vous souhaitez maintenir l'exécution de sudo ou l'arrêter immédiatement. Si vous souhaitez modifier votre réponse, cliquez sur Settings | Appearance & Behavior | System Settings | Process Elevation.

Notez qu'en activant cette option, vous donner accès à votre système à GoLand et à l'ensemble des plugins tiers.

Saisie du code

Résultats de la saisie semi-automatique du code avec activation de l'assistance par machine learning

Nous avons activé la saisie semi-automatique par machine learning. Cette modification marque les premières heures de la saisie semi-automatique du code basée sur l'apprentissage automatique (ML), qui est une alternative au mécanisme de classement standard.

Cochez Mark position changes in completion popup dans Settings | Editor | General | Code Completion pour signaler les options reclassées par la saisie semi-automatique par machine learning avec des icônes de flèche vers le haut ou le bas dans la liste de saisie semi-automatique.

Améliorations de l'interface utilisateur

Changement du thème de l'IDE à l'aide du nouveau menu accès rapide

Menu Accès rapide

Le widget Configuration, auparavant situé en bas à gauche de l'IDE, a été remplacé par un menu accès rapide. Ce nouveau menu s'affiche en haut à droite. Appuyez sur l'icône d'engrenage pour changer de thème ou de modèle de clavier, naviguer vers des plugins ou accéder aux paramètres.

Accès rapide aux projets récents sous Windows

Accès rapide aux projets récents sous Windows depuis le menu « Démarrer »

Vous pouvez désormais accéder à vos projets récents en cliquant droit sur l'icône GoLand dans la barre des tâches ou dans le menu Démarrer de Windows.

Nouvel affichage des infobulles

Affichage des infobulles amélioré

Les infobulles s'affichent maintenant les unes après les autres pour empêcher leur chevauchement.

Les paramètres « Typography »

Variantes de police de caractères

Vous pouvez désormais sélectionner les variantes de police dans le volet Settings | Editor | Font.

Autres changements

Nouvel aperçu de navigateur intégré en action

Aperçu HTML intégré

Nous avons ajouté un nouvel aperçu de navigateur intégré pour prévisualiser rapidement les fichiers HTML. Toute modification apportée aux fichiers HTML dans l'IDE, ainsi que dans les fichiers CSS et JavaScript associés, sera immédiatement enregistrée et l'aperçu sera instantanément mis à jour.

Pour ouvrir l'aperçu, cliquez sur le logo GoLand dans le widget situé en haut à droite de l'éditeur.

Modification de la taille d'un onglet dans l'éditeur

Agrandir les onglets de l'éditeur dans la vue fractionnée

Vous travaillez sur plusieurs fichiers simultanément dans un éditeur fractionné et vous avez besoin de plus d'espace ? Double-cliquez sur l'onglet avec lequel vous travaillez pour agrandir la fenêtre de l'éditeur correspondante. Pour ramener cet onglet à sa taille initiale, il vous suffit de double-cliquer à nouveau dessus.

Plugin « Makefile Language » installé sur la page « Plugins » de l'IDE

Le plugin Makefile Language fonctionne par défaut

Le plugin Makefile Language (auparavant un plugin tiers), qui permet la prise en charge du langage GNU Make, est maintenant intégré par défaut. À partir de GoLand 2021.1, vous bénéficierez automatiquement de la mise en évidence de la syntaxe, de la documentation rapide, de la fonctionnalité Find Usages pour les cibles et de diverses actions de navigation et de saisie semi-automatique du code pour Makefile !

Code With Me

« Code With Me » en action

Code With Me, un nouveau service de JetBrains pour le développement collaboratif et la programmation en binôme à distance, est désormais intégré à GoLand.

Définissez les conditions d'accès pour votre projet et partagez le lien avec vos invité·es. Vos pairs n'ont même pas besoin d'avoir installé leur propre IDE pour collaborer avec vous. Les appels audio et vidéo intégrés et la messagerie instantanée permettent aux équipes de discuter du code, de partager des connaissances et de coopérer plus efficacement.

Pour les entreprises recherchant plus de sécurité, Code With Me sur site peut être installé et fonctionner en toute sécurité sur leur réseau privé.

Pour en savoir plus sur l'utilisation de Code With Me avec votre licence JetBrains actuelle, consultez la page Tarifs.

Docker

Saisie semi-automatique du code dans le champ « Run Options »

Configurations Run/Debug améliorées

Nous avons apporté plusieurs améliorations à la boîte de dialogue Run/Debug Configuration :

  • Pour ajouter toutes les options de build nécessaires, cliquez sur Modify options. Pour ajouter des options d'exécution, cliquez sur Modify. L'IDE valide maintenant chaque option pour s'assurer qu'elle est compatible.
  • Pour Docker Compose, nous prenons en charge toutes les options existantes, notamment l'option de déclaration des fichiers de variables d'environnement (.env).
  • Pour les fichiers Dockerfile, vous n'avez pas besoin de vous souvenir de toutes les commandes d'exécution car la saisie semi-automatique du code fonctionne dans le champ Run Options.
  • Pour les Images Docker, vous pouvez utiliser la saisie semi-automatique du code afin d'indiquer le nom de l'image dans le champ Image ID ou dans le champ name.
L'IDE génère l'image à l'aide de BuildKit

Prise en charge de BuildKit

Nous inaugurons une prise en charge expérimentale pour BuildKit, qui accélère considérablement la construction des projets. Vous pouvez activer cette option dans Run/Debug Configurations en cliquant sur Modify options puis en cochant Enable BuildKit (experimental).

Il vous suffit de cliquer sur l'icône de marteau à côté du nom de l'étape et l'IDE génèrera l'image à l'aide de BuildKit. Si vous ajoutez la section Run dans Run/Debug Configurations, l'icône changera. En cliquant dessus, non seulement vous génèrerez une image, mais vous exécuterez aussi un conteneur.

Pliage des étapes dans l'éditeur

Améliorations de l'interface utilisateur dans les Dockerfiles à plusieurs étapes

Si vous utilisez plusieurs instructions FROM dans votre Dockerfile, chaque instruction FROM débute un nouvel étage. Dans GoLand 2021.1, vous pouvez désormais plier les étapes, qui seront alors distinctement séparées par une ligne.

Arrêter Docker avec le bouton dédié dans la fenêtre d'outils Services

Annuler l'exécution de Docker

Si vous décidez d'arrêter un Dockerfile en cours d'exécution, vous pouvez tout simplement le faire dans la fenêtre d'outils Services. Sélectionnez l'élément en cours d'exécution, appelez le menu contextuel et cliquez sur Stop Deploy.

Saisie semi-automatique du code dans la fenêtre « Bind Mounts »

Variables d'environnement et macros pour les montages Docker

Lors de l'utilisation de Bind mounts, vous pouvez désormais saisir plus rapidement un chemin d'accès à un répertoire sur la machine hôte. Le mécanisme de saisie semi-automatique vous permet de sélectionner les macros et les variables d'environnement pour l'option Bind mount dans Run/Debug Configurations.

Saisie semi-automatique pour les images dans un Dockerfile

Saisie semi-automatique des images dans les Dockerfiles

Dernier ajout, mais non des moindres : la saisie semi-automatique pour les noms d'image.

Modifications relatives au développement web

Infobulle avec documentation MDN dans l'éditeur

Documentation MDN intégrée

La documentation MDN est maintenant intégrée à GoLand. Cela permettra d'éviter les problèmes de connectivité avec le site Web de MDN et d'accélérer l'affichage de la documentation intégrée à l'éditeur dans vos fichiers HTML, CSS et JavaScript. La documentation intégrée à l'éditeur sera également plus complète. Par exemple, des détails sur les versions de navigateur prises en charge pour les API JavaScript s'affichent désormais.

Stylelint en action avec le correctif rapide correspondant

Amélioration de la prise en charge de Stylelint

Il est maintenant plus facile d'inspecter votre code CSS avec Stylelint. Vous pouvez désormais corriger les problèmes avec ce linter populaire en quelques clics. Survolez un problème dans votre fichier ou placez le curseur dessus et appuyez sur Alt+Entrée, puis sélectionnez Stylelint: Fix current file.

Par ailleurs, vous pouvez désormais spécifier un chemin d'accès au fichier de configuration sous le champ correspondant dans Settings | Languages & Frameworks | Style Sheets | Stylelint.

Fenêtre contextuelle de documentation pour un sélecteur

Spécificité des sélecteurs pour CSS

When working with style sheets, you can now check the specificity of your selectors – just hover over a selector that you want to check. Vous pouvez également cliquer sur un sélecteur et appuyer sur Ctrl+Q pour voir ces informations dans la fenêtre contextuelle Documentation.

Travailler avec des bases de données

Un nouveau champ « ORDER BY » dans une table

Amélioration du tri

Nous avons amélioré le tri des données :

  • Un nouveau champ ORDER BY fonctionne de manière similaire au champ WHERE (qui s'appelait Filter auparavant) : entrez une clause fonctionnelle afin qu'elle soit appliquée à la requête du tableau.
  • Le tri n'est pas "empilé" par défaut. Cela signifie que si vous cliquez sur le nom d'une colonne pour trier les données, le tri basé sur les autres colonnes sera supprimé. Si vous préférez utiliser le tri empilé, cliquez sur le nom d'une colonne tout en appuyant sur la touche Alt.
  • Si vous souhaitez utiliser le tri du côté client (GoLand ne réexécutera pas la requête et ne triera pas les données dans la page actuelle), décochez Sort via ORDER BY .
  • Il est également possible d'ouvrir des tables avec un tri prédéfini appliqué à la clé primaire numérique.
« Select first N rows from a table » dans l'éditeur

Modèles dynamiques contextuels

C'est la solution que nous proposons pour tous ceux qui souhaitent générer des instructions simples directement depuis l'explorateur de base de données. Les modèles dynamiques généraux couvrent de nombreux cas dans lesquels vous devez rédiger rapidement une requête simple. Mais nous comprenons aussi que lorsque vous êtes dans le contexte de l'explorateur de base de données et que vous vous concentrez déjà sur l'objet dont vous avez besoin, il peut y avoir une meilleure façon d'obtenir une requête simple utilisant cet objet.

Select first N rows from a table ressemble à un modèle général (et peut être utilisé comme tel). Comme cette syntaxe spécifique ne peut pas être utilisée dans toutes les bases de données, les dialectes correspondants sont définis pour le modèle. La principale différence qui permet d'appliquer ce modèle dans l'explorateur de base de données est l'expression spéciale dbObjectName, utilisée pour la variable $table$.

Ajout d'autorisations à un objet dans la nouvelle fenêtre

Interface Utilisateur pour les autorisations

Nous avons ajouté une interface utilisateur pour l'édition des autorisations lors de la modification des objets.

La fenêtre Modify user, que vous pouvez appeler sur un utilisateur dans l'explorateur de base de données avec Ctrl+F6, dispose désormais d'une interface utilisateur pour ajouter des autorisations aux objets.

Ceci est disponible pour PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server et Sybase.