Esaminare chat in linea, azioni smart e chat rapida di GitHub Copilot

Completato

Oltre alla visualizzazione chat, GitHub Copilot Chat offre diversi altri modi per interagire con il programmatore di coppie di intelligenza artificiale. Queste includono chat inline e azioni intelligenti.

Chat inline

Una delle funzionalità principali di GitHub Copilot Chat è rispondere alle domande inline durante la scrittura di codice. In questo modo è possibile sfruttare la potenza dell'intelligenza artificiale direttamente all'interno dell'editor di codice, con un'interruzione minima del flusso di lavoro di sviluppo.

La funzionalità di chat inline è accessibile solo quando un file è aperto nell'editor. Esistono diversi modi per aprire una sessione di chat inline:

  • Selezionare Editor Inline Chat dal menu GitHub Copilot Chat.
  • Usare una scelta rapida da tastiera: CTRL+I.
  • Fare clic con il pulsante destro del mouse all'interno dell'editor di codice, selezionare Copilot dal menu di scelta rapida e quindi selezionare Editor Inline Chat.

Screenshot che mostra come accedere alla chat inline dal menu GitHub Copilot in Visual Studio Code.

È possibile usare una sessione di chat inline per porre domande GitHub Copilot durante la scrittura o l'iterazione del codice.

Quando si apre una sessione di chat inline, l'interfaccia seguente viene presentata nell'editor.

Screenshot che illustra come accedere alla chat inline usando i tasti di scelta rapida in Visual Studio Code.

Si consideri lo scenario seguente:

  • Si sta sviluppando un'applicazione C# che elabora un elenco numerico. I dati vengono elaborati in batch di 100.
  • Usare il frammento di codice seguente per creare un elenco di 100 numeri interi casuali compresi tra 1 e 1000 che è possibile usare per il test.
// create a list of 100 random number between 1 and 1000
List<int> numbers = new List<int>();
Random random = new Random();
for (int i = 0; i < 100; i++)
{
    numbers.Add(random.Next(1, 1000));
}

Il codice funziona correttamente. Tuttavia, cosa accade se i requisiti cambiano? Cosa succede se è necessario verificare che l'elenco non includa numeri duplicati?

Per aggiornare il codice usando GitHub Copilot completamento automatico, è necessario:

  1. Eliminare il codice esistente.
  2. Creare un nuovo commento che rifletta il requisito aggiornato.
  3. Usare GitHub Copilot per generare un nuovo frammento di codice dal commento aggiornato.
  4. Esaminare i suggerimenti e selezionare l'opzione migliore.

Fortunatamente, ciò non è necessario. Una soluzione migliore consiste nell'usare GitHub Copilot Chat per suggerire gli aggiornamenti del codice necessari.

È possibile usare una sessione di chat inline per suggerire un aggiornamento del codice come indicato di seguito:

  1. Evidenziare il frammento di codice da aggiornare.
  2. Premere Ctrl + I per aprire la chat inline.
  3. Chiedi a GitHub Copilot Chat come completare l'aggiornamento.
  4. Esaminare i suggerimenti e selezionare l'opzione migliore.

In questo caso, è possibile chiedere: Update this code to ensure that numbers doesn't include any duplicates

Se si desiderano gli aggiornamenti del codice proposti, è possibile selezionare Accetta e continuare a scrivere codice.

Screenshot che mostra l'aggiornamento consigliato dalla chat inline in Visual Studio Code.

Se non ti piacciono gli aggiornamenti proposti, puoi chiedere GitHub Copilot Chat di generare un altro suggerimento selezionando il Rerun... icona . L'icona Riesegui viene visualizzata come freccia circolare sotto la casella di testo del prompt.

Se eseguendo nuovamente il prompt non ottieni ancora i risultati necessari, prova ad aggiornare il prompt con un contesto aggiuntivo. GitHub Copilot Chat genera suggerimenti migliori quando la richiesta è chiara, concisa e accurata. È possibile scegliere Annulla per chiudere la chat inline senza apportare modifiche.

Azioni intelligenti

Alcune attività sono talmente comuni da poter essere automatizzate. GitHub Copilot Chat include azioni intelligenti che consentono di completare determinate attività senza dover scrivere una richiesta. Le azioni intelligenti sono azioni predefinite che è possibile eseguire direttamente dall'editor Visual Studio Code per eseguire attività di codifica comuni in modo rapido e semplice.

Sono disponibili le seguenti azioni intelligenti:

  • Spiegazione: l'azione Explain genera una descrizione del linguaggio naturale del codice selezionato. Ciò può essere utile per comprendere lo scopo e le funzionalità di un frammento di codice. L'azione Explain è particolarmente utile se si lavora con codice non familiare o se è necessario spiegare il codice ad altri utenti.
  • Correzione: l'azione Fix suggerisce una correzione per il codice selezionato. Ciò può essere utile se si verifica un errore o un problema nel codice e sono necessarie indicazioni su come risolverlo. GitHub Copilot Chat può suggerire modifiche a variabili, strutture di controllo o chiamate di funzione che potrebbero risolvere il problema.
  • Rivedi e commento: l'azione Review and Comment fornisce una revisione del codice selezionato. Ciò può essere utile per identificare potenziali problemi, migliorare la qualità del codice e garantire che vengano seguite le procedure consigliate. L'azione Review and Comment consente di identificare bug, colli di bottiglia delle prestazioni e vulnerabilità di sicurezza nel codice.
  • Genera documenti: l'azione Generate Docs crea la documentazione per il codice selezionato. Ciò può essere utile per documentare la codebase, soprattutto se si sta lavorando a un progetto con più collaboratori o se è necessario condividere il codice con altri utenti.
  • Genera test: l'azione Generate Tests crea unit test per il codice selezionato. Ciò può essere utile per garantire la correttezza e l'affidabilità del codice, soprattutto se si sta lavorando a un progetto con logica complessa o funzionalità critiche.

