Nouveautés de GoLand

GoLand 2023.2 améliore l'intégration avec les modules Go et fournit des refactorisations pour la migration des paramètres de fonctions vers les récepteurs de méthodes et inversement, ainsi que la prise en charge de errors.Is et errors.As.

Dans cette version, vous trouverez également le nouveau plugin AI Assistant, l'intégration de GitLab et le plugin Kafka.

Enfin, nous avons apporté des améliorations à l'intégration de Docker et au plugin Kubernetes.

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

Modules Go

Paramètres des modules Go dans GoLand

Option pour télécharger les modules automatiquement

Il est maintenant possible de télécharger les modules Go automatiquement à l'ouverture du projet et après chaque modification du fichier go.mod. Cette fonctionnalité est activée par défaut, mais vous pouvez la désactiver à tout moment dans Settings | Go | Go Modules.

Nouveau correctif rapide pour mettre à jour les dépendances dans les fichiers go.mod

Actions d'intention pour mettre à jour les dépendances dans les fichiers go.mod

Nous avons ajouté plusieurs actions d'intention et inspections pour accélérer la mise à jour des dépendances dans les fichiers go.mod.

Lorsque vous ouvrez votre fichier go.mod, GoLand met maintenant en évidence les dépendances obsolètes. Vous pouvez survoler les versions mises en évidence d'un paquet donné et utiliser un correctif rapide pour le mettre à jour. Vous pouvez aussi faire la mise à jour toutes les dépendances vers leurs derniers correctifs ou leurs dernières versions majeures et une option permet de ne mettre à jour que les dépendances directes.

L'option de désactivation du vendoring dans GoLand

Option de désactivation du vendoring

Vous pouvez maintenant désactiver le vendoring au niveau d'un projet, par exemple si vous avez un monorepo contenant un dossier vendor utilisé par un autre langage. Vous pouvez désactiver le vendoring lors de la création d'un nouveau projet ou à tout autre moment à partir de Settings | Go | Go Modules.

Refactorisations

Utilisation du paramètre de la fonction Migrate pour refactoriser le récepteur d'une méthode dans GoLand

Migration des paramètres de fonctions et des récepteurs de méthodes

GoLand propose deux nouvelles refactorisations : Migrate function parameter to method receiver et Migrate method receiver to function parameter.

La refactorisation Migrate function parameter to method receiver permet de convertir une fonction en méthode d'un type. Migrate method receiver to function parameter fait l'inverse ; il convertit une méthode d'un type en fonction.

Gestion des erreurs

GoLand dispose maintenant d'un correctif rapide qui suggère de convertir les comparaisons d'erreurs directes en utilisations de errors.Is

Prise en charge de errors.Is et errors.As

Nous avons mis en place deux inspections qui mettent en évidence les cas dans lequels errors.Is ou errors.As doivent être utilisés. Des correctifs rapides vous aident à refactoriser le code existant pour utiliser errors.Is ou errors.As.

La première inspection met en évidence les comparaisons directes d'erreurs. Dans Go 1.13 et ses versions ultérieures, les erreurs peuvent être encapsulées à l'aide de la fonction fmt.Errorf avec le verbe %w ; la comparaison directe des erreurs à l'aide de la vérification d'égalité peut alors échouer sur les erreurs encapsulées.

La meilleure façon de vérifier la présence d'une erreur spécifique est d'utiliser la fonction errors.Is de la bibliothèque standard. GoLand dispose désormais d'un correctif rapide qui propose de convertir les comparaisons directes d'erreurs en occurrences de errors.Is.

GoLand dispose maintenant d'un correctif rapide qui suggère de convertir les assertions de type et les commutateurs de type portant sur des erreurs en utilisations de errors.As

La deuxième inspection met en évidence les assertions de type et les commutateurs de type portant sur des erreurs, par exemple err.(*MyErr) ou switch err.(type), car ils peuvent également échouer sur des erreurs encapsulées.

La méthode de préférence dans Go 1.13 et ses versions ultérieures consiste à utiliser errors.As. Notre nouveau correctif rapide propose de convertir les assertions de type et les commutateurs de type portant sur des erreurs en occurrences de errors.As.

Go 1.21

Prise en charge de min, max et clear

GoLand 2023.2 fournit une prise en charge de base pour min, max et clear, de nouvelles fonctions introduites dans Go 1.21.

Améliorations pour make

Options de saisie semi-automatique pour les arguments de fonction make

Saisie semi-automatique pour les arguments d'une fonction make

