Nouveautés de GoLand

GoLand 2021.3 propose une prise en charge native pour les projets Go en WSL, la refactorisation Inline Function et la prise en charge du développement à distance en mode Bêta.

À partir de cette version, gofmt lors de la sauvegarde est activé par défaut. GoLand 2021.3 apporte également plusieurs améliorations pour le débogueur, comme Delve pour ARM64 ou l'option Show Types.

Deux nouveaux postfix pour convertir les chaînes de caractères en nombres et un nouveau modèle pour les tests de table avec les assertions testify ont été ajoutés et la saisie semi-automatique pour les valeurs dans les balises struct a été améliorée.

Comme d'habitude, la nouvelle version de GoLand apporte des améliorations en matière de développement web et plusieurs nouvelles fonctionnalités pour travailler avec les bases de données.

Si vous préférez une approche interactive pour découvrir les nouvelles fonctionnalités, suivez le tutoriel Nouveautés de GoLand 2021.3 que vous trouverez sur l'écran de bienvenue.

Prise en charge de WSL

Création d'un projet et choix d'un SDK dans WSL

Nous avons ajouté la possibilité d'ouvrir un projet dans WSL et de spécifier un SDK qui s'y trouve.

Si vous créez ou ouvrez un projet dans WSL, GoLand vous indiquera que pour ce projet, vous devez utiliser un SDK Go dans WSL. Vous pouvez télécharger un SDK Go ou choisir un SDK dans le sous-répertoire \\wsl$.

Outil de mise en forme

Le code est mis en forme lorsque le fichier est enregistré

gofmt lors de l'enregistrement

L'option Reformat code, qui vous permet d'exécuter gofmt et l'outil de mise en forme de GoLand lors de l'enregistrement, est maintenant activée par défaut.

La fenêtre contextuelle affiche une notification sur la mise en forme du code lors de l'enregistrement.

Pour avertir les utilisateurs de ce changement, une notification s'affichera une fois dans chaque projet. Vous pouvez la désactiver en cliquant sur Don't show again.

Vous pouvez cliquer sur Edit actions on save et l'IDE ouvrira Settings | Tools | Actions on save pour vous permettre de gérer les paramètres.

Refactorisations

Inline Function et Inline Method

La refactorisation Inline est maintenant disponible pour les fonctions et les méthodes. Pour l'essayer, placez le curseur sur une fonction, une méthode ou un appel, puis appuyez sur Ctrl + Alt + N.

Lorsque vous appelez la refactorisation Inline, une fenêtre contextuelle s'ouvre avec plusieurs options. À partir de cette fenêtre contextuelle, vous pouvez également ouvrir l'aperçu de la refactorisation Refactoring Preview, qui vous aide à trouver tous les appels d'une méthode ou d'une fonction.

Saisie semi-automatique

La saisie semi-automatique du code propose plusieurs options pour les valeurs des balises struct

Meilleure gestion des styles des valeurs dans les balises struct

Nous avons amélioré le traitement des différents types de mots composés (camelCase, snake_case, etc.) lorsque vous ajoutez des balises dans des champs struct.

Lorsque vous remplissez une balise, GoLand vous propose une liste de plusieurs options. Une fois que vous avez fait votre choix, l'IDE s'en souvient et vous proposera le même style en premier dans la liste pour les autres champs de cette struct.

Saisie semi-automatique Postfix

Utilisation de postfix pour convertir des chaînes en nombres

Nouveaux postfix pour la conversion des chaînes en nombres

Deux nouveaux postfix permettent de convertir les chaînes de caractères en nombres. Saisissez un nombre entre guillemets, puis tapez un point, et GoLand vous proposera deux options pour analyser ce nombre : parseInt et parseFloat.

Show usages

Affichage du fichier source lors de l'utilisation de l'option Show Usages

Aperçu de la source

La fonction Show Usages a été améliorée. Vous pouvez désormais activer l'aperçu du code source pour une occurrence trouvée en cliquant sur l'icône de carré.

Cibles d'exécution

Configuration des dossiers sur une cible distante

Configuration des dossiers pour les sources et les exécutables

Vous pouvez maintenant donner des noms significatifs aux dossiers de la machine distante où sont stockés les sources et les exécutables de votre projet. Pour configurer les dossiers, accédez à Run | Manage targets | Additional Settings.

Paramètres de cible d'exécution par défaut à l'échelle du projet

Cible d'exécution par défaut à l'échelle du projet

Il est désormais possible de définir une cible d'exécution par défaut pour l'ensemble du projet. Accédez à Run | Manage targets. Une fenêtre affiche l'option Project default target. Si vous choisissez une cible particulière pour le projet, toutes les nouvelles configurations seront créées avec cette cible.

Paramètres du proxy dans la fenêtre de configuration SSH

