Examen de las características de finalización de código de GitHub Copilot
GitHub Copilot proporciona dos tipos de sugerencias en línea. Las sugerencias de texto fantasma aparecen como texto atenuado en la ubicación actual del cursor mientras escribe. Las siguientes sugerencias de edición (NES) predicen tanto la ubicación como el contenido de la siguiente edición de código en función de los cambios recientes realizados.
Recibirá sugerencias de texto fantasma al realizar las siguientes acciones:
- Escriba una línea de código parcial o completa en el editor.
- Escriba un comentario de código parcial o completo en el editor.
- Escriba una línea de código en blanco en el editor.
Las sugerencias de edición siguientes aparecen automáticamente a medida que edita el código. Predicen qué cambio es probable que realice a continuación en función de las ediciones recientes y se muestran con un indicador especial que muestra la ubicación de edición sugerida.
Escenarios comunes de sugerencias de edición siguientes
Las siguientes sugerencias de edición son especialmente útiles en tres escenarios de codificación:
-
Detectar errores: NES detecta problemas como errores tipográficos (
conts x = 5→const x = 5), expresiones ternarias invertidas y operadores de comparación incorrectos y, a continuación, sugiere la corrección correcta. -
Cambios de intención en cascada: al cambiar el nombre de un tipo o variable, NES sugiere propagar ese cambio a través de todo el código dependiente. Por ejemplo, cambiar el nombre de una clase de
PointaPoint3Ddesencadenar sugerencias para agregar unazcoordenada dondequiera que el código lo necesite. - Refactorización: tras cambiar el nombre de una variable, NES sugiere actualizar todas las demás instancias. Después de pegar el código, NES sugiere adaptarlo para que coincida con el estilo del código circundante.
Generar una sugerencia de texto fantasma
GitHub Copilot acelera el desarrollo de aplicaciones al sugerir finalizaciones de código basadas en el código que está escribiendo.
Por ejemplo, supongamos que desea crear un método de C# denominado addInt que devuelve la suma de dos enteros. Si empieza a escribir la firma del método, GitHub Copilot sugiere el código que cree que desea crear.
La sugerencia de texto fantasma se muestra sin resaltado de sintaxis coloreada. Esto ayuda a diferenciar la sugerencia del código existente. Puede aceptar el código sugerido presionando la tecla Tab.
Puede presionar la tecla Esc para descartar una sugerencia.
El ejemplo addInt es un poco simple, por lo que es posible que se pregunte cómo hace GitHub Copilot algo más complejo.
Supongamos que desea crear un método que acepte una lista de números y devuelva la suma de los números primos contenidos en la lista. Puede asignar un nombre al método addPrimeNumbersInNumericList. Al empezar a escribir la firma del método, GitHub Copilot genera una sugerencia automáticamente. Por ejemplo:
Es importante revisar las sugerencias antes de aceptarlas. Esta sugerencia de texto fantasma es buena, por lo que puede aceptar la sugerencia presionando la tecla Tab.
Vamos a continuar con el escenario un poco más.
Una vez que la sugerencia se combina en el código, observe que el isPrime método está subrayado en rojo. Esto se debe a que el isPrime método todavía no existe en el código.
GitHub Copilot está entrenado para seguir los procedimientos recomendados, que incluyen dividir problemas complejos en piezas más pequeñas y manejables. En este caso, GitHub Copilot sugiere crear un método isPrime independiente para comprobar si un número es primo.
GitHub Copilot está listo para sugerir un fragmento de código para el método isPrime. Al escribir una línea en blanco debajo del método
Las sugerencias de texto fantasma aceleran el proceso de desarrollo proporcionando fragmentos de código. Pero, ¿qué ocurre si las sugerencias no son exactamente lo que necesitas? GitHub Copilot proporciona una interfaz para administrar sugerencias de texto fantasma.
Administrar sugerencias de texto fantasma
Cuando GitHub Copilot sugiere una finalización de texto fantasma, también proporciona una interfaz para administrar las sugerencias. Puede aceptar una sugerencia, revisar otras sugerencias o descartar las sugerencias.
Al mantener el puntero del mouse sobre una sugerencia de autocompletar, se le presentan varias opciones para administrar las sugerencias.
La interfaz predeterminada para administrar sugerencias incluye las siguientes opciones:
- Acepte la sugerencia (en su totalidad) seleccionando Aceptar. También puede aceptar la sugerencia presionando la tecla Tab.
- Acepte parcialmente la sugerencia seleccionando Accept Word. También puede aceptar parcialmente una sugerencia presionando las
Ctrl+→teclas (flecha derecha). - Para ver sugerencias alternativas, seleccione
>o<. También puede ver las sugerencias alternativas presionando lasAlt+]teclas oAlt+[.
Al seleccionar la opción Aceptar Palabra se acepta la siguiente palabra en una sugerencia. Esto resulta útil cuando desea aceptar parte de la sugerencia y, a continuación, seguir escribiendo su propio código. Por ejemplo, puede aceptar la primera palabra de la sugerencia del método isPrime.
Continúe seleccionando Accept Word hasta que haya aceptado la parte de la sugerencia que desee.
Al seleccionar el icono de puntos suspensivos (...) situado a la derecha del botón Aceptar Word se proporcionan opciones adicionales, como Accept Line y Always Show Toolbar.
Al seleccionar la opción Always Show Toolbar (Mostrar siempre) se garantiza que la barra de herramientas permanece visible al usar métodos abreviados de teclado para administrar sugerencias de texto fantasma. Al seleccionar la opción Abrir panel de finalizaciones se abre el panel de finalizaciones de GitHub Copilot.
Nota:
Para aceptar una línea completa de una sugerencia, debe configurar un método abreviado de teclado personalizado para el editor.action.inlineSuggest.acceptNextLine comando. Esta opción no está disponible de forma predeterminada en la barra de herramientas.
Generación de sugerencias de código a partir de comentarios
Además de sugerir una autocompletación basada en código, GitHub Copilot puede usar comentarios en el código para sugerir fragmentos de código. Use frases de lenguaje natural para describir el código que desea crear. Esto permite a GitHub Copilot proponer sugerencias de autocompletar que cumplan con requisitos específicos. Por ejemplo, podría especificar el tipo de algoritmo que desea usar en un cálculo, o qué métodos y propiedades desea agregar a una clase.
Volvamos al ejemplo de número primo. En este punto, tiene el código siguiente:
int addPrimeNumbersInNumericList(List<int> numbers)
{
int sum = 0;
foreach (int number in numbers)
{
if (IsPrime(number))
{
sum += number;
}
}
return sum;
}
private bool IsPrime(int number)
{
if (number <= 1)
{
return false;
}
for (int i = 2; i <= Math.Sqrt(number); i++)
{
if (number % i == 0) return false;
}
return true;
}
Los métodos addPrimeNumbersInNumericList y isPrime parecen estar completos. Sin embargo, todavía necesita una lista de números que se puedan usar como argumento al llamar al método addPrimeNumbersInNumericList. Puede escribir un comentario que describa la lista de números que desee. Por ejemplo, una lista de 100 números aleatorios que van desde 1 y 1000.
Al empezar a escribir el comentario, GitHub Copilot sugiere una autocompleción que lo completa automáticamente. GitHub Copilot usa el código circundante para mejorar sus sugerencias. Por ejemplo, si empieza a escribir el comentario // create, GitHub Copilot usa el código circundante para predecir lo que desea crear. En este caso, GitHub Copilot usa el método addPrimeNumbersInNumericList para predecir que desea crear a list of numbers.
A medida que continúa escribiendo el comentario, GitHub Copilot actualiza su sugerencia de autocompletar. Cuando esté listo para aceptar la sugerencia, seleccione Aceptar o presione la tecla Tab.
Al crear una nueva línea de código después del comentario, GitHub Copilot comienza a generar un fragmento de código basado en el comentario y el código existente.
Acepte cada una de las sugerencias a medida que aparezcan. Si GitHub Copilot no ha terminado, genera otra sugerencia para que la aceptes.
Si escribe una nueva línea de código una vez completado el fragmento de código, GitHub Copilot genera otras sugerencias de completado automático según los requisitos de su proyecto de código.
Resumen
Las sugerencias de texto fantasma y las sugerencias de edición siguientes le ayudan a escribir código de forma más eficaz y precisa. Las sugerencias de texto fantasma aparecen como texto atenuado en la ubicación del cursor mientras escribe; Las sugerencias de edición siguientes predicen la ubicación y el contenido de la siguiente edición en función de los cambios recientes. Puede generar una sugerencia de texto fantasma escribiendo una línea de código parcial o completa, un comentario de código parcial o completo o una línea de código en blanco. Puede aceptar una sugerencia presionando la tecla Tab o descartarla presionando la tecla Esc. Puede administrar sugerencias mediante la barra de herramientas que aparece al mantener el puntero sobre una sugerencia. La barra de herramientas le permite revisar sugerencias alternativas, aceptar una sugerencia, aceptar una palabra de una sugerencia o abrir el panel de finalizaciones de GitHub Copilot para ver más sugerencias.