Nouveautés de GoLand 2023.3

GoLand 2023.3 inclut de nombreux ajouts significatifs :

  • L'AI Assistant est maintenant disponible pour tous, avec de nombreuses nouveautés et fonctionnalités améliorées pour rendre votre travail avec les IDE de JetBrains encore plus productif.
  • Les Dev Container sont maintenant officiellement pris en charge. Nous travaillons sur un ensemble de fonctionnalités et développons activement la prise en charge des Dev Container, qui sont donc en « Bêta ».
  • Une énorme mise à jour du style de pliage de code pour le traitement des erreurs, des returns et panics sur une seule ligne, et d'autres éléments de code.
  • Plusieurs conseils, refactorisations et correctifs rapides pour améliorer votre productivité, tels que des conseils pour les expressions slice, l'analyse du code pour les fonctions personnalisées de type printf et des améliorations du débogueur.

GoLand 2023.3 apporte aussi des mises à jour pour les intégrations avec Docker et Kubernetes, le système de gestion de version, ainsi que plusieurs ajustements pour le développement web. Apprenez-en plus dès maintenant !

AI Assistant Disponibilité générale

Les dernières mises à jour de l'AI Assistant comprennent la génération de code directement dans l'éditeur, un chat IA contextuel qui répond aux requêtes concernant votre projet sans que vous ayez à copier de code et des actions d'IA qui tiennent compte du contexte de votre projet pour fournir des résultats plus complets. Une nouvelle visionneuse de différences permet d'identifier facilement les modifications apportées à votre code par les actions d'IA.

Utilisez l'AI Assistant dans GoLand en tant que fonctionnalité supplémentaire en vous abonnant au service JetBrains AI.

AI Assistant pour GoLand : Rename

Le nommage peut être difficile ! C'est pourquoi l'AI Assistant de GoLand suggère des idées de noms pour les fonctions qui favorisent la lisibilité.

AI Assistant pour GoLand : Write documentation

Documenter votre code est une tâche fastidieuse, mais nécessaire. L'action Write documentation permet d'obtenir un code bien commenté en quelques clics.

AI Assistant pour GoLand : Generate Unit Test

L'AI Assistant peut vous aider à créer un test pour une fonction ou une méthode spécifique et vous proposera des cas de test supplémentaires une fois la classe de test initiale créée.

Refactorisations

Correctif rapide Create function pour créer une fonction dans un autre paquet

Ce correctif rapide vous permet de saisir un nom de fonction qui n'existe pas, puis de générer l'implémentation dans le paquet de votre choix.

Refactorisation Extract Parameter

La version 2023.3 inclut la première partie de la très attendue refactorisation Extract Parameter. Le correctif rapide Create Parameter pour les références non résolues vous permet d'en sélectionner une et d'utiliser l'option de correctif rapide pour créer un paramètre. Il permet également de modifier son type s'il n'est pas suffisamment précis, fournit une valeur par défaut et modifie les appels avec cette valeur.

Dev Containers Bêta

Prise en charge des Dev Containers

GoLand prend désormais en charge les Dev Container, qui peuvent être utilisés comme un environnement à part entière pour modifier, construire et exécuter vos projets. Les Dev Containers peuvent être exécutés à distance via une connexion SSH ou localement avec Docker.

Prise en charge des Dev Container Features

GoLand 2023.3 prend en charge les Dev Container Features. Vous disposez ainsi d'un moyen rapide et pratique pour intégrer des outils, environnement d'exécution et bibliothèques supplémentaires essentiels pour le développement.

Prise en charge de Docker Compose dans les Dev Containers

Nous avons également introduit la prise en charge de Docker Compose dans les Dev Containers, afin de facilier le lancement du conteneur principal avec l'IDE et des conteneurs dépendants, tels que ceux incluant des bases de données ou des files d'attente de messages, qui sont utiles pendant le processus de développement.

Amélioration du pliage de code

One-liners returns et panics

Vous avez maintenant la possibilité d'utiliser un style de pliage de code plus concis, beaucoup plus proche du code d'origine, pour les one-liners returns et panics.

La nouvelle syntaxe de pliage est activée par défaut.