Prise en charge du proxy pour les connexions SSH

Nous avons ajouté la nouvelle section HTTP/SOCKS Proxy dans SSH Configurations pour vous permettre de spécifier un serveur proxy. Vous trouverez cette section dans Settings | Tools | SSH Configurations. Vous pouvez également, à partir du projet ouvert, cliquer sur Run | Manage Targets | ...

Débogueur

Nouvelle représentation des interfaces nil dans le débogueur

Représentation des interfaces nil améliorée

En Go, les interfaces ont deux composantes, un type et une valeur de ce type. Pour qu'une interface soit nil, ces deux composantes doivent être nil.

Si vous avez une interface dont la valeur contient un pointeur nil vers un int, cette interface ne sera pas égale à nil, car le type interne n'est pas nil (ils s'agit de *int). Cela peut prêter à confusion.

Pour détecter de tels cas, nous avons modifié la représentation des interfaces dans l'onglet Variables de la fenêtre d'outils Debug. Par exemple, si vous avez une interface avec le type interne *int et la valeur nil, elle s'affichera comme ceci : {interface{} *int} *int(nil).

La différence entre la représentation des noms de paquets dans 2021.2 et 2021.3

Noms de paquets courts dans l'onglet Variables

GoLand n'affiche plus le nom complet du paquet dans l'onglet Variables du débogueur. Vous ne verrez plus que la dernière partie du nom complet.

Démonstration du fonctionnement de Show Types

Masquer/afficher les types d'objets

Si les types d'objets prennent trop de place dans l'onglet Variables, vous pouvez cliquer avec le bouton droit de la souris dans la zone de l'onglet et désactiver l'option Show Types dans le menu qui s'affiche. Vous pourrez la réactiver en la sélectionnant à nouveau dans le même menu.

L'exécutable Delve conçu pour l'ARM64 est désormais disponible dans GoLand

Delve pour Linux ARM64

À partir de cette version, GoLand intègre Delve conçu pour l'architecture ARM64 et le débogage sur Linux ARM fonctionne désormais automatiquement.

Nous avons également amélioré le message d'erreur lorsque GoLand n'intègre pas Delve pour des architectures spécifiques. L'IDE vous précise désormais explicitement la nature du problème.

Tests

Génération de code avec des assertions testify

Un modèle pour les assertions testify

Nous avons ajouté un nouveau modèle pour les tests de table avec des assertions testify. Si vous avez déjà utilisé assert dans votre paquet, GoLand générera du code avec les assertions lorsque vous appuyez sur Alt + Ins et choisissez l'option nécessaire.

Nouveaux correctifs rapides

Utilisation d'un correctif rapide pour mettre en forme correctement une chaîne de caractères

Correctif rapide de la mise en forme des chaînes de caractères des erreurs

GoLand now has a quick-fix for an inspection that warns you about incorrect formatting of error strings: “Error strings should not be capitalized or end with punctuation”. Appuyez sur Alt + Entrée, et GoLand vous proposera de corriger le format de la chaîne.

Utilisation d'un correctif rapide pour export type

Correctif rapide pour export type

Si vous avez écrit une fonction exportée qui renvoie un type non exporté, GoLand vous suggérera un correctif rapide pour exporter ce type.

Autres changements concernant Go

Une fenêtre contextuelle affiche des informations sur le contexte.TODO()

inspectioncontext.TODO()

Nous avons ajouté une inspection qui met en évidence les occurrences de context.TODO(). Vous pouvez l'activer dans Settings | Editor | Inspections. L'inspection servira de rappel pour modifier context.TODO() si le Context à utiliser n'était pas clair au moment de la rédaction.

Un commentaire TODO est ajouté lorsque vous utilisez l'action Implement Methods.

Commentaire //TODO implement me

Nous avons ajouté le commentaire //TODO implement me pour les modèles générés lorsque vous utilisez l'action Implement Methods. Ces commentaires spéciaux sont mis en évidence dans l'éditeur, indexés et répertoriés dans la fenêtre d'outils TODO, ce qui permet de les utiliser comme des rappels des méthodes non implémentées.

Développement à distance

Section Remote Development sur l'écran de bienvenue de GoLand

GoLand prend désormais en charge une version bêta des workflows de développement à distance.

Vous pouvez configurer des workflows de développement à distance directement à partir de l'écran de bienvenue de GoLand. Vous pouvez aussi utiliser JetBrains Gateway, notre nouvelle application qui sert de point d'entrée à tous vos backends distants.

Vous trouverez sur cette page des instructions pour vos premiers pas en développement à distance.

Client HTTP

Ajout d'une requête grpc dans un fichier http

Prise en charge des requêtes gRPC