Nous avons ajouté la saisie semi-automatique du code sensible au type pour les appels de fonction make.

Notification de GoLand en cas d'utilisation incorrecte d'une fonction make

Vérifications pour les es arguments de fonction make

GoLand peut désormais détecter les erreurs et les arguments redondants dans les fonctions make. Un correctif rapide permet également de supprimer les arguments redondants. Vous pouvez y accéder via Alt+Entrée, comme d'habitude.

Autres fonctionnalités relatives à Go

Le récepteur s'affiche comme premier paramètre dans les suggestions de saisie semi-automatique lorsqu'une méthode est appelée directement sur un type

Suggestion de saisie semi-automatique du type de récepteur pour les expressions de méthode

Lorsque vous appelez une méthode directement sur un type, vous devez fournir le type de récepteur comme premier argument. GoLand affiche désormais le récepteur comme premier paramètre dans les suggestions de saisie semi-automatique.

Message d'erreur de GoLand en cas d'arguments de type manquants dans l'instanciation d'un type

Génériques : amélioration du message d'erreur pour les arguments manquants

Le message d'erreur en cas d'arguments de type manquants dans l'instanciation d'un type indique désormais explicitement ce qui ne va pas.

L'aperçu de l'action d'intention Wrap error handling in a closure dans GoLand

Aperçu pour l'action d'intention Wrap error handling in a closure

Nous avons ajouté un aperçu pour l'action d'intention Wrap error handling in a closure. Vous pouvez désactiver la fonction d'aperçu en appuyant sur Ctrl+Q lorsque la liste des actions d'intention est ouverte. Elle restera désactivée jusqu'à ce que vous utilisiez ce même raccourci pour la réactiver.

Avertissement de GoLand pour une condition redondante dans une boucle for

Avertissement concernant les conditions redondantes dans les boucles for

GoLand affiche désormais un message d'avertissement pour les conditions redondantes dans les boucles for. Un correctif rapide permet également de supprimer la condition redondante.

AI Assistant

Suggestions du plugin AI Assistant pour améliorer le code

AI Assistant Accès limité

Cette version de GoLand se distingue par l'apport d'une nouveauté majeure : l'AI Assistant. Parmi les fonctionnalités d'IA fournies par l'AI Assistant vous trouverez notamment un chat, la rédaction automatique de commentaires de documentation, la suggestion de noms et la génération de messages de commits.

L'AI Assistant est alimenté par le service JetBrains AI, qui peut vous connecter à OpenAI. Nous proposerons la connexion à d'autres fournisseurs de modèles de langages par la suite. Pour accéder aux fonctionnalités d'IA de l'assistant, vous devez installer le plugin JetBrains AI et vous connecter au service via votre compte JetBrains. La disponibilité du service JetBrains AI peut varier initialement. Pour plus d'informations sur l'AI Assistant et les instructions pour y accéder, consultez cette page.

Docker

Aperçu du contenu d'une couche d'image Docker dans la vue Services

Aperçu des fichiers dans les couches d'images Docker

Vous pouvez maintenant accéder facilement aux contenus d'une couche d'image Docker et en voir un aperçu dans la fenêtre d'outils Services. Sélectionnez l'image dans la liste, sélectionnez Show layers et cliquez sur Analyze image for more information. Une liste des fichiers stockés dans la couche s'ouvre alors. Pour ouvrir un fichier sélectionné dans l'éditeur, faites simplement un clic droit sur celui-ci puis en cliquez sur Open File (ou Download File pour les binaires).

Configuration du conteneur Docker pour qu'il s'exécute en tant que tâche Before Launch

Configurer le conteneur Docker pour qu'il s'exécute en tant que tâche Before Launch pour les configurations d'exécution

Il est désormais possible de définir une configuration d'exécution Docker pour qu'elle s'exécute avant une autre configuration en la désignant comme tâche Before Launch. L'IDE attendra que le conteneur en cours d'exécution soit prêt avant de lancer la configuration d'exécution suivante. Pour configurer une file d'attente, créez d'abord la configuration d'exécution Docker requise, puis ajoutez-la au conteneur via Modify options | Add before launch task | Run configuration.

Plugin Kubernetes

Paramètres de Kubernetes affichés dans GoLand

Prise en charge de plusieurs fichiers kubeconfig au sein d'un même projet

Nous inaugurons une fonctionnalité qui permet de configurer plusieurs fichiers kubeconfig au sein d'un même projet. Cela simplifie la gestion de multiples clusters ou le travail avec des environnements sur plusieurs clusters dans le même projet. Pour configurer les fichiers, allez dans File | Settings | Build, Execution, Deployment | Kubernetes.

