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.
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.
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.
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.
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.
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.
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.
min
, max
et clear
min
, max
et clear
, de nouvelles fonctions introduites dans Go 1.21. make
make
Nous avons ajouté la saisie semi-automatique du code sensible au type pour les appels de fonction make
.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
Vous pouvez désormais partager du code JavaScript commun pour les gestionnaires de requêtes du client HTTP via des modules importés.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.