Le client HTTP de GoLand prend maintenant en charge les requêtes gRPC et leur saisie semi-automatique. Si vous initiez vos requêtes par le mot clé GRPC, le client HTTP les traitera comme des requêtes gRPC.

Génération d'une requête gRPC en cliquant sur une icône de gouttière dans un fichier proto

Vous pouvez générer automatiquement une requête gRPC dans le client HTTP en cliquant sur les icônes de gouttière dans vos fichiers .proto.

Exécution d'un appel de procédure à distance par streaming serveur

Actuellement, le client HTTP peut exécuter des RPC unaires et en streaming serveur. Comme dans les requêtes HTTP ordinaires, le corps de la requête et les réponses sont des fichiers JSON simples.

Le client HTTP a reçu plusieurs améliorations dont vous trouverez les détails ici.

Améliorations du VCS

Exécution de l'action Checkout and Rebase onto Current

Checkout and Rebase onto Current pour les branches distantes

L'action Checkout and Rebase onto Current vous permet d'extraire la branche sélectionnée et de la rebaser sur une branche actuellement extraite. Elle est maintenant disponible pour les branches distantes.

Exécution de l'action Push All up to Here

Nouvelle action Push All up to Here

Parfois, plusieurs commits sont prêts à être livrés alors que d'autres sont encore en cours de réalisation. Dans ce cas, il est préférable de n'envoyer en push que ceux en lesquels vous avez confiance.

Vous pouvez maintenant envoyer les commits en push jusqu'à celui que vous avez sélectionné dans l'onglet Log de la fenêtre d'outils Git. Pour cela, choisissez le commit auquel vous voulez vous arrêter, cliquez droit pour appeler le menu contextuel, et sélectionnez la nouvelle action Push All up to Here.

Paramètres de contrôle des versions

Réorganisation des paramètres VCS

Nous avons amélioré l'accessibilité et l'organisation des paramètres VCS. Le nœud Version Control dans Settings répertorie désormais tous les paramètres disponibles.

Améliorations de l'interface utilisateur

Barre Evaluate expression dans l'onglet Variables

Evaluate expression dans l'onglet Variables

La fonctionnalité Evaluate expression est désormais disponible dans l'onglet Variables de la fenêtre d'outils Debug.

Division des onglets dans la fenêtre d'outils Run

Onglets divisés dans la fenêtre d'outils Run

Vous pouvez maintenant diviser la fenêtre d'outils Run en glissant-déposant les onglets dans la zone en surbrillance. Pour annuler cette division, cliquez droit sur le volet supérieur et sélectionnez Unsplit dans le menu contextuel.

Utilisation de la fenêtre Bookmarks

Nouvelle fenêtre Bookmarks

Nous avons une nouvelle fenêtre d'outils Bookmarks. À partir de maintenant, tous les fichiers et dossiers que vous marquez comme importants à l'aide du raccourci F11 se retrouveront dans cette fenêtre.

Profileur

Comparaison de deux instantanés et visualisation de la différence sur le graphique de flamme

Visualiser les différences dans des instantanés

Vous pouvez visualiser la différence entre deux instantanés sur un graphique de flamme. Appuyez deux fois sur Maj et saisissez « Open Profiler Snapshots » dans la barre de recherche. Ouvrez un instantané de la liste, répétez les mêmes actions, et ouvrez-en un autre.

Cliquez ensuite sur le bouton Compare With Baseline dans l'onglet de l'un des instantanés. Dans le menu, sélectionnez l'instantané auquel vous souhaitez comparer. Un onglet Diff distinct s'ouvrira avec les résultats de la comparaison.

Terminal

Démonstration de la prise en charge des couleurs 24 bits dans le terminal intégré sous Windows

ConPTy

GoLand’s terminal supports the new ConPTY API on Windows. We addressed several problems users were having with the old implementation, which was based on winpty, and enabled PTY on Windows by default.

Avec ConPTY, les couleurs 24 bits sont prises en charge dans le terminal intégré.

Saisie dans le terminal de GoLand avec la prise en charge de Typeahead tout en travaillant sur une machine distante

Typeahead

Auparavant, lorsque vous saisissiez des caractères dans le terminal de GoLand en travaillant sur une machine distante, l'IDE ne pouvait pas afficher les caractères aussi rapidement que sur une machine locale en raison de la latence.

Ce n'est plus un problème grâce à la prise en charge de typeahead. Notre terminal intégré prédit les modifications du texte et les affiche instantanément en gris clair.

Développement web

Téléchargement de modules ES6 distants à l'aide d'un correctif rapide sur le chemin d'importation dans les fichiers ES6

Prise en charge des URL dans les déclarations import

Vous pouvez télécharger des modules ES6 distants à l'aide d'un correctif rapide sur le chemin d'importation dans les fichiers ES6. Le module sera téléchargé avec toutes ses dépendances. Pour l'essayer, placez le curseur sur le chemin d'importation, puis appuyez sur Alt+Entrée et sélectionnez Download module.

