Nouveautés de GoLand

GoLand 2022.2 apporte de nouvelles fonctionnalités pour les génériques et go.work et la prise en charge des tests fuzz.

Les instructions SQL sont maintenant automatiquement détectées et vous bénéficiez d'une assistance au codage complète.

Cette nouvelle version de GoLand prend aussi en charge les connexions WebSocket et permet d'envoyer des requêtes GraphQL sur les protocoles HTTP et WebSocket.

Si vous préférez une approche interactive pour en savoir plus, nous vous invitons à consulter le tutoriel sur les Nouveautés de GoLand 2022.2 à partir de l'écran d'accueil.

Génériques

Action d'intention qui remplace une interface vide par any

Action d'intention pour convertir les interfaces vides en any

GoLand dispose à présent d'une inspection qui signale l'utilisation d'une interface vide comme type ou contrainte de type.

En outre, une action d'intention remplace interface{} par any. Vous pouvez remplacer toutes les interfaces vides d'un fichier depuis la fenêtre contextuelle de l'action d'intention.

Correctif rapide qui supprime les paramètres de type avec des listes de paramètres vides

Correctif rapide pour supprimer des paramètres de type avec des listes de paramètres vides

Les paramètres de type avec des listes de paramètres vides sont désormais signalés comme des erreurs. Nous avons ajouté un correctif rapide pour les supprimer.

Inspection pour les paramètres de type inutilisés

Inspection pour les paramètres de type inutilisés

Nous avons ajouté une nouvelle inspection qui signale les paramètres de type inutilisés. Ils sont grisés et un avertissement s'affiche lors du survol par le curseur.

Inspection pour l'union des interfaces avec les méthodes

Inspection pour l'union des interfaces avec les méthodes

Si vous tentez d'utiliser des interfaces avec des méthodes dans des unions, l'IDE signale maintenant une erreur

Inspection pour l'utilisation d'un paramètre de type comme contrainte

Inspection pour l'utilisation d'un paramètre de type comme contrainte

Si vous essayez d'utiliser un paramètre de type comme contrainte, GoLand affiche une erreur.

GoLand insère l'identifiant d'un paramètre de type lors de la création d'une méthode.

Saisie semi-automatique des paramètres de type lors de la saisie du récepteur d'une méthode

GoLand insère automatiquement l'identifiant d'un paramètre de type lorsque vous ajoutez un récepteur lors de la création d'une méthode.

Nouveau groupe Find Usages

Nouveau groupe Find Usages pour les paramètres de type

Nous avons ajouté un nouveau groupe Find Usages pour les génériques : Type parameter declaration.

Tests fuzz

Exécution de tests fuzz dans GoLand

Exécution des tests fuzz

GoLand permet maintenant d'exécuter des tests fuzz. Si vous cliquez sur l'icône en forme de triangle vert dans la gouttière à côté de votre test fuzz, vous verrez s'afficher plusieurs options d'exécution du test. Si le test échoue, l'entrée du corpus de départ ayant échoué sera écrite dans un fichier et placée dans le répertoire du package dans le dossier testdata.

Le chemin d'accès à ce fichier s'affiche également dans la console sous forme de lien cliquable. Si vous cliquez sur le lien, le fichier s'ouvre dans l'IDE avec une icône en forme de triangle vert tout en haut. Un clic sur cette icône lance go test avec l'entrée de corpus de départ défaillante.

From GoLand you can also run fuzz tests just like normal unit tests.

Correctif rapide pour remplacer le SDK Go par une version prenant en charge les tests fuzz

Correctif rapide pour changer le SDK Go

Dans l'IDE, le bouton d'exécution situé dans la gouttière ne sera plus visible si vous avez configuré un SDK Go qui ne prend pas en charge le fuzzing. Nous avons ajouté un correctif rapide qui permet de modifier le SDK Go si votre SDK actuel ne prend pas en charge le fuzzing.

Espaces de travail Go

Correctif rapide qui regroupe plusieurs directives use en une seule

Correctif rapide pour regrouper plusieurs directives use

