Entre autres nouveautés, il est désormais possible d'exécuter des fichiers temporaires (sratch) avec des paquets de bibliothèques non standards, utiliser des expressions régulières pour créer vos propres inspections de recherche et de remplacement, et convertir rapidement des littéraux de chaînes bruts en littéraux avec des guillemets doubles et inversement. Notons aussi que l'action d'intention Implement interface fonctionne maintenant pour les interfaces non exportées.
Cette version fournit aussi plusieurs améliorations pour la nouvelle interface utilisateur, des mises à jour pour Docker et Kubernetes, et des améliorations pour le développement web.
Vérificateur de vulnérabilités
Mise en évidence des paquets vulnérables
GoLand peut désormais mettre en évidence les paquets comportant des vulnérabilités connues dans go.mod. Survolez le code mis en évidence ou appuyez sur Alt+Entrée, choisissez Show vulnerability info for …, et GoLand affichera une liste de vulnérabilités avec des liens vers leur description détaillée. Les données concernant les vulnérabilités sont fournies par l'entreprise de sécurité logicielle Checkmarx.
Mise à jour des paquets vulnérables vers une version sécurisée
Pour mettre à jour une dépendance et obtenir une version sans vulnérabilités, placez le curseur sur un paquet mis en évidence dans go.mod, appuyez sur Alt+Entrée et choisissez le correctif rapide Change package-name version to v0.x.x.
Mise en évidence des appels de méthodes provenant de paquets vulnérables
GoLand met également en évidence les appels de méthodes des paquets présentant des vulnérabilités connues directement dans votre éditeur. Vous pouvez survoler le code mis en évidence pour afficher une fenêtre contextuelle contenant des informations sur la vulnérabilité et un lien vers sa description détaillée.
Navigation pour gRPC
Le client HTTP de GoLand prend actuellement en charge l'exécution de requêtes gRPC. Vous pouvez également exécuter des requêtes gRPC à partir de la fenêtre d'outil Endpoints.
Cette version offre une autre amélioration significative à l'ensemble de fonctionnalités pour gRPC : vous pouvez désormais accéder aux déclarations de messages, de services et de méthodes et les parcourir à partir du code Go et de leurs implémentations Go dans les fichiers .proto.
Pour ce faire, cliquez sur l'icône dédiée située à côté de la déclaration d'un message, d'un service, d'une méthode ou de leur implémentation.
Fichiers temporaires scratch
Exécution de fichiers temporaires avec des paquets de bibliothèques non standards
Vous pouvez maintenant exécuter des fichiers temporaires (scratch) avec des dépendances Go de bibliothèques non standards. Lorsque vous copiez votre code d'un fichier de projet vers un fichier temporaire et que vous appuyez sur le bouton Run, GoLand crée une configuration Run avec le drapeau -overlay. Ce dernier est utilisé avec un fichier JSON qui mappe les chemins d'accès aux fichiers go.mod et go.sum dans votre projet d'origine.
Génériques
Refactorisation Rename pour les récepteurs génériques
Lorsque vous renommez un paramètre de type dans une structure, la refactorisation Rename vous propose désormais de modifier les récepteurs en conséquence.
JetBrains a corrigé plusieurs problèmes affectant la navigation entre les interfaces, les implémentations et les spécifications de méthodes dans le code générique. L'éditeur de logiciels pour développeurs a également implémenté plusieurs correctifs supplémentaires pour les faux positifs et les faux négatifs liés aux génériques.
Intentions et correctifs rapides
Conversion entre différents types de littéraux de chaînes
Une nouvelle action d'intention vous permet de convertir rapidement des chaînes de caractères brutes (entourées du caractère « ` ») en chaînes entre guillemets doubles et inversement.
Simplification de la conversion des entiers en chaînes
Auparavant, lorsque vous deviez convertir un entier en chaîne, GoLand vous proposait d'abord le correctif rapide Convert to ‘string'. Pour effectuer la conversion correctement, vous aviez ensuite besoin d'un autre correctif rapide : Convert integer to string using strconv.Itoa() call.
JetBrains a simplifié ce workflow et GoLand propose maintenant directement le correctif rapide Convert integer to string using strconv.Itoa() call.
Possibilité d'implémenter des interfaces non exportées
L'action d'intention Implement interface fonctionne désormais pour les interfaces non exportées.
Suppression des espaces de début des directives Go
GoLand fournit maintenant une inspection et un correctif rapide pour vous aider à détecter et à supprimer les espaces en début de ligne dans les directives Go telles que //go:embed.
Intention Preview : davantage d'intentions et de correctifs rapides pris en charge
Dans la version précédente, JetBrains a activé la fonctionnalité Intention Preview par défaut. Cette fonctionnalité vous permet de voir instantanément les effets de l'application des suggestions de l'EDI sur votre code.
Vous pouvez maintenant prévisualiser davantage d'actions d'intention et de correctifs rapides : Introduce local variable, Create variable/global variable, Create constant/global constant, Create field, Merge declaration up, Delete all unused parameters, Create function, Create method, Fill all fields.
Améliorations des performances
Inspection intelligente des fichiers pour l'indexation
JetBrains a amélioré l'expérience de démarrage de l'EDI grâce à l'exécution du processus Scanning files to index… en mode intelligent. L'ensemble des fonctionnalités sont ainsi disponibles bien plus rapidement lors du démarrage de l'EDI. Lorsque vous ouvrez un projet, GoLand utilise les caches de votre session précédente avec ce projet et recherche simultanément les fichiers à indexer. Les retards causés auparavant par l'indexation au démarrage sont éliminés : si aucune modification n'est détectée lors de l'analyse, l'EDI est prêt à être utilisé.
Suggestion de reconfiguration des paramètres de Microsoft Defender
Une nouvelle notification se déclenche lorsque Windows Defender est activé avec la protection en temps réel. GoLand suggère d'ajouter des dossiers spécifiques à la liste des exclusions de Defender, car ces contrôles antivirus peuvent impacter considérablement la vitesse de l'EDI. La notification propose des options pour reconfigurer ces paramètres automatiquement ou pour consulter d'abord les instructions de configuration de Defender afin de le configurer manuellement.
Éditeur
Code Vision : implémentations d'interfaces
JetBrains a mis à jour la fonctionnalité Code vision et GoLand affiche désormais le nombre d'implémentations d'une interface et les spécifications de ses méthodes.
Dans la version précédente, JetBrains avait introduit l'affichage des utilisations à proximité des fonctions et des types pour indiquer le nombre de références à la fonction ou au type dans le projet en cours. Désormais, les auteurs du code sont également affichés si l'intégration du contrôle de version est activée.
Inspections sur mesure basées sur des expressions régulières
Vous pouvez désormais utiliser des expressions régulières pour créer vos propres inspections de recherche et de remplacement. Ces inspections s'avèrent particulièrement utiles pour mettre en évidence les problèmes de formatage ou de style.
Pour créer une inspection, allez dans Settings | Editor | Inspections, appuyez sur l'icône + et sélectionnez Add RegExp Search Inspection dans la liste pour accéder à la boîte de dialogue dans laquelle vous pourrez configurer votre nouvelle inspection. Choisissez le langage souhaité, utilisez les indications fournies dans le volet de gauche pour créer une expression régulière, et indiquez le remplacement requis. Vous pouvez également indiquer comment vous souhaitez que l'EDI les mette en évidence dans le projet.
Go Playground : paramètre de version dans l'URL partagée
JetBrains a intégré la fonctionnalité Go Playground à GoLand 2022.3. Dans cette version, l'éditeur de logiciels pour développeurs a aussi amélioré cette fonctionnalité. Tout d'abord, les URL partagées incluent désormais le paramètre de version si vous choisissez une version de développement ou une version antérieure.
JetBrains a également ajouté une option permettant de désactiver la fenêtre contextuelle qui vous demande l'autorisation de partager du code dans le Playground dans Settings | Go | Ask before sharing in Go Playground.
Possibilité d'indiquer l'emplacement du contenu collé
JetBrains a affiné l'expérience utilisateur pour le collage d'une ligne copiée ou coupée sans sélection. Vous trouverez maintenant un paramètre spécial qui permet de contrôler l'emplacement du contenu collé.
Dans Settings | Advanced Settings, allez dans la section Editor et sélectionnez le comportement souhaité pour l'action Paste dans la liste déroulante.
Possibilité d'afficher les espaces dans le code sélectionné uniquement
Une nouvelle case à cocher Selection dans Settings | Editor | General | Appearance | Show Whitespace vous permet de configurer ce paramètre afin que l'EDI matérialise les espaces sous forme de petits points uniquement lors de la sélection du code.
Suppression des vérifications orthographiques pour les hases et les valeurs spéciales
JetBrains a modifié l'inspection Typo afin qu'elle ne contrôle plus l'orthographe des hashes et des valeurs spéciales et ne les signale plus comme erronés. Cette mise à jour concerne les valeurs suivantes :
- Valeurs hexadécimales Md5, Sha1 et Sha256.
- Les valeurs d'intégrité codées en base 64 Sha384 et Sha512 avec le préfixe shaNNN-.
- Jetons JWT.
Nouveau groupe Call dans Find Usages
JetBrains a introduit un nouveau groupe Find Usages pour les appels de fonction : le groupe Call.
L'éditeur de logiciels pour développeurs a également implémenté plusieurs correctifs concernant la représentation de l'utilisation des éléments de code génériques dans la fenêtre Find Usages.
Expérience utilisateur
Zoom complet dans l'EDI
Vous pouvez désormais zoomer dans la fenêtre principale de GoLand pour augmenter ou diminuer la taille de tous les éléments de l'interface utilisateur en même temps. Dans le menu principal, cliquez sur View | Appearance | Switch Zoom IDE et ajustez l'échelle de l'EDI.
Nouveau paramètre Remember size for each tool window
JetBrains a introduit une nouvelle option de mise en page qui vous permet d'unifier la largeur des fenêtres d'outils latérales ou de conserver la possibilité d'ajuster librement leur taille lorsque vous personnalisez votre mise en page. La nouvelle case à cocher Remember size for each tool window est disponible dans Settings | Appearance | Appearance & Behavior | Tool Windows.
Dans la nouvelle interface utilisateur, ce paramètre est désactivé par défaut, les fenêtres d'outils s'affichent donc avec une largeur unifiée et leur taille reste constante lorsque vous passez de l'une à l'autre. Dans l'ancienne interface utilisateur, l'option est activée et les fenêtres d'outils ont des largeurs différentes, mais vous pouvez choisir de les aligner à tout moment en désactivant simplement ce paramètre.
Enregistrer plusieurs dispositions de fenêtres d'outils
Vous pouvez maintenant enregistrer et gérer plusieurs dispositions de fenêtres d'outils et passer de l'une à l'autre en fonction de vos besoins.
Pour enregistrer une nouvelle disposition, organisez les fenêtres d'outils comme vous le souhaitez, puis cliquez sur Window | Layouts | Save Current Layout as New. Une fois la disposition ajustée, vous pouvez actualiser la configuration actuelle avec l'option Save Changes in Current Layout ou enregistrer ces modifications pour créer une autre disposition personnalisée. Pour activer une disposition enregistrée, cherchez-la dans la liste sous Window | Layouts, survolez son nom puis cliquez sur Apply.
Paramètre pour configurer Actions on Save pour les nouveaux projets
Cette version fournit une option qui permet de prédéfinir le comportement d’Actions on Save pour les nouveaux projets. Pour ce faire, allez dans File | New Projects Setup | Preferences For New Projects | Tools | Actions on Save et sélectionnez les actions à déclencher lorsque vous enregistrerez vos modifications dans vos projets.
Nouvelle interface utilisateur
L'année dernière, JetBrains a inauguré une nouvelle interface utilisateur plus minimaliste pour GoLand et ses autres EDI. Pour cette version, l'éditeur de logiciels y a apporté plusieurs améliorations, sur la base des retours d'expérience des utilisateurs. Vous pouvez essayer la nouvelle interface utilisateur en cochant la case New UI dans Settings | Appearance & Behavior.
Mode Compact
Afin d'améliorer l'expérience utilisateur de la nouvelle interface sur petit écran, JetBrains a introduit le mode Compact qui offre une apparence plus condensée à l'EDI grâce à la réduction de la hauteur des barres d'outils et des en-têtes des fenêtres d'outils, et à la réduction de la taille des espacements et des marges ainsi que des icônes et boutons. Pour activer le mode Compact, allez dans le menu View pour sélectionner Appearance | Compact Mode.
Par ailleurs, la barre d'outils supérieure n'est plus visible dans les modes Zen et Distraction Free.
Fractionnement vertical pour les fenêtres d'outils
JetBrains a introduit une option permettant de fractionner la zone de fenêtre d'outil, afin que vous puissiez l'organiser en fonction de vos besoins.
Pour ajouter une fenêtre d'outil dans cette zone et la placer dans la partie inférieure, faites glisser son icône le long de la barre latérale et déposez-la sous le séparateur. Vous pouvez également faire un clic droit sur une icône pour appeler le menu contextuel et attribuer une nouvelle position à une fenêtre d’outil à l’aide de l’action Move to.
Onglets Project pour les utilisateurs de macOS
Lorsque plusieurs projets sont ouverts, vous pouvez facilement passer de l'un à l'autre en utilisant les onglets de projet présents sous la barre d'outils principale. Pour ce faire, cliquez sur Window | Merge All Project Windows.
Show Hidden Tabs fait son retour
JetBrains a ajouté la fonctionnalité Show Hidden Tabs à la nouvelle interface utilisateur. Vous disposez désormais d’un menu déroulant affichant la liste complète des onglets ouverts, qui pouvaient être masqués auparavant.
Affichage du nom du fichier lorsque les onglets sont masqués
JetBrains a ajouté un volet qui affiche le nom du fichier actuellement ouvert lorsque les onglets de l'éditeur sont masqués.
Widget Run repensé
L'éditeur de logiciels pour développeurs a remanié le widget Run en haut de la fenêtre de l'EDI. Les icônes sont désormais simplement affichées en vert, pour un rendu plus discret et agréable à l'œil par rapport à l'ancien design, avec lequel toute la zone autour des icônes était colorée.
Autres nouveautés et améliorations
Docker
- Saisie semi-automatique pour testcontainers
- Journaux fusionnés pour l'ensemble des conteneurs Docker Compose
- Prise en charge d'Azure Container Registry
- Nouveau paramètre pour appliquer l'option de montage :z aux volumes associés sous SELinux
Kubernetes
- Modèles de fichiers dans la fenêtre contextuelle New Kubernetes Resource
- Action pour créer de nouveaux secrets Kubernetes
- Indicateurs de modifications avec code couleur pour les ressources chargées à partir du cluster
- Amélioration de l'expérience utilisateur pour les fichiers kubeconfig
- Possibilité d'affecter des raccourcis personnalisés aux actions dans la vue Service
Markdown
- Une action d'intention Reformat table pour reformater un tableau dans un fichier Markdown
- Prise en charge de l'action de l'éditeur Fill Paragraph qui permet de fractionner une longue ligne en plusieurs lignes
- Nouvelle page de paramètres Smart Keys pour Markdown
Contrôle de version
- Amélioration de l'ergonomie de la fenêtre Branches
- Saisie semi-automatique dans la fenêtre contextuelle Create New Branch
- Les couleurs des objets dans la fenêtre Structure changent lorsque du code est ajouté
- Indications de couleur pour les noms des objets modifiés (bleus) ou ajoutés récemment (verts) dans la fenêtre d'outil Structure
- Vérifications des commits en arrière-plan
- Amélioration du workflow de révision du code pour GitHub
Développement web
- Prise en charge d'Astro
- Conversion automatique des chaînes en littéraux de modèles
- Prise en charge de TypeScript dans les expressions de modèles Vue
Nouveautés et téléchargement de GoLand 2023.1