Generación de código mediante sugerencias de finalización de código GitHub Copilot

Completado

GitHub Copilot puede proporcionar sugerencias de finalización de código para numerosos lenguajes de programación y una amplia variedad de marcos, pero funciona especialmente bien para Python, JavaScript, TypeScript, Ruby, Go, C# y C++. Las finalizaciones de línea de código se generan en función del contexto del código que está escribiendo. Puede aceptar, rechazar o aceptar parcialmente las sugerencias proporcionadas por GitHub Copilot.

GitHub Copilot proporciona dos maneras de generar finalizaciones de línea de código:

  • A partir de un comentario: Puede generar finalizaciones de línea de código escribiendo un comentario que describa el código que desea generar. GitHub Copilot proporciona sugerencias de finalización de código en función del comentario que escriba.

  • Desde código: Puede generar finalizaciones de línea de código iniciando una línea de código o presionando Entrar después de una línea de código completada. GitHub Copilot proporciona sugerencias de finalización de código en función del código que escriba.

Usar GitHub Copilot para generar finalizaciones de línea de código a partir de un comentario

GitHub Copilot genera sugerencias de finalización de código basadas en el comentario y en el contexto existente de la aplicación.

Puede usar comentarios para describir fragmentos de código, métodos, estructuras de datos y otros elementos de código.

Supongamos que tiene el siguiente fragmento de código:


namespace ReportGenerator;

class QuarterlyIncomeReport
{
    static void Main(string[] args)
    {
        // create a new instance of the class
        QuarterlyIncomeReport report = new QuarterlyIncomeReport();

        // call the GenerateSalesData method

        // call the QuarterlySalesReport method
        
    }

    public void QuarterlySalesReport()
    {

        Console.WriteLine("Quarterly Sales Report");
    }
}    

Por ejemplo, el comentario siguiente podría usarse para crear una estructura de datos:


/* public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price */

GitHub Copilot genera una o varias sugerencias de finalización de código basadas en el comentario de código y los archivos de código abiertos en el editor.

Captura de pantalla que muestra la finalización del código de un comentario que describe una estructura de datos.

Observe los tipos de datos usados para declarar los campos de la estructura de datos. GitHub Copilot selecciona los tipos de datos y los nombres de variables en función del código existente y el comentario de código. GitHub Copilot intenta determinar cómo la aplicación usa variables y define los tipos de datos en consecuencia.

Cuando GitHub Copilot genera más de una sugerencia, puede recorrer las sugerencias seleccionando las flechas izquierda o derecha (> o <) situadas a la izquierda del botón Accept. Esto le permite revisar y seleccionar la sugerencia que mejor se adapte a sus necesidades.

Está bien aceptar una sugerencia de finalización de código que no coincida exactamente con lo que desea. Sin embargo, los cambios necesarios para "corregir" la sugerencia deben estar claros. En este caso, algunos de los tipos de datos no son los que desea, pero puede ajustarlos después de aceptar la acción de autocompletar sugerida.

Si ninguna de las opciones sugeridas es similar a lo que necesita, hay dos cosas que puede probar. Para abrir una nueva pestaña Editor que contenga una lista de otras sugerencias, presione las teclas Ctrl + Entrar. Esta combinación de teclas de acceso rápido abre una nueva pestaña que contiene hasta 10 sugerencias más. Cada sugerencia va seguida de un botón que puede usar para aceptarla. La pestaña se cierra automáticamente después de aceptar una sugerencia. La otra opción consiste en presionar la tecla Esc para descartar las sugerencias e intentarlo de nuevo. Puede ajustar el comentario de código para proporcionar más contexto con el que GitHub Copilot funcione.

Nota:

GitHub Copilot ocasionalmente puede proponer una sugerencia en fases. Si esto sucede, puede presionar Entrar para ver las fases adicionales de la sugerencia después de presionar la tecla Tab.

Para aceptar una estructura de datos sugerida, presione la tecla Tab o seleccione Aceptar.

Para modificar los tipos de datos de campo, actualice el código de la siguiente manera:

public struct SalesData
{
    public DateOnly dateSold;
    public string departmentName;
    public int productID;
    public int quantitySold;
    public double unitPrice;
}

Realizar ajustes rápidos en las sugerencias de finalización de código ayuda a garantizar su compilación del código deseado. Es especialmente importante realizar correcciones al principio del proceso de desarrollo cuando todavía es necesario desarrollar partes grandes del código base. Las finalizaciones de código posteriores se basan en el código que ya ha escrito, por lo que es importante asegurarse de que el código sea lo más preciso posible.

Use las sugerencias de edición siguientes para seguir los cambios de código

Las finalizaciones de texto fantasma son excelentes para completar el nuevo código mientras lo escribes. Pero la mayoría de la codificación diaria implica editar código existente : cambiar el nombre de una variable, actualizar un tipo de datos o corregir un error lógico. Las siguientes sugerencias de edición de GitHub Copilot (NES) están diseñadas exactamente para este escenario.

Al realizar una edición, NES analiza el cambio y predice dónde debe ocurrir la próxima edición y lo que debe ser esa edición, incluso si se encuentra en una línea diferente o en otra parte del archivo. Esto le mantiene en el flujo sin tener que buscar manualmente cada ubicación que requiera actualizaciones.

Para habilitar las sugerencias de edición siguientes, establezca el valor de github.copilot.nextEditSuggestions.enabled en true en Visual Studio Code.

Una vez habilitado, puede usar NES de las maneras siguientes:

  1. Realice una edición en el editor; por ejemplo, cambie el nombre de una variable o cambie una firma de método.

  2. Busque la flecha de canaleta que aparece a la izquierda del editor. La flecha apunta hacia la ubicación de la siguiente edición sugerida.

  3. Presione Tab para ir a la ubicación de edición sugerida.

  4. Presione tab de nuevo para aceptar la sugerencia o presione Escape para descartarla.

Estos son algunos escenarios comunes en los que NES es especialmente útil:

  • Propagación de cambio de nombre: cambia el nombre de una variable una vez y NES sugiere actualizar todas las demás referencias a ella en el archivo.
  • Cambios de tipo: Cambiar el tipo de datos de un campo y NES sugiere actualizar el código aguas abajo que lo utiliza.
  • Correcciones lógicas: corrija una condición invertida o un error tipográfico en una palabra clave y NES marca la sección de código relacionada que requiere actualizaciones.
  • Refactorización: después de copiar y pegar un bloque de código, NES sugiere cómo adaptarlo para que coincida con el estilo de código circundante.

Nota:

Las siguientes sugerencias de edición predicen el siguiente cambio más probable en función de las ediciones actuales. Revise siempre cada sugerencia antes de aceptarla, ya que la corrección adecuada para su escenario específico puede diferir.

Resumen

Las finalizaciones de línea de código son una característica eficaz de GitHub Copilot que puede ayudarle a generar código de forma rápida y eficaz. Mediante el uso de comentarios para describir el código que desea generar, puede crear estructuras de datos, métodos y otros elementos de código con un esfuerzo mínimo. Además, GitHub Copilot puede generar finalizaciones de línea de código basadas en el código que escriba, lo que le permite crear aplicaciones complejas con facilidad.