03 Copilot dans l’IDE
Copilot Chat et Inline Chat
3.3 Copilot Chat dans l’IDE
Définition
Copilot Chat dans l’IDE est une interface conversationnelle intégrée à ton éditeur.
Au lieu d’attendre une suggestion automatique, tu poses une question ou tu donnes une instruction. GitHub indique que Copilot Chat dans l’éditeur peut donner des suggestions de code, expliquer du code, générer des tests unitaires et suggérer des correctifs.
Exemples de demandes utiles
Explain what this function does.
Generate unit tests for this file.
Find potential security issues in this code.
Refactor this function to improve readability.
Why am I getting this TypeScript error?
Suggest edge cases for this validation function.Exemple : expliquer du code
Code :
def calculate_score(events):
score = 0
for event in events:
if event["type"] == "purchase":
score += 10
elif event["type"] == "refund":
score -= 5
return max(score, 0)Prompt :
Explain this function step by step and identify possible edge cases.Réponse attendue de Copilot :
The function initializes a score to 0, iterates over events, adds 10 for purchases, subtracts 5 for refunds, and ensures the final score is not negative.
Potential edge cases:
- event missing the "type" key
- events is None
- unknown event type
- non-list inputExemple : générer des tests
Prompt :
Generate pytest unit tests for this function.
Include normal cases, empty input, unknown event types, and missing keys.Copilot peut proposer :
import pytest
def test_purchase_increases_score():
events = [{"type": "purchase"}]
assert calculate_score(events) == 10
def test_refund_does_not_go_below_zero():
events = [{"type": "refund"}]
assert calculate_score(events) == 0
def test_empty_events():
assert calculate_score([]) == 0
def test_unknown_event_type():
events = [{"type": "login"}]
assert calculate_score(events) == 0Mais attention : il n’a pas forcément couvert missing keys.
Tu dois donc compléter :
def test_missing_type_key():
events = [{}]
with pytest.raises(KeyError):
calculate_score(events)Ou modifier la fonction pour gérer ce cas proprement.
Quand utiliser Copilot Chat ?
Utilise Copilot Chat quand tu veux :
- poser une question ;
- comprendre un code existant ;
- générer des tests ;
- analyser une erreur ;
- demander une comparaison ;
- obtenir une stratégie ;
- demander une explication ;
- faire une review ciblée ;
- interagir en plusieurs étapes.
Différence avec inline suggestions
| Besoin | Meilleure interface |
|---|---|
| Compléter une ligne ou une fonction | Inline suggestion |
| Comprendre un fichier | Copilot Chat |
| Générer des tests avec contraintes | Copilot Chat |
| Corriger une erreur précise | Copilot Chat ou Inline Chat |
| Modifier plusieurs fichiers | Copilot Edits (edit mode) / Agent Mode selon le niveau d’autonomie |
| Planifier une refonte | Plan Mode |
3.4 Inline Chat
Définition
Inline Chat est une conversation Copilot directement dans le contexte du code sélectionné ou du fichier ouvert.
Dans VS Code, la documentation indique Command+I sur macOS et Ctrl+I sur Windows/Linux pour ouvrir Inline Chat. Les raccourcis dépendent de l’IDE et de la surface : ne généralise pas cette combinaison à GitHub Copilot partout.
Au lieu d’ouvrir un grand panneau Chat, tu demandes une modification ou une explication directement dans l’éditeur.
Exemple
Tu sélectionnes ce code :
function getUsers(users) {
return users.filter(u => u.active == true)
}Tu demandes en Inline Chat :
Improve this code and make it more idiomatic.Copilot peut proposer :
function getActiveUsers(users) {
return users.filter(user => user.active === true);
}Tu peux ensuite accepter ou refuser la modification.
Exemple plus utile
Code :
def read_file(path):
f = open(path)
return f.read()Prompt Inline Chat :
Refactor this function to safely handle file opening and closing.Suggestion :
def read_file(path):
with open(path, "r", encoding="utf-8") as file:
return file.read()Ici, Inline Chat est adapté parce que la modification est locale et claire.
Quand utiliser Inline Chat ?
Utilise Inline Chat pour :
- modifier un bloc précis ;
- améliorer une fonction ;
- expliquer une ligne ;
- corriger une erreur locale ;
- ajouter un petit comportement ;
- générer une docstring ;
- simplifier un morceau de code.
Quand éviter Inline Chat ?
Évite Inline Chat si :
- la tâche touche plusieurs fichiers ;
- tu dois comprendre toute l’architecture ;
- tu dois créer un plan de migration ;
- tu dois coordonner plusieurs changements ;
- tu dois analyser des dépendances complexes.
Dans ces cas-là, utilise plutôt Copilot Chat, Copilot Edits (edit mode) ou Plan Mode.
À retenir pour le GH-300
- Copilot Chat : poser des questions, comprendre, générer des tests avec contraintes, itérer en plusieurs étapes.
- Inline Chat : modifier un bloc précis dans l’éditeur, sans quitter le fichier.
- Dès que la tâche touche plusieurs fichiers ou demande un plan, on sort d’Inline Chat.
- Le bon choix dépend du périmètre : une ligne, un bloc, plusieurs fichiers.
Questions de la leçon
Chargement de la question…
Pour finir
À retenir
- Copilot Chat : poser des questions, comprendre, générer des tests avec contraintes, itérer en plusieurs étapes.
- Inline Chat : modifier un bloc précis dans l’éditeur, sans quitter le fichier.
- Dès que la tâche touche plusieurs fichiers ou demande un plan, on sort d’Inline Chat.
- Le bon choix dépend du périmètre : une ligne, un bloc, plusieurs fichiers.
Objectif GH-300
- Déclencher les fonctions IDE (Use GitHub Copilot features in the IDE)
Achèvement
Il reste à faire : .