Examiner les fonctionnalités de saisie semi-automatique du code de GitHub Copilot

Effectué

GitHub Copilot fournit deux types de suggestions inline. Les suggestions de texte fantôme apparaissent sous forme de texte grisé à l’emplacement actuel du curseur lorsque vous tapez. Les suggestions de modification suivantes (NES) prédisent à la fois l’emplacement et le contenu de votre prochaine modification de code en fonction des modifications récentes que vous avez apportées.

Vous recevez des suggestions de texte fantôme lorsque vous effectuez les actions suivantes :

  • Entrez une ligne de code partielle ou complète dans l’éditeur.
  • Entrez un commentaire de code partiel ou complet dans l’éditeur.
  • Entrez une ligne de code vide dans l’éditeur.

Les suggestions de modification suivantes s’affichent automatiquement lorsque vous modifiez le code. Ils prédisent la modification que vous êtes susceptible d’apporter en fonction de vos modifications récentes et s’affichent avec un indicateur spécial montrant l’emplacement de modification suggéré.

Scénarios courants de suggestion de modification suivante

Les suggestions de modification suivantes sont particulièrement utiles dans trois scénarios de codage :

  • Interceptez les erreurs : NES détecte les problèmes tels que les fautes de frappe (conts x = 5const x = 5), les expressions ternaires inversées et les opérateurs de comparaison incorrects, puis suggère la correction correcte.
  • Modifications de l’intention en cascade : lorsque vous renommez un type ou une variable, NES suggère de propager cette modification via tout le code dépendant. Par exemple, renommer une classe de Point en Point3D déclenche des suggestions pour ajouter une coordonnée z partout où le code en a besoin.
  • Refactorisation : après avoir renommé une variable une seule fois, NES suggère de mettre à jour toutes les autres occurrences. Après le collage du code, NES suggère de l’adapter pour correspondre au style du code environnant.

Générer une suggestion de texte fantôme

GitHub Copilot accélère le développement d'applications en suggérant des complétions de code basées sur le code que vous écrivez.

Par exemple, supposons que vous souhaitez créer une méthode C# nommée addInt qui retourne la somme de deux entiers. Si vous commencez à taper la signature de méthode, GitHub Copilot suggère le code qu’il croit que vous souhaitez créer.

Capture d'écran de l'éditeur Visual Studio Code montrant une suggestion de texte indicatif pour le corps de la méthode addInt.

La suggestion en texte fantôme s'affiche sans coloration syntaxique. Cela permet de différencier la suggestion de votre code existant. Vous pouvez accepter le code suggéré en appuyant sur la touche Tab.

Vous pouvez appuyer sur la touche Échap pour ignorer une suggestion.

L’exemple addInt est un peu simpliste, donc vous vous demandez peut-être comment GitHub Copilot faire avec quelque chose de plus complexe.

Supposons que vous souhaitez créer une méthode qui accepte une liste de nombres et retourne la somme des nombres premiers contenus dans la liste. Vous pouvez nommer la méthode addPrimeNumbersInNumericList. Lorsque vous commencez à taper la signature de méthode, GitHub Copilot génère une suggestion pour vous. Par exemple:

Capture d'écran de l'éditeur Visual Studio Code montrant une suggestion en texte fantôme pour le corps de la méthode addPrimeNumbersInNumericList.

Il est important de passer en revue les suggestions avant de les accepter. Cette suggestion de texte fantôme semble bonne, vous pouvez donc accepter la suggestion en appuyant sur la touche Tab.

Poursuivons le scénario un peu plus loin.

Une fois la suggestion fusionnée dans votre code, vous remarquerez que la isPrime méthode est soulignée en rouge. Cela est dû au fait que la isPrime méthode n’existe pas encore dans le code.

GitHub Copilot est formé pour suivre les meilleures pratiques, qui incluent la décomposition de problèmes complexes en pièces plus petites et plus gérables. Dans ce cas, GitHub Copilot suggère de créer une méthode isPrime distincte pour vérifier si un nombre est premier.

GitHub Copilot est prêt à suggérer un extrait de code pour la méthode isPrime. Lorsque vous entrez une ligne vide sous la méthode addPrimeNumbersInNumericList, GitHub Copilot suggère une méthode isPrime que vous pouvez utiliser.

Capture d'écran de l'éditeur Visual Studio Code montrant une suggestion en texte fantôme pour la méthode d'assistance isPrime apparaissant après la méthode addPrimeNumbersInNumericList.

Les suggestions de texte fantôme accélèrent le processus de développement en fournissant des extraits de code. Mais que se passe-t-il si les suggestions ne sont pas tout à fait ce dont vous avez besoin ? GitHub Copilot fournit une interface permettant de gérer les suggestions de texte fantôme.

Gérer les suggestions de texte fantôme

Lorsque GitHub Copilot suggère une complétion en texte fantôme, il fournit également une interface pour gérer les suggestions. Vous pouvez accepter une suggestion, passer en revue d’autres suggestions ou ignorer les suggestions.

Lorsque vous pointez le pointeur de la souris sur une autocomplétion suggérée, vous disposez de plusieurs options pour gérer les suggestions.

Capture d'écran de l'éditeur Visual Studio Code montrant la barre d'outils de gestion des suggestions en texte fantôme avec Accepter, Accepter le mot, navigation et options supplémentaires.

