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

Texte
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 :

Python
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 :

Texte
Explain this function step by step and identify possible edge cases.

Réponse attendue de Copilot :

Texte
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 input

Exemple : générer des tests

Prompt :

Texte
Generate pytest unit tests for this function.
Include normal cases, empty input, unknown event types, and missing keys.

Copilot peut proposer :

Python
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) == 0

Mais attention : il n’a pas forcément couvert missing keys.

Tu dois donc compléter :

Python
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

BesoinMeilleure interface
Compléter une ligne ou une fonctionInline suggestion
Comprendre un fichierCopilot Chat
Générer des tests avec contraintesCopilot Chat
Corriger une erreur préciseCopilot Chat ou Inline Chat
Modifier plusieurs fichiersCopilot Edits (edit mode) / Agent Mode selon le niveau d’autonomie
Planifier une refontePlan 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 :

JavaScript
function getUsers(users) {
  return users.filter(u => u.active == true)
}

Tu demandes en Inline Chat :

Texte
Improve this code and make it more idiomatic.

Copilot peut proposer :

JavaScript
function getActiveUsers(users) {
  return users.filter(user => user.active === true);
}

Tu peux ensuite accepter ou refuser la modification.

Exemple plus utile

Code :

Python
def read_file(path):
    f = open(path)
    return f.read()

Prompt Inline Chat :

Texte
Refactor this function to safely handle file opening and closing.

Suggestion :

Python
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.

D2 · Utiliser les fonctionnalités de GitHub Copilot · 25–30 %