GoLand : la version 2023.2 de l'EDI Go de JetBrains disponible
Avec un meilleur support des modules Go, l'intégration de GitLab, du plugin Kafka, et le nouveau plugin AI Assistant

JetBrains a publié la deuxième mise à majeure de l'année pour GoLand, son EDI visant à fournir un environnement ergonomique pour le développement en Go. 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.

Cette version améliore la prise en charge de errors.Is et errors.As. Vous y trouverez aussi le nouveau plugin AI Assistant, l'intégration de GitLab et le plugin Kafka. Des améliorations ont également été apportées à l'intégration de Docker et au plugin Kubernetes.

Modules Go

Option permettant de 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.

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

JetBrains a 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 également mettre à jour toutes les dépendances avec leurs derniers correctifs ou leurs dernières versions majeures. Une option permet de ne mettre à jour que les dépendances directes.

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

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

Prise en charge de errors.Is et errors.As

JetBrains a mis en place deux inspections qui mettent en évidence les cas où errors.Is ou errors.As doivent être utilisés. Des correctifs rapides vous aideront également à 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.


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. Le 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 propose une prise en charge de base pour min, max et clear, de nouvelles fonctions introduites dans Go 1.21.

Améliorations pour make

Saisie semi-automatique des arguments d'une fonction make

JetBrains a ajouté la saisie semi-automatique du code pour les appels de fonction make.

Vérifications des arguments d'une 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

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. Dans ces cas, GoLand affiche désormais le récepteur comme premier paramètre dans les suggestions de saisie semi-automatique.

Génériques : amélioration du message d'erreur en cas d'arguments manquants

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

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

L'éditeur de logiciels pour développeurs a ajouté un aperçu de 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 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

AI Assistant (accès limité)

Cette version voit arriver un ajout majeur dans GoLand : AI Assistant. Dans l'état actuel des fonctionnalités assistées par IA, AI Assistant offre la possibilité de discuter avec l'IA et peut rédiger automatiquement des commentaires de documentation pour vous, suggérer des noms, générer des messages de commit, et plus encore.

AI Assistant est alimenté par le service JetBrains AI, qui peut vous connecter à OpenAI pour l'instant et inclura d'autres fournisseurs de modèles de langage à l'avenir. Pour accéder aux fonctionnalités d'IA de l'assistant, vous devez installer le plugin JetBrains AI et vous connecter au service JetBrains AI à l'aide de votre compte JetBrains. La disponibilité du service JetBrains AI peut varier initialement.


Docker

Aperçu des fichiers à l'intérieur des couches d'images Docker

Il est désormais facile d'accéder au contenu d'une couche d'image Docker et de le prévisualiser dans la fenêtre d'outil Services. Sélectionnez l'image dans la liste, sélectionnez Show layers et cliquez sur Analyze image for more information. Cela ouvre une liste des fichiers stockés dans la couche. Vous pouvez facilement ouvrir le fichier sélectionné dans l'éditeur à partir de cette liste en cliquant droit sur le fichier, puis en cliquant sur Open File (ou Download File pour les binaires).


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'EDI 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

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

JetBrains inaugure une fonctionnalité qui vous 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.


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

Vous pouvez à présent consulter les journaux d'activité pour les déploiements dans les clusters Kubernetes dans la fenêtre d'outil 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

JetBrains propose un nouvel outil en ligne de commande pour créer et télécharger rapidement des index partagés. Il est conçu pour simplifier le travail d'équipe et ne plus perdre de temps à indexer localement de grands projets. Ce nouvel outil simplifie le processus de génération d'index partagés pour votre équipe : il remplace plusieurs scripts et services par juste quelques clics.

Contrôle de version

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

Vous pouvez à présent effectuer un commit de parties spécifiques des 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'EDI : passer en revue la liste des requêtes, vérifier les modifications, laisser des commentaires et naviguer vers les vues correspondantes.


Plugin Kafka

Le nouveau plugin Kafka vous permet de surveiller vos processus de streaming d'é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, mais aussi utiliser Confluent Schema Registry et AWS Glue Schema Registry.

Expérience utilisateur

Keymap VS Code intégrée

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

Tri des fichiers par heure de modification dans la vue Project

GoLand 2023.2 offre la possibilité (très attendue) de classer vos 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 activer cette fonctionnalité, ouvrez le menu des trois points verticaux dans la vue Project, puis sélectionnez Tree Appearance | Sort by Modification Time.


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

Afin de simplifier la gestion de multiples configurations d'exécution, JetBrains a 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 des trois points verticaux situé à 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.


Personnalisation améliorée pour la barre d'outils principale

JetBrains a élargi les 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 à cette barre d'outils. Pour cela, cliquez droit sur n'importe quel widget et sélectionnez Add to Main Toolbar pour explorer les options disponibles.


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

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


Navigation en un clic entre les dossiers de projets

Dans la vue Project, une nouvelle option Open Directories with Single Click permet de gagner en rapidité et en réactivité pour le développement et la réduction des dossiers de projet. L'option est disponible dans le menu déroulant une fois que vous avez cliqué sur l'icône des trois points verticaux.


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. Avec cette version, elle inclut désormais des capacités de recherche de texte similaires à celles de Find in Files. Les résultats de la recherche textuelle s'affichent à présent 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 syntaxique dans les descriptions d'inspection

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 Settings

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


Interface utilisateur

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 en-têtes sont désormais dotés de couleurs prédéfinies par défaut (mais vous pouvez les personnaliser). Pour définir une nouvelle couleur pour votre projet, allez dans le menu contextuel en faisant un clic droit sur un en-tête, Sélectionnez l'option Change Project Color et choisissez la couleur voulue. Pour désactiver cette fonctionnalité, désélectionnez simplement l'option Show Project Gradient dans le menu contextuel.


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

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


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

JetBrains a 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.


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. Vous verrez maintenant par défaut l'en-tête personnalisé de l'EDI, qui propose tout un éventail d'options de personnalisation pour adapter votre espace de travail.


Client HTTP

Prise en charge des schémas Swagger et OpenAPI

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

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 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.

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 mise en forme des erreurs

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

Prise en charge de l'imbrication CSS

GoLand prend désormais en charge la fonctionnalité CSS Nesting Module. JetBrains a mis en place une prise en charge syntaxique ainsi qu'une inspection pour vous assurer que le sélecteur imbriqué ne commence pas par un identifiant ou une notation fonctionnelle.

Autre

Inspection pour le « Norway problem » dans les fichiers YAML

JetBrains a 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.

Améliorations pour Swagger Codegen

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

Vous pouvez maintenant en outre 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 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'EDI. Avec l'intégration de Redocly, vous pouvez accéder à la console Try it à partir de GoLand et l'utiliser pour définir des paramètres et envoyer des requêtes à votre API.

Prise en charge de la modification des fichiers AsyncAPI

Votre travail avec le format de spécification AsyncAPI est maintenant facilité dans GoLand. L'EDI prend en charge la fonctionnalité de validation des schémas et fournit une 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

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

Nouveautés et téléchargement de GoLand 2023.2