Nous avons ajouté un correctif rapide qui regroupe plusieurs directives use dans un fichier go.work en une seule directive.

Go 1.19

Ajout d'un argument de chaîne de format pour Appendf

Prise en charge de fmt.Appendf

Cette version apporte la prise en charge de fmt.Appendf, GoLand peut donc maintenant identifier les verbes de formatage dans les chaînes. Par conséquent, la fonction Appendf bénéficie de toutes les fonctionnalités des fonctions de mise en forme, telles que l'action d'intention Add a format string argument.

Prise en charge de la contrainte de build unix

GoLand prend maintenant en charge la nouvelle balise de build unix, qui reconnaît tout système Unix ou de type Unix.

Ajout de loong64 à la liste Arch

Go 1.19 fournit une nouvelle architecture : loong64. Nous l'avons ajoutée à notre liste Arch dans Settings | Go | Build Tags & Vendoring.

Documentation rapide

Nous avons amélioré la documentation rapide :

  • Pour chacun des 25 mots-clés de Go, GoLand affiche désormais une infobulle explicite pour décrire la sémantique du mot-clé en question.
  • Nous affichons désormais des informations sur la direction des canaux. Ces données sont montrées dans des infobulles à trois endroits : lorsque vous survolez le mot-clé chan, sur les opérations d'envoi et de réception des canaux et sur toutes les références aux types de canaux.
  • Nous avons enrichi la documentation rapide pour iota d'informations supplémentaires sur son utilisation. Si une constante fait partie d'un groupe iota, la valeur est maintenant affichée dans la zone de saisie semi-automatique, même si la constante est définie implicitement.
  • Il y a aussi une nouvelle infobulle qui explique le fonctionnement des changements de type.
 
  • Si vous appelez Quick Documentation sur un paramètre de type, GoLand affichera une infobulle avec une brève explication du fonctionnement des génériques et un lien vers un tutoriel conçu par l'équipe Go.
  • L'infobulle pour les assertions de type contient maintenant des informations supplémentaires à leur sujet et propose des exemples.
  • Si vous placez le curseur à l'intérieur des accolades, GoLand vous fournit plus d'informations lors de l'initialisation de cartes, tableaux, tranches et structs.
  • Si vous placez le curseur sur un identifiant vide, GoLand affiche une infobulle contenant des informations sur l'identifiant vide et son fonctionnement.

Autres améliorations relatives à la syntaxe de Go

Optimisation des performances

GoLand n'analyse plus le sous-répertoire cache dans ~/go/pkg/mod, car il ne contient pas d'informations nécessaires au bon fonctionnement de l'IDE. Ce dossier peut être assez volumineux et nous pensons que son exclusion de l'analyse améliorera les performances.

Prise en charge de la directive go:linkname

Nous avons ajouté la prise en charge de la directive du compilateur go:linkname :

//go:linkname localname [importpath.name]

Elle demande au compilateur d'utiliser importpath.name comme nom de symbole du fichier objet pour la variable ou la fonction déclarée en tant que localname dans le code source.

Utilisation anormale de l'inspection iota

Utilisation anormale de l'inspection iota

Une nouvelle inspection dans GoLand vous avertit d'une utilisation anormale de iota.

Avertissement sur la tentative d'affectation d'une valeur à une constante nommée iota

Nous avons également activé l'inspection Reserved word used as name pour iota et pour d'autres constantes intégrées. L'inspection sera déclenchée si vous essayez d'affecter une valeur à une constante nommée iota, true ou false.

Avertissement lorsqu'un type a des méthodes à la fois sur les récepteurs de valeurs et de pointeurs

Inspection pour les méthodes sur les récepteurs de valeurs et de pointeurs

La documentation Go recommande que toutes les méthodes d'un type donné aient des récepteurs de valeurs ou de pointeurs.

Une nouvelle inspection vous avertit si un type a des méthodes à la fois sur les récepteurs de valeurs et de pointeurs.

Détection automatique de SQL

GoLand détecte les instructions SQL.

