Ejercicio: Uso de Copilot para autocompletar código

Completado

A medida que desarrolle con Copilot, encontrará que puede ayudarle a completar el código más rápido. Copilot puede autocompletar el código que está escribiendo y también sugerir código que pueda necesitar. En este ejercicio, usará Copilot para generar nuevos métodos en el proyecto Trie. ¡Comencemos!

Uso de Copilot para autocompletar código

  1. Abra el archivo Trie.cs

  2. Escriba una nueva línea después del Trie constructor y escriba el código siguiente:

    // Search for a word in the trie
    public bool Search(string word) 
    {
    
  3. Espere a que Copilot genere código.

    Copilot podría sugerir código similar al siguiente bloque de código:

    // Search for a word in the trie
    public bool Search(string word)
    {
        TrieNode current = root;
        foreach (char c in word)
        {
            if (!current.HasChild(c))
            {
                return false;
            }
            current = current.Children[c];
        }
        return current.IsEndOfWord;
    }
    
  4. Presione Tab o haga clic en Aceptar para aplicar la sugerencia de código.

  5. Vaya al método AutoSuggest.

    Este método se basa en otro método GetAllWordsWithPrefix incompleto. Puede usar Copilot para generar este método.

  6. Vaya al GetAllWordsWithPrefix método y quite la instrucción return;

    private List<string> GetAllWordsWithPrefix(TrieNode root, string prefix)
    {
    
    }
    
  7. Espere a que Copilot genere código.

    Copilot debería sugerir código automáticamente al quitar la instrucción return. Si no es así, puede intentar escribir lo siguiente: List<string> words = y Copilot debe completar el código.

    Copilot podría sugerir código similar al siguiente bloque de código:

    private List<string> GetAllWordsWithPrefix(TrieNode node, string prefix)
    {
        List<string> words = new List<string>();
    
        if (node.IsEndOfWord)
        {
            words.Add(prefix);
        }
    
        foreach (var child in node.Children)
        {
            words.AddRange(GetAllWordsWithPrefix(child.Value, prefix + child.Key));
        }
    
        return words;
    }
    
  8. Presione Tab o haga clic en Aceptar para aplicar la sugerencia de código.

Revisa tu trabajo

En esta tarea, probará los métodos que creó con Copilot para comprobar que funcionan según lo previsto.

  1. Abra el archivo Program.cs.

  2. Quite la marca de comentario de la llamada al método SearchWord :

    Trie dictionary = InitializeTrie(words);
    SearchWord();
    // PrefixAutocomplete();
    // DeleteWord();
    // GetSpellingSuggestions();
    
  3. Vaya al método y quite la SearchWord() marca de comentario del siguiente bloque de código:

    /*
    if (input != null && dictionary.Search(input))
    {
        Console.WriteLine($"Found \"{input}\" in dictionary");
    }
    */
    
  4. En el explorador de archivos, haga clic con el botón derecho en el archivo Program.cs y haga clic en Abrir en terminal integrado.

  5. Escriba dotnet run para ejecutar el programa.

  6. Escriba una palabra para buscar como "sigue" o "beans".

  7. Compruebe que la salida es similar a la siguiente:

    Enter a word to search for, or press Enter to exit.
    follows
    Found "follows" in dictionary
    Enter a word to search for, or press Enter to exit.
    beans
    Did not find "beans" in dictionary
    Enter a word to search for, or press Enter to exit.
    

    Si el código muestra resultados diferentes, revise el código para encontrar el error y realizar actualizaciones. Vuelva a ejecutar el código para ver si ha corregido el problema. Continúe actualizando y ejecutando el código hasta que genere los resultados esperados.

  8. Comente las llamadas a cualquier método y quite la marca de comentario de la PrefixAutocomplete llamada al método:

    Trie dictionary = InitializeTrie(words);
    // SearchWord();
    PrefixAutocomplete();
    // DeleteWord();
    // GetSpellingSuggestions();
    
  9. Escriba dotnet run para ejecutar el programa.

  10. Escriba un prefijo para buscar como "pl" o "fo".

    Presione Tab para autocompletar el prefijo. Puede presionar Tab varias veces para recorrer las sugerencias. Presione espacio para aceptar la sugerencia e iniciar una nueva palabra.

  11. Compruebe que la salida es similar a la siguiente:

    The dictionary contains the following words:
    as, astronaut, asteroid, are, around, cat, cars, cares, careful, carefully, for, forgot, follows, from, front, mellow, mean, money, monday, monster, place, plan, planet, planets, plans, the, their, they, there, towards,
    
    Enter a prefix to search for, then press Tab to cycle through search results. Press Enter to exit.
    place plan forgot 
    

    Si el código muestra resultados diferentes, revise el código para encontrar el error y realizar actualizaciones. Vuelva a ejecutar el código para ver si ha corregido el problema. Continúe actualizando y ejecutando el código hasta que genere los resultados esperados.

  12. Convierta en comentario la llamada al método PrefixAutocomplete.