José : Tout d’abord, GitHub Copilot peut nous suggérer des lignes de codes entières, des expressions ou des déclarations de fonctions. On peut soit les accepter ou les modifier selon nos besoins. Il peut également refactoriser et optimiser notre code, il va le rendre plus “propre” (moins de lignes). Git Hub Copilot peut également répondre à nos questions en analysant le code déjà présent dans notre environnement de travail.
Par exemple, en lui soumettant l’extrait de code suivant :

Le Copilot nous précise que l‘extrait de code fourni peut être simplifié en utilisant un objet de mappage au lieu de plusieurs conditions if-else, et nous propose cette amélioration :

Il la commente ainsi : « Dans cette version, j’ai créé un objet de correspondance etatToIndex qui associe chaque ETAT_OPERATION à l’index correspondant dans le tableau de données. »
Cette optimisation proposée par l’outil nous permet d’incrémenter l’élément correct dans le tableau de données avec une seule ligne de code, éliminant ainsi le besoin de multiples conditions if-else.
Simon : Une autre fonctionnalité incontournable de GitHub Copilot est qu’il peut décrypter le code. Parfois, on se retrouve face à un code long, complexe et qui n’est pas commenté. Face à cela, GitHub Copilot a la faculté d’utiliser les fichiers présents, de les décrypter et les expliquer.
Par exemple, nous souhaitions avoir un éclairage sur ce code et voici quel a été son retour :

« La fonction est un gestionnaire d’événements qui est déclenché lorsque l’utilisateur effectue une recherche.Elle prend en entrée un événementde type AutoCompleteCompleteEvent qui contient la requête de recherche de l’utilisateur.
Au début de la fonction, un service de recherche est sélectionné en fonction de la valeur de this.label. Si this.label est égal à « siret », le service de recherche par SIRET est utilisé. Sinon, le service de recherche par nom est utilisé.
Ensuite, la fonction s’abonne au service de recherche sélectionné. Lorsque le service de recherche renvoie des résultats, la fonction de rappel passée à subscribe est exécutée. Cette fonction de rappel transforme chaque client renvoyé par le service de recherche.
Enfin, la liste des clients transformés est affectée à this.clients, qui est probablement utilisée ailleurs dans le composant pour afficher les résultats de la recherche. »