Saisie de code dans un fichier HTML et suggestions de saisie semi-automatique

Amélioration de la saisie semi-automatique du code pour le HTML

Nous avons amélioré la saisie semi-automatique du code en HTML. Chaque fois que vous saisissez un nom de balise ou une abréviation dans l'éditeur ou que vous invoquez la saisie semi-automatique de code, GoLand vous présente immédiatement des suggestions pertinentes.

Auparavant, il ne les montrait que si vous commenciez par saisir un crochet ouvrant (<). La saisie semi-automatique du code pour les références aux entités de caractères a également été améliorée.

Mise à jour des paquets npm avec le correctif rapide « Update (nom du paquet) to the latest version »

Nouvelle inspection pour la mise à jour des dépendances

Vous pouvez mettre à jour vos paquets npm vers la dernière version directement depuis l'éditeur. Ouvrez votre fichier package.json, placez le curseur sur la version du paquet que vous souhaitez mettre à jour, puis appuyez sur Alt+Entrée et sélectionnez Update … to the latest version.

Placement des éléments d'un fichier JavaScript sur des lignes séparées, puis à nouveau sur une seule ligne

Placement des éléments sur plusieurs lignes

GoLand a été mis à jour avec une action d'intention pour les projets JavaScript qui vous permet de mettre rapidement des éléments séparés par des virgules sur des lignes séparées, et, si nécessaire, de les remettre sur une seule ligne.

Améliorations des bases de données

Vue agrégée pour une plage de cellules dans une base de données

Aggregate view pour une plage de cellules

Nous avons ajouté la possibilité d'afficher le regroupement Aggregate view pour une plage de cellules. Sélectionnez simplement la plage de cellules pour laquelle vous voulez afficher la vue, puis cliquez droit et sélectionnez Show Aggregate View. Une valeur agrégée unique s'affiche dans la barre d'état, et vous pouvez désigner la valeur que vous souhaitez.

Fractionnement de l'onglet de l'éditeur

Onglets indépendants pour les éditeurs

Si vous fractionnez l'éditeur et ouvrez la même table, les éditeurs de données seront complètement indépendants. Vous pouvez y définir des filtres et un tri différents.

Nouvelle inspection des expressions booléennes dans les clauses WHERE et HAVING

Vérification des expressions booléennes

Nous avons une nouvelle inspection pour les expressions booléennes dans les clauses WHERE et HAVING.

Si l'expression ne semble pas être explicitement booléenne, elle est mise en évidence en jaune et vous êtes averti avant d'exécuter une telle requête.

Cela fonctionne pour ClickHouse, Couchbase, Db2, H2, Hive/Spark, MySQL/MariaDB, Redshift, SQLite et Vertica. Dans toutes les autres bases de données, cela est signalé comme une erreur.

Navigation depuis les cellules sélectionnées vers les données associées

Navigation par clé étrangère à l'aide de plusieurs valeurs

Dans l'éditeur de données, vous pouvez sélectionner plusieurs valeurs et naviguer vers les données correspondantes.

Détection d'un type de colonne dans un fichier CSV. Il s'affiche dans une fenêtre contextuelle.

Types de colonne automatiques dans les fichiers CSV

GoLand détecte les types de colonnes dans les fichiers CSV, et vous pouvez maintenant trier les données en fonction d'une valeur numérique. Auparavant, les données dans les colonnes étaient traitées comme du texte et le tri ne fonctionnait pas comme prévu.

Des suggestions de saisie semi-automatique du code s'affichent pour un opérateur de filtre MongoDB

MongoDB : saisie semi-automatique pour filter {} et sort {}

La saisie semi-automatique du code fonctionne désormais lors du filtrage des données dans les collections MongoDB.

Des polices différentes dans l'éditeur et dans le reste de l'IDE

Police personnalisée pour l'éditeur de données

Vous pouvez définir les polices pour l'éditeur de données séparément du reste de l'IDE. Pour choisir la police, cliquez sur Settings | Tools | Database | Data views | Use custom font.

Mises à jour d'accessibilité

Nous avons résolu certains problèmes d'accessibilité afin d'améliorer le confort du travail avec le lecteur d'écran. Nous avons désactivé la fenêtre contextuelle d'outils et celle de documentation rapide qui s'affichaient au passage de la souris.

La prise en charge de l'accessibilité sous macOS a également été renforcée. Nous avons résolu plusieurs problèmes liés à la mise au point de VoiceOver et rendu possible la création de projets à l'aide d'un lecteur d'écran. Pour minimiser les distractions pendant que vous codez, nous avons réduit le nombre d'infobulles d'aide qui émettent des sons.