Per accedere alle azioni intelligenti, fare clic con il pulsante destro del mouse su un frammento di codice nell'editor e selezionare l'azione desiderata dal menu di scelta rapida GitHub Copilot.

Screenshot che illustra come accedere alle azioni intelligenti in Visual Studio Code.

Ancora una volta, si consideri l'app per i numeri primi.

Nella sezione precedente, la chat inline ha suggerito il codice seguente per assicurarsi che numbers non includa duplicati:

// create a list of 100 random numbers between 1 and 1000
List<int> numbers = new List<int>();
Random random = new Random();
while (numbers.Count < 100)
{
    int randomNumber = random.Next(1, 1000);
    if (!numbers.Contains(randomNumber))
    {
        numbers.Add(randomNumber);
    }
}

Sebbene questo codice garantisca una raccolta di elementi univoci, ci potrebbero essere opportunità di miglioramento.

È possibile usare l'azione Rivedi questa smart action per controllare le selezioni del codice. Per usare l'azione intelligente Rivedi questo:

  1. Selezionare un frammento di codice che deve essere esaminato. In questo caso, il codice che genera l'elenco di numeri casuali.

  2. Seleziona Review This dal menu contestuale di GitHub Copilot.

  3. Esaminare gli aggiornamenti suggeriti e selezionare Accetta per applicare le modifiche.

Per il frammento di codice che genera numeri casuali, l'azione Rivedi questa smart action suggerisce quanto segue:

  • Inizializzare List<int> numbers con una capacità di 100 per evitare più ridimensionamenti durante il popolamento.
  • Uso di un HashSet<int> anziché un List<int> per ricerche più veloci durante il controllo dei duplicati.

In questo caso, l'azione intelligente Rivedi questa consente di usare HashSet<int> anziché List<int> per migliorare le prestazioni.

// create a list of 100 random numbers between 1 and 1000
HashSet<int> numbers = new HashSet<int>();
Random random = new Random();
while (numbers.Count < 100)
{
    int randomNumber = random.Next(1, 1000);
    if (!numbers.Contains(randomNumber))
    {
        numbers.Add(randomNumber);
    }
}

int sum = addPrimeNumbersInNumericList(numbers);
Console.WriteLine(sum);

Anche se l'uso di un HashSet oggetto funziona in modo efficiente per garantire una raccolta di elementi univoci, l'aggiornamento crea un nuovo problema. Il addPrimeNumbersInNumericList metodo prevede un oggetto List<int> come input, ma il codice aggiornato crea un oggetto HashSet<int>. Viene generato l'errore di compilazione seguente:

Screenshot che mostra un errore di compilazione in Visual Studio Code.

Fortunatamente, è possibile usare l'azione Correggi intelligente per correggere l'errore. Per usare l'azione Correggi intelligente:

  1. Fare clic con il pulsante destro del mouse sul frammento di codice da correggere. In questo caso, il codice sottolineato in rosso.

  2. Selezionare Fix dal menu di scelta rapida GitHub Copilot.

  3. Esaminare la correzione suggerita e selezionare Accetta per applicare le modifiche.

L'azione Fix intelligente genera uno o più suggerimenti per correggere un errore. In questo caso, uno dei suggerimenti usa il metodo ToList() per convertire il HashSet in un List all'interno della chiamata a addPrimeNumbersInNumericList. Il codice risultante sarà simile al frammento di codice seguente:

// create a list of 100 random numbers between 1 and 1000
HashSet<int> numbers = new HashSet<int>();
Random random = new Random();
while (numbers.Count < 100)
{
    int randomNumber = random.Next(1, 1000);
    if (!numbers.Contains(randomNumber))
    {
        numbers.Add(randomNumber);
    }
}

int sum = addPrimeNumbersInNumericList(numbers.ToList());
Console.WriteLine(sum);

Come sempre, esaminare il suggerimento fornito da GitHub Copilot Chat. Potrebbero esistere soluzioni migliori. È possibile selezionare Accetta per aggiornare il codice con la correzione proposta.

Riassunto

GitHub Copilot Chat offre diversi modi per interagire con il programmatore della coppia di intelligenza artificiale, tra cui chat inline e azioni intelligenti. Queste funzionalità consentono di porre domande, ottenere suggerimenti sul codice ed eseguire attività di codifica comuni in modo rapido e semplice. La chat inline consente di porre GitHub Copilot domande direttamente nell'editor senza cambiare contesto. Le azioni intelligenti forniscono operazioni predefinite, ad esempio la spiegazione del codice, la correzione di errori, la generazione di test e la revisione del codice che è possibile eseguire con un solo clic dal menu di scelta rapida.