Journaux de déploiement Kubernetes affichés dans GoLand

Possibilité de consulter les journaux d'activité du déploiement

Vous pouvez maintenant consulter les journaux d'activité des déploiements dans les clusters Kubernetes dans la fenêtre d'outils Services. Faites un clic droit sur Deployment dans l'arbre, puis sélectionnez Follow Log ou Download Log dans le menu contextuel.

Performances

Nouvel outil pour générer facilement des index partagés

Nous proposons un nouvel outil en ligne de commande pour créer et télécharger rapidement des index partagés. Il est conçu pour faciliter le travail d'équipe et ne plus perdre de temps à indexer localement de grands projets. Cet outil simplifie le processus pour votre équipe en permettant de créer des index partagés en quelques clics, sans scripts ou services supplémentaires.
En savoir plus

Contrôle de version

Sélection de lignes pour un commit

Option pour effectuer un commit pour des lignes de code spécifiques

Vous pouvez maintenant effectuer un commit pour des parties spécifiques de blocs de code. Pour effectuer un commit partiel, sélectionnez les lignes de votre choix dans un bloc et appelez Include these lines into commit dans le menu contextuel. Le bloc sera divisé en lignes individuelles et les lignes sélectionnées seront mises en évidence. Vous pouvez ajouter ou exclure des lignes de la sélection à l'aide des cases à cocher ou du menu contextuel.

Intégration de GitLab

La fonctionnalité du plugin GitLab dans GoLand

GoLand 2023.2 inaugure son intégration avec GitLab afin de simplifier votre workflow de développement. Vous pouvez désormais travailler avec la fonctionnalité Merge Request directement dans l'IDE : passer en revue la liste des requêtes, vérifier les modifications, laisser des commentaires et naviguer vers les vues correspondantes.

Plugin Kafka

La fonctionnalité du plugin Kafka dans GoLand

Plugin Kafka

Le nouveau plugin Kafka vous permet de surveiller les processus de streaming des événements Kafka. Vous pouvez vous connecter à un cluster Kafka, produire et consommer des messages dans différents formats, gérer des sujets et surveiller des groupes de consommateurs, et utiliser Confluent Schema Registry et AWS Glue Schema Registry. Vous trouverez des informations plus détaillées dans cette documentation.

Expérience utilisateur

Sélection de la configuration des raccourcis clavier VS Code intégrés dans les paramètres GoLand

Raccourcis clavier de VS Code intégrés

Si vous avez l'habitude dela configuration des raccourcis clavier de VS Code, vous pouvez désormais la choisir dans la section Customize de l'écran Welcome. Vous pouvez également modifier la configuration des raccourcis dans Settings | Keymap.

Tri de fichiers en fonction de l'heure de modification

Tri des fichiers par heure de modification dans la vue Project

GoLand 2023.2 offre la possibilité très attendue de classer les fichiers dans la vue Project en fonction de leur heure de modification. Cette nouvelle fonctionnalité réorganise automatiquement les fichiers lorsque vous enregistrez les modifications de votre projet. Pour l'activer, ouvrez le menu kebab (trois points verticaux) dans la vue Project, puis sélectionnez Tree Appearance | Sort by Modification Time.

Une option pour épingler une configuration d'exécution dans GoLand

Configurations d'exécution épinglées dans le widget Run

Afin de simplifier la gestion de multiples configurations d'exécution, nous avons implémenté une option permettant d'épingler les configurations préférées dans le widget Run. Pour épingler une configuration d'exécution dans la section Pinned, ouvrez le menu kebab (trois points verticaux) à côté de son nom et sélectionnez Pin. Si vous avez plusieurs configurations épinglées, vous pouvez facilement les réorganiser dans la liste par glisser-déposer.

Ajout du bouton Update Project à la barre d'outils principale

Personnalisation de la barre d’outils principale améliorée

Nous avons ajouté des options de personnalisation pour la barre d'outils de la nouvelle interface utilisateur. Vous pouvez désormais utiliser un menu déroulant pour choisir rapidement des actions à ajouter à la barre d'outils. Faites un clic droit sur n'importe quel widget et sélectionnez Add to Main Toolbar pour consulter les options disponibles.

Faire du menu hamburger une barre d'outils distincte dans GoLand sous Windows

Menu hamburger remanié dans la barre d'outils principale sous Windows et Linux

