100 — Setup & posture
Durée : ~20 min · Complexité : ⭐ · Pré-requis : aucun
Avant de personnaliser Copilot, il faut savoir où il vit dans ton IDE. Ce module pose la posture : trois surfaces, trois usages, zéro confusion.
Objectif
À la fin de ce module, tu sais :
- Installer l’extension GitHub Copilot dans VS Code et connecter ton compte.
- Distinguer les trois surfaces : inline suggestion, chat, agent mode.
- Choisir la bonne surface selon l’intention (compléter, dialoguer, déléguer).
- Différencier un prompt ponctuel d’une instruction persistante.
Ce que tu vas apprendre
- Recommander Copilot à ton repo via
.vscode/extensions.json. - Vérifier que ton compte GitHub est connecté à l’extension.
- Déclencher une suggestion inline sur une fonction simple.
- Obtenir le même résultat via le chat.
- Activer l’agent mode et le laisser créer plusieurs fichiers.
- Nommer ce qui change entre prompt et instruction.
Contenu pédagogique
Surface 1 — installer l’extension
On veut que VS Code recommande Copilot à toute personne qui ouvre le repo.
// .vscode/extensions.json
{
"recommendations": [
- "dbaeumer.vscode-eslint"
+ "dbaeumer.vscode-eslint",
+ "GitHub.copilot",
+ "GitHub.copilot-chat"
]
}
Au prochain code ., VS Code propose d’installer les deux extensions. Une fois la commande GitHub Copilot: Sign in validée, l’icône Copilot apparaît dans la barre d’état.
Surface 2 — suggestion inline
On écrit le squelette d’une fonction et on laisse Copilot compléter la ligne grisée.
// fizzbuzz.ts
export function fizzBuzz(n: number): string {
- // TODO
+ if (n % 15 === 0) return "FizzBuzz";
+ if (n % 3 === 0) return "Fizz";
+ if (n % 5 === 0) return "Buzz";
+ return String(n);
}
Tu valides chaque ligne avec Tab. Copilot ne voit que le fichier ouvert : zéro contexte projet, zéro test généré. Surface idéale pour du code local et trivial.
Surface 3 — agent mode
On bascule en agent mode dans le chat et on demande la même fonction avec ses tests. L’agent crée deux fichiers en un tour.
+ // fizzbuzz-agent.ts
+ export function fizzBuzz(n: number): string {
+ if (n % 15 === 0) return "FizzBuzz";
+ if (n % 3 === 0) return "Fizz";
+ if (n % 5 === 0) return "Buzz";
+ return String(n);
+ }
+ // fizzbuzz.test.ts
+ import { describe, it, expect } from "vitest";
+ import { fizzBuzz } from "./fizzbuzz-agent";
+
+ describe("fizzBuzz", () => {
+ it("retourne FizzBuzz pour 15", () => {
+ expect(fizzBuzz(15)).toBe("FizzBuzz");
+ });
+ });
L’agent a lu l’arborescence, choisi un emplacement, créé deux fichiers et proposé un diff que tu acceptes ou refuses globalement. Surface idéale pour une tâche multi-fichiers cadrée.
Prompt vs instruction
Un prompt est une demande ponctuelle (« génère-moi ces tests »). Une instruction est une règle persistante chargée à chaque interaction (« utilise Vitest, jamais Jest »). Les modules 01 et 02 traitent chacun de ces leviers.
Exercice
Énoncé — En 10 minutes, génère la fonction fizzBuzz en TypeScript via les trois surfaces et compare les résultats.
Étapes guidées :
- Installe l’extension Copilot et connecte ton compte GitHub.
- Crée
fizzbuzz-inline.tset laisse la suggestion inline compléter le corps. - Ouvre le chat, demande
fizzBuzzen TypeScript, sauvegarde le résultat dansfizzbuzz-chat.ts. - Passe en agent mode, demande la fonction plus un test Vitest.
- Note dans un fichier
OBSERVATIONS.mdune différence concrète par surface.
Critère de réussite : les trois fichiers existent et OBSERVATIONS.md cite au moins une différence par surface.
Validation
Tu peux passer au module suivant si :
- L’icône Copilot est verte dans la barre d’état VS Code.
- Tu as déclenché une suggestion inline, une réponse chat et une action agent dans la même session.
- Tu sais expliquer en une phrase quand utiliser chaque surface.
- Tu différencies prompt ponctuel et instruction persistante.
Pour aller plus loin
- Quickstart GitHub Copilot — installation et sign-in pas-à-pas.
- Copilot dans VS Code — vue d’ensemble — les trois surfaces côté Microsoft.
- Agent mode dans VS Code — référence du mode multi-fichiers.
- Module 10 — Copilot CLI (à venir).
Suivant : 101 — Instructions personnalisées