Les instructions SQL sont désormais automatiquement détectées et le langage est injecté dans chaque littéral de chaîne correspondant à un certain schéma. Lorsque vous injectez un langage dans un littéral de chaîne, vous bénéficiez d'une assistance au codage complète lors de la modification de ce littéral.

Paramètres de modification des schémas

Vous pouvez trouver les schémas, les modifier et ajouter les vôtres dans Settings | Editor | Language Injections.

Run Anything

L'action Run Anything

GoLand prend désormais en charge l'action Run Anything, ce qui permet de lancer rapidement des configurations d'exécution et de débogage, des applications, des scripts, des commandes, des tâches, ainsi que d'ouvrir des projets récents. Pour l'utiliser, appuyez deux fois sur Ctrl et commencez à taper dans la barre de recherche.

Client HTTP

Envoi d'un message via une connexion WebSocket

Prise en charge des points de terminaison WebSocket

GoLand prend désormais en charge les connexions WebSocket, ce qui permet aux utilisateurs de créer des requêtes, ainsi que d'envoyer et de recevoir des messages.

Envoi d'une requête GraphQL

Prise en charge des points de terminaison GraphQL

GoLand peut maintenant envoyer directement des requêtes GraphQL sur les protocoles HTTP et WebSocket. Pour http:// et https://, des requêtes HTTP simples sont utilisées, tandis que ws:// et wss:// sont délégués à l'exécuteur WebSocket.

Sélection d'un environnement d'exécution dans le client HTTP

Sélection d'un environnement d'exécution

Il existe maintenant un moyen de sélectionner un environnement d'exécution à partir de l'icône de lecture dans la gouttière. Pour activer cette fonctionnalité, cliquez sur Select Environment Before Run dans la liste déroulante Run with.

Développement à distance

La section Remote development sur l'écran d'accueil de GoLand

Nous avons mis à jour la section Remote development sur l'écran d'accueil de GoLand. C'est là que vous choisissez votre méthode préférée pour l'orchestration du backend. En outre, la fonctionnalité de transfert de port est désormais disponible pour les processus exécutés sur le terminal.

Vous trouverez plus de détails sur les nouvelles fonctionnalités de développement à distance dans cet article de blog.

Space

L'intégration avec Space est maintenant automatique dans GoLand

JetBrains Space est une plateforme de développement logiciel complète, qui vous fournit tout ce dont vous avez besoin en matière de gestion de projet, suivi de tickets, hébergement Git, révisions de code, intégration continue, référentiels de paquets et orchestration de backend à distance pour les IDE JetBrains via des environnements de développement.

L'intégration avec Space est maintenant fournie avec GoLand. With this first-class integration, you can browse Space projects and clone repositories, then start working on them directly. Lorsque vos modifications sont prêtes, vous pouvez créer une requête de fusion et réviser le code à partir de l'IDE.

Vous pouvez désormais gérer vos environnements de développement Space pour le développement à distance directement dans GoLand

Vous pouvez aussi gérer vos environnements de développement Space pour le développement à distance directement dans GoLand.

Si votre IDE est connecté à votre organisation Space, tous vos environnements de développement existants sont synchronisés. Vous pouvez créer un nouvel environnement de développement pour un référentiel et une branche et vous mettre à coder immédiatement, mettre un environnement de développement en veille prolongée pour réduire votre consommation de ressources ou simplement le supprimer une fois votre travail terminé.

Interface utilisateur

Fusion des fenêtres du projet

Action Merge All Project Windows sur macOS

Pour les utilisateurs de macOS, nous avons introduit la possibilité de fusionner toutes les fenêtres de projet ouvertes en les transformant en différents onglets d'une même fenêtre. Pour ce faire, cliquez sur Window | Merge All Project Windows.

Modification de la taille de la police à l'aide d'un raccourci

Raccourci clavier pour modifier la taille de la police

Nous inaugurons un raccourci clavier qui modifie la taille de police partout dans l'éditeur. Pour augmenter la taille de la police, appuyez sur Alt+Maj+. Pour la réduire, utilisez Alt+Maj+,