La nouvelle interface a modifié la conception du menu de la barre d'outils principale pour Windows et Linux. Lorsque vous cliquez sur l'icône du menu, les éléments s'affichent désormais à l'horizontale sur la barre d'outils. Il est également possible de transformer ce menu en barre d'outils distincte dans View | Appearance | Main menu as a Separate Toolbar.

Sélectionner l'option Open Directories with Single Click dans les paramètres de GoLand

Navigation en un clic entre les dossiers de projets

Dans la vue Project, une nouvelle option Open Directories with Single Click rend le développement et la réduction des dossiers de projets plus rapide. Cette option est disponible dans le menu déroulant lorsque vous cliquez sur le menu kebab (trois points verticaux).

La fenêtre contextuelle Search Everywhere renvoie une option de recherche textuelle

Recherche de texte dans Search Everywhere

Search Everywhere (Double Maj) s'utilise principalement pour lancer des recherches dans vos fichiers, méthodes, actions et paramètres. Cette version y ajoute des capacités de recherche de texte similaires à celles de Find in Files. Les résultats de la recherche textuelle s’affichent dans les cas où il n'y a pas ou peu d'autres résultats de recherche disponibles pour une requête donnée. La fonctionnalité est activée par défaut et peut être gérée dans Settings | Advanced Settings.

Mise en évidence de la syntaxe dans les descriptions d'inspections

Mise en évidence de la syntaxe dans les descriptions d'inspections

Dans Settings | Editor | Inspections, la syntaxe des extraits de code est désormais mise en évidence, ce qui permet de mieux comprendre ce qui déclenche une inspection et si vous souhaitez l'activer ou pas.

Suggestions de plugins dans la section Plugins

Suggestions de plugins dans Settings

Afin de faciliter la configuration de l'IDE pour vos projets spécifiques et d'étendre ses fonctionnalités à l'aide de plugins, nous avons mis à jour l'interface utilisateur de la section Settings | Plugins. Elle inclut désormais un ensemble de suggestions de plugins défini automatiquement en fonction des spécificités de votre projet, qui s'affiche en haut de la liste.

Interface utilisateur

Ouvrir des projets avec des en-têtes de différentes couleurs dans GoLand

En-têtes colorés pour les projets dans la nouvelle interface utilisateur

GoLand 2023.2 introduit des en-têtes colorés pour simplifier la navigation entre plusieurs projets ouverts. Vous pouvez désormais attribuer une couleur et une icône uniques à chacun de vos projets, afin de les distinguer plus facilement dans votre espace de travail.

Les couleurs des en-têtes sont prédéfinies par défaut, mais vous pouvez les personnaliser. Pour définir une nouvelle couleur pour un projet, faites un clic droit sur un en-tête pour accéder au menu contextuel, puis sélectionnez l'option Change Toolbar Color et choisissez une couleur. Pour désactiver cette fonctionnalité, désélectionnez simplement l'option Show Project Gradient dans le menu contextuel.

Le thème clair avec en-tête clair dans GoLand

Thème clair avec en-tête clair dans la nouvelle interface utilisateur

Dans la version 2023.2, nous avons affiné l'expérience utilisateur du thème Light en introduisant l'alternative Light with Light Header, qui propose des couleurs claires assorties pour les en-têtes de fenêtres, les infobulles et les bulles de notification.

Fenêtre d'outils Services de GoLand avec l'interface utilisateur actualisée

Mise à jour de l'interface utilisateur pour le widget Run/Debug dans la fenêtre d'outils Services

Nous avons retravaillé l'interface utilisateur pour les actions d'exécution et de débogage dans la fenêtre d'outil Services afin d'harmoniser l'aspect et l'ergonomie de la barre d'outils avec le widget Run/Debug principal.

GoLand sans l'en-tête Linux natif

Suppression de la barre de titre sous Linux dans la nouvelle interface utilisateur

Pour le confort des utilisateurs de Linux, l'en-tête natif du système d'exploitation a été supprimé dans la nouvelle interface utilisateur, ce qui lui donne un aspect plus propre. Dorénavant, vous verrez par défaut l'en-tête personnalisé de l'IDE, qui propose de nombreuses options de personnalisation de votre espace de travail.

Client HTTP

Saisie semi-automatique du code dans le client HTTP pour un schéma Swagger

Prise en charge des schémas Swagger et OpenAPI

Le client HTTP est maintenant capable de comprendre les spécifications Swagger et OpenAPI et de fournir les options de saisie semi-automatique du code correspondantes pour les corps de requête JSON.