L'approche est similaire pour les clauses case : la flèche vers le haut est supprimée et seuls les doubles points sont pliés.

Fonctions avec returns simples

Comme pour les one-liners returns et panics, nous avons activé le pliage pour les fonctions avec une seule instruction return.

Traitement des erreurs

Pour améliorer la lisibilité du code de traitement des erreurs, GoLand plie automatiquement les blocs if de traitement des erreurs.
Pour les blocs if avec du code de traitement des erreurs, GoLand plie également toutes les instructions uniques, par exemple, avec des appels au logging.

Pliage de code désactivé pour le formatage de string

Nous avons désactivé le pliage de code pour le formatage string afin de rendre la syntaxe pertinent plus visible. D'autre part, la nouvelle approche pour le pliage de code vous permet de modifier des blocs de code sans avoir à les développer.

Saisie semi-automatique du code

Génération d'instructions Switch pour les enums

GoLand peut maintenant vous aider à écrire des instructions switch pour les enums. Dans la fenêtre contextuelle de saisie semi-automatique, des options permettant de générer des cas pour toutes les valeurs sont suggérées.

Avertissements sur les branches manquantes lorsque les cas contiennent des constantes déclarées en utilisant iota

L'inspection permet de suivre les expressions switch pour les constantes iota. L'inspection vous alerte sur les cas non couverts par switch et propose deux solutions : ajouter les clauses manquantes ou une clause par défaut.

Exécution et création de build

Profils de couverture du code pour les programmes

Cette fonctionnalité vous permet de voir exactement le code qui a été exécuté lors d'une seule ou de plusieurs exécutions. Elle permet également de détecter le code mort.
Auparavant, cela ne s'appliquait qu'aux exécutions de tests, mais dorénavant, vous pouvez aussi exécuter la fonction main avec Coverage.

Autres fonctionnalités relatives à Go

Conseils de paramètres pour les expressions slice

Les expressions Slice peuvent prêter à confusion, notamment celles qui ont trois indices. GoLand affiche désormais des conseils lorsque vous construisez des slices.

Analyse du code pour les fonctions personnalisées de type printf

GoLand inclut de nombreuses fonctionnalités pratiques pour les fonctions standard de type printf : surlignage des espaces réservés, détection des erreurs, pliages de code, etc. Désormais, toutes ces fonctionnalités sont disponibles pour les fonctions de type printf définies par l'utilisateur.

Data Flow Analysis

GoLand 2023.3 introduit un analyseur de flux de données plus précis et basé sur le moteur utilisé dans CLion. Cette fonctionnalité détecte davantage de problèmes de code, tels que le déréférencement nil potentiel, le traitement incorrect ou insuffisant des erreurs et les conditions toujours true/false.

Veuillez noter que cette fonctionnalité est actuellement limitée à la version accès anticipé (EAP) et qu'elle est désactivée par défaut. Vous pouvez l'activer dans Settings | Editor | Inspections | Go | Data Flow Analysis (experimental) pour l'essayer et nous faire part de votre avis !

Prise en charge des installations Go locales avec asdf

L'outil de ligne de commande asdf permet de gérer les versions d'exécution multiples pour le langage. En réponse aux retours de la communauté, nous avons décidé d'inclure dans cette nouvelle version la prise en charge d'asdf. Désormais, GoLand vérifie la version de Go dans le fichier .tool-versions et utilise la version appropriée pour le projet sélectionné.

Compatibilité ascendante et gestion de la chaîne d'outils pour Go 1.21

Go 1.21 et ses versions ultérieures permettent d'éviter les erreurs de compilation du code qui font appel à une version encore plus récente de Go. Plus précisément, la ligne go de go.mod spécifie désormais la version minimale requise pour la chaîne d'outils Go, alors que dans les versions précédentes, il s'agissait seulement d'une suggestion.

La nouvelle version de GoLand prend intégralement en charge ce flux et télécharge automatiquement la version du SDK qui est spécifiée dans un fichier go.mod sur la ligne go ou toolchain. La version spécifiée est également définie dans les paramètres de Go project.

Amélioration des performances de prise en charge des fournisseurs