Lorsque vous effectuez un zoom avant ou arrière sur votre code dans l'éditeur, vous pouvez maintenant voir un indicateur qui affiche la taille de police actuelle et propose de rétablir la valeur par défaut.

Utilisation du champ Description lors de l'ajout d'un signet

Nouveau champ Description pour les signets mnémoniques

Nous avons intégré un champ Description dans la boîte de dialogue Add Mnemonic Bookmark afin de vous permettre d'ajouter une description facultative à votre signet. Pour ajouter un signet mnémonique, faites un clic droit sur la gouttière côté de la ligne que vous souhaitez ajouter au signet, puis choisissez l'option correspondante dans le menu contextuel. Vous pouvez également utiliser le raccourci Ctrl+F11.

Écran d'accueil

Barre de progression du clonage de référentiel

La barre de progression Cloning repository s'affiche maintenant directement dans la liste Projects.

La fenêtre contextuelle qui permet d'accéder aux paramètres de saisie semi-automatique du code

Accès facilité aux paramètres de saisie semi-automatique du code

Vous pouvez maintenant accéder aux paramètres Code Completion Settings à partir du bouton de menu aux trois points verticaux dans la fenêtre contextuelle de saisie semi-automatique du code.

Éditeur

Paramètres de saisie semi-automatique du code

Contrôler l'insertion automatique des parenthèses

Nous avons ajouté une option permettant d'activer ou de désactiver l'insertion automatique de parenthèses par l'IDE lors de la saisie semi-automatique du code.

Fenêtre Settings avec le nouveau menu déroulant Highlighting en bas à droite de l'éditeur

Modifier le style de mise en évidence pour les inspections

Vous pouvez modifier le style de mise en évidence des inspections à l'aide du nouveau menu déroulant Highlighting in editor dans Settings | Editor | Inspections.

Vous disposez ainsi d'options supplémentaires pour personnaliser les inspections. Par exemple, vous pouvez choisir de définir le niveau de gravité d'une inspection particulière sur Warning, tout en modifiant le style de mise en évidence en le définissant sur Error.

Docker

L'action Copy Docker Image

Copy Docker Image

Vous pouvez désormais copier des images d'un démon Docker vers un autre à l'aide de la nouvelle action Copy Docker Image, qui sauvegarde l'image dans un fichier, puis la transmet par push à la connexion choisie.

Connexion automatique à Docker lors du redémarrage de l'IDE

Désormais, GoLand se connecte automatiquement à Docker lorsque vous redémarrez l'IDE. Ce nouveau paramètre est activé par défaut dans Settings | Advanced Settings | Docker.

Intégration avec Colima et Rancher

GoLand est maintenant intégré avec Colima et Rancher et peut ainsi prendre en charge davantage d'options permettant d'établir des connexions à un démon Docker.

Bases de données

Importation de plusieurs fichiers CSV

Possibilité d'importer plusieurs fichiers CSV

Vous pouvez maintenant sélectionner plusieurs fichiers CSV et tous les importer en une fois.

Modes de résolution Script et Playground

Modes de résolution pour les bases de données

Lorsque vous travaillez avec des bases de données, vous disposez désormais de deux modes de résolution des fichiers : Playground et Script.

Playground est recommandé lorsque vous disposez d'un ensemble de requêtes non connectées et Script pour les requêtes ayant une logique séquentielle.

Autres améliorations

Importer des certificats SSL approuvés

GoLand peut maintenant vous aider à importer des certificats SSL approuvés à partir de magasins de confiance. Il utilisera automatiquement les certificats personnalisés spécifiques à l'environnement de votre entreprise. Vous n'avez rien d'autre à faire. Tout fonctionne automatiquement.

URL cliquables dans les fichiers JSON et YAML

Les fichiers JSON et YAML comportent désormais des références web insérées automatiquement dans les valeurs commençant par http:// et https://. Vous pouvez ouvrir ces liens dans un navigateur web et générer des requêtes dans le client HTTP.