Importation de code JavaScript dans le client HTTP

Prise en charge des importations JavaScript

Vous pouvez désormais partager du code JavaScript commun pour les gestionnaires de requêtes du client HTTP via des modules importés.

Aperçu d'un fichier PDF dans le client HTTP

Aperçu des réponses PDF et HTML

GoLand peut désormais afficher un aperçu des fichiers PDF et HTML directement dans les résultats des requêtes, dans le client HTTP.

Une requête gRPC utilisant TLS dans le client HTTP

Requêtes gRPC utilisant TLS dans le client HTTP

Vous pouvez désormais envoyer des requêtes gRPC via TLS (Transport Layer Security) dans le client HTTP. TLS assure le cryptage et l'authentification, ce qui garantit la confidentialité et l'intégrité de la transmission de vos données. Les schémas https:// et grpcs:// sont tous deux pris en charge dans la syntaxe de la requête.

Développement Web

Amélioration de la présentation des erreurs TypeScript dans GoLand

Amélioration de la présentation des erreurs

Dans GoLand 2023.2, les erreurs et les avertissements sont présentés de manière plus lisible, ce qui facilite la détection de problèmes dans votre code. Cela concerne toutes les erreurs TypeScript et certaines des erreurs JavaScript les plus courantes.

Une inspection corrigeant l'utilisation de code CSS imbriqué dans GoLand

Prise en charge de l'imbrication CSS

GoLand prend désormais en charge la fonctionnalité CSS Nesting Module. Nous avons implémenté la prise en charge syntaxique et une inspection pour vous assurer que le sélecteur imbriqué ne commence pas par un identifiant ou une notation fonctionnelle.

Autre

Une chaîne NO mise en évidence par GoLand dans un document YAML

Inspection pour le « Norway problem » dans les fichiers YAML

Nous avons introduit une nouvelle inspection pour éliminer ce qu'on appelle le « Norway problem » et empêcher l'interprétation erronée de valeurs booléennes dans les fichiers YAML.

Lorsqu'une liste se compose principalement de chaînes de caractères mais qu'elle contient un littéral de type booléen, GoLand met en évidence ce littéral pour indiquer une incohérence potentielle et suggère d'y ajouter des guillemets. Si la liste est principalement composée de littéraux de type booléen (tels que true, false, off, on, yes, no), tout littéral qui s'écarte de ce schéma est mis en évidence en tant qu'erreur possible. Aucun correctif rapide spécifique n'est toutefois suggéré dans ce scénario.

La boîte de dialogue Edit Swagger Codegen Configuration remaniée dans GoLand

Améliorations pour Swagger Codegen

L'IDE offre maintenant une meilleure expérience utilisateur lors de la mise en place des configurations Swagger Codegen. Nous avons retravaillé la boîte de dialogue Edit Swagger Codegen Configuration pour faciliter l'adaptation de la configuration d'exécution à vos besoins.

Exécution d'une configuration Swagger Codegen dans GoLand

Vous pouvez maintenant accéder à la configuration d'exécution de Swagger Codegen directement à partir de la gouttière, sans avoir à spécifier de paramètres supplémentaires.

Aperçu de Redoc dans GoLand

Aperçu de l'interface utilisateur de Redoc pour les fichiers OpenAPI et Swagger

GoLand prend maintenant en charge l'aperçu de Redoc UI pour les fichiers de spécification OpenAPI et Swagger, notamment les fichiers YAML et JSON, et vous permet de basculer entre les interfaces utilisateurs Redoc et Swagger dans l'IDE. Avec l'intégration de Redocly, vous pouvez accéder à la console Try it directement dans GoLand et l'utiliser pour définir des paramètres et envoyer des requêtes à votre API.

Le panneau d'aperçu de l'éditeur avec points de terminaison pour le schéma AsyncAPI

Prise en charge de la modification des fichiers AsyncAPI

Le travail avec le format de spécification AsyncAPI est maintenant facilité dans GoLand. L'IDE prend en charge la fonctionnalité de validation des schémas et fournit la saisie semi-automatique du code pour les références, la vue Endpoints et le volet Editor Preview.

API LSP pour le développement de plugins

Nous avons introduit dans cette version une API LSP pour les développeurs de plugins qui souhaitent utiliser un serveur LSP spécifique pour l'assistance au codage dans l'IDE. Si vous avez créé votre propre langage de programmation ou framework, vous pouvez le faire prendre en charge par l'IDE en créant un serveur LSP et un plugin.