GoLand 2023.3 a migré vers l'API de la plateforme IntelliJ Platform, ce qui lui évite d'exécuter go list -m une deuxième fois si le projet contient des répertoires de fournisseurs. L'utilisation plus efficace des caches améliore les performances des projets contenant de nombreux modules Go.

Débogueur

Option d'incrustation Run to Cursor

La nouvelle option d'incrustation Run to Cursor permet d'atteindre rapidement une ligne de code spécifique pendant le débogage. Une fois votre programme suspendu, vous pouvez survoler la ligne de code sur laquelle vous souhaitez poursuivre l'exécution. Vous pouvez ensuite utiliser la fenêtre contextuelle Run to Cursor pour exécuter votre code jusqu'à ce qu'il atteigne la ligne où le curseur est situé.

VCS

Prise en charge des extraits de code GitLab

Nous poursuivons l'intégration avec GitLab avec l'ajout de la prise en charge des extraits de code de GitLab. Il est désormais possible de créer des extraits de code publics ou privés directement dans l'IDE.

Kubernetes

Option permettant d'ajouter des contextes de clusters à partir d'un fichier

Il est désormais possible d'ajouter facilement des contextes kubeconfig à partir de clusters situés dans des répertoires en dehors du système requis. Le projet inclura des liens vers les fichiers kubeconfig pour rendre ces clusters disponibles pendant que vous travaillez sur votre projet. Le contenu kubeconfig ajouté de cette manière ne sera pas copié ni modifié dans le système (~/.kube/config). Cette fonctionnalité est particulièrement utile si vous ajoutez et supprimez souvent des clusters Kubernetes à partir d'environnements cloud ou sur site. En savoir plus.

Installation automatique des outils Kubernetes

Pour commencer à utiliser le plugin Kubernetes, vous devrez peut-être installer kubectl ou Helm. S'ils ne sont pas déjà sur votre machine, l'IDE vous proposera de les installer automatiquement.

Amélioration du débogage avec Telepresence

Telepresence vous permet de déboguer localement les microservices d'une application Kubernetes, comme si votre poste de travail faisait partie du cluster. Dans cette version, nous avons rendu le workflow de Telepresence plus accessible en le déplaçant vers le menu contextuel du cluster. Nous avons également optimisé la gestion des interceptions afin de fluidifier l'expérience de débogage.

Prise en charge du bloc import dans Terraform

GoLand prend en charge les blocs import de niveau supérieur à partir de la version 1.5 du langage de configuration Terraform. Les blocs import vous permettent de placer l'infrastructure actuelle sous la gestion de Terraform. Lorsque import est utilisé dans un bloc de code, il devient une partie des étapes standard plan et apply et cesse d'être une opération d'état. Terraform génère automatiquement le code pour les ressources importées pour vous faire gagner du temps lors du développement d'une infrastructure en tant que code.

Autres mises à jour

Améliorations pour TypeScript

GoLand 2023.3 résout une partie des incohérences liées à l'ajout de déclarations import type. Nous avons ajouté la possibilité de configurer l'utilisation de l'instruction import type de TypeScript ou du spécificateur de type lors de l'importation d'un type. Nous avons également amélioré le comportement du champ exports de package.json pour les fichiers TypeScript.

Améliorations pour le client HTTP

Nous avons amélioré la fenêtre d'outils Structure pour améliorer la navigation dans les gros fichiers .http. Cette mise à jour introduit aussi les étiquettes à code couleur pour les types de requête et fournit une liste plus claire de leur contenu. Nous avons également ajouté la prise en charge de la déclaration des variables en utilisant @ et l'authentification avec le mot de passe OAuth 2.0 et les types de validation des informations d'authentification des clients.

Prise en charge de Cypress et Playwright

GoLand détecte automatiquement vos tests Cypress et Playwright, et vous permet de les exécuter et de les déboguer en un clic. La prise en charge permet également d'explorer les résultats et d'identifier les problèmes en parcourant le Test Tree.

Visualiseur de diff tout-en-un

Il s'agit d'une nouvelle approche de la révision des changements de code. Désormais, au lieu de parcourir chaque fichier un par un, vous pouvez consulter tous les fichiers modifiés à partir de l’ensemble des modifications regroupées dans un même cadre déroulant. En savoir plus.