L’interface par défaut pour la gestion des suggestions comprend les options suivantes :

  • Acceptez la suggestion (en totalité) en sélectionnant Accepter. Vous pouvez également accepter la suggestion en appuyant sur la touche Tab.
  • Acceptez partiellement la suggestion en sélectionnant Accept Word. Vous pouvez également accepter partiellement une suggestion en appuyant sur les Ctrl + touches (flèche droite).
  • Affichez d’autres suggestions en sélectionnant > ou <. Vous pouvez également afficher les suggestions alternatives en appuyant sur les touches Alt + ] ou les Alt + [ touches.

La sélection de l’option Accept Word accepte le mot suivant dans une suggestion. Cela est utile lorsque vous souhaitez accepter une partie de la suggestion, puis continuer à taper votre propre code. Par exemple, vous pouvez accepter le premier mot de la isPrime suggestion de méthode.

Continuez à sélectionner Accept Word jusqu'à ce que vous ayez accepté autant de suggestions que vous le souhaitez.

La sélection de l'icône de points de suspension (...) à droite du bouton Accepter le mot fournit des options supplémentaires, telles que Accepter la ligne et Toujours afficher la barre d'outils.

La sélection de l’option Always Show Toolbar garantit que la barre d’outils reste visible lors de l’utilisation de raccourcis clavier pour gérer les suggestions de texte fantôme. La sélection de l'option Ouvrir le panneau des complétions ouvre le panneau des complétions GitHub Copilot.

Note

Pour accepter une ligne entière d’une suggestion, vous devez configurer un raccourci clavier personnalisé pour la editor.action.inlineSuggest.acceptNextLine commande. Cette option n’est pas disponible par défaut dans la barre d’outils.

Générer des suggestions de code à partir de commentaires

Outre la suggestion d’une autocomplétion basée sur le code, GitHub Copilot pouvez utiliser des commentaires de code pour suggérer des extraits de code. Utilisez des expressions en langage naturel pour décrire le code que vous souhaitez créer. Cela permet à GitHub Copilot de proposer des propositions d'autocomplétion qui répondent à des exigences spécifiques. Par exemple, vous pouvez spécifier le type d’algorithme que vous souhaitez utiliser dans un calcul ou les méthodes et propriétés que vous souhaitez ajouter à une classe.

Revenons à l’exemple de nombre premier. À ce stade, vous disposez du code suivant :

int addPrimeNumbersInNumericList(List<int> numbers)
{
    int sum = 0;
    foreach (int number in numbers)
    {
        if (IsPrime(number))
        {
            sum += number;
        }
    }
    return sum;
}

private bool IsPrime(int number)
{
    if (number <= 1)
    {
        return false;
    }
    for (int i = 2; i <= Math.Sqrt(number); i++)
    {
        if (number % i == 0) return false;
    }
    return true;
}

Les méthodes addPrimeNumbersInNumericList et isPrime semblent être complètes. Toutefois, vous avez toujours besoin d’une liste de nombres qui peuvent être utilisés comme argument lorsque vous appelez la addPrimeNumbersInNumericList méthode. Vous pouvez écrire un commentaire qui décrit la liste des nombres souhaités. Par exemple, une liste de 100 nombres aléatoires compris entre 1 et 1 000.

Lorsque vous commencez à entrer le commentaire, GitHub Copilot suggère une autocomplétion qui termine le commentaire pour vous. GitHub Copilot utilise votre code environnant pour améliorer ses suggestions. Par exemple, si vous commencez à entrer le commentaire // create, GitHub Copilot utilise le code environnant pour prédire ce que vous souhaitez créer. Dans ce cas, GitHub Copilot utilise la méthode addPrimeNumbersInNumericList pour prédire que vous souhaitez créer a list of numbers.

Capture d'écran de l'éditeur Visual Studio Code montrant une suggestion de texte fantôme complétant un commentaire pour '// créer une liste de nombres'.

Lorsque vous continuez à écrire votre commentaire, GitHub Copilot met à jour sa suggestion d'autocomplétion. Lorsque vous êtes prêt à accepter la suggestion, sélectionnez Accepter ou appuyez sur Tabulation.

Lorsque vous créez une ligne de code après le commentaire, GitHub Copilot commence à générer un extrait de code basé sur le commentaire et votre code existant.

Screenshot de Visual Studio Code éditeur affichant une suggestion de texte fantôme pour la première ligne de code basée sur le commentaire ci-dessus.

Acceptez chacune des suggestions telles qu’elles apparaissent. Si GitHub Copilot n'a pas terminé, il génère une autre suggestion que vous pouvez accepter.

Si vous entrez une nouvelle ligne de code une fois l’extrait de code terminé, GitHub Copilot génère une autre suggestion de saisie semi-automatique en fonction des exigences de votre projet de code.

Résumé

Les suggestions de texte fantôme et les suggestions de modification suivantes vous aident à écrire du code plus efficacement et avec précision. Les suggestions de texte fantôme apparaissent sous forme de texte grisé à l’emplacement du curseur au fur et à mesure que vous tapez ; Les suggestions de modification suivantes prédisent l’emplacement et le contenu de votre prochaine modification en fonction de vos modifications récentes. Vous pouvez générer une suggestion de texte fantôme en entrant une ligne de code partielle ou complète, un commentaire de code partiel ou complet ou une ligne de code vide. Vous pouvez accepter une suggestion en appuyant sur la touche Tab ou la rejeter en appuyant sur Échap. Vous pouvez gérer les suggestions à l’aide de la barre d’outils qui s’affiche lorsque vous pointez sur une suggestion. La barre d’outils vous permet de passer en revue d’autres suggestions, d’accepter une suggestion, d’accepter un mot d’une suggestion ou d’ouvrir le panneau GitHub Copilot Achèvements pour afficher d’autres suggestions.