Next Edit Suggestions
Las Next Edit Suggestions (NES) representan una evolución natural de las completions tradicionales, ofreciendo predicciones inteligentes sobre la siguiente modificación lógica que podrías realizar en tu código. Mientras que las completions se centran en completar la línea actual, NES analiza el contexto completo del archivo para sugerir ediciones futuras basadas en patrones de desarrollo comunes.
Esta funcionalidad se activa automáticamente cuando GitHub Copilot detecta que has realizado una acción que típicamente requiere cambios adicionales relacionados. Por ejemplo, al agregar un nuevo parámetro a una función, NES puede sugerir actualizar todas las llamadas a esa función en el archivo actual.
Activación y comportamiento de NES
Las sugerencias de próxima edición aparecen como texto fantasma (ghost text) en color gris, similar a las completions, pero en ubicaciones diferentes del cursor actual. Estas sugerencias se muestran automáticamente cuando Copilot identifica patrones que requieren cambios consistentes:
// Después de modificar esta función:
function calcularTotal(precio, impuesto, descuento) {
return precio * (1 + impuesto) * (1 - descuento);
}
// NES sugiere automáticamente actualizar esta llamada:
const total = calcularTotal(100, 0.21); // Aparece sugerencia para agregar el tercer parámetro
Para aceptar una sugerencia NES, simplemente presiona Tab
cuando el texto fantasma aparezca. A diferencia de las completions que se aceptan en la posición del cursor, NES puede sugerir cambios en líneas completamente diferentes del archivo.
Diferencias clave con code completions
Las completions tradicionales se enfocan en completar la declaración actual basándose en el contexto inmediato, mientras que NES adopta una perspectiva más amplia del flujo de trabajo:
Code Completions:
- Completan la línea donde está el cursor
- Se basan en el contexto local inmediato
- Aparecen mientras escribes
- Se centran en sintaxis y APIs
Next Edit Suggestions:
- Predicen cambios en otras partes del código
- Analizan patrones de refactoring comunes
- Aparecen después de realizar una modificación
- Se enfocan en consistencia y mantenimiento
// Ejemplo de diferencia práctica:
interface Usuario {
nombre: string;
email: string;
edad: number; // ← Agregaste esta propiedad
}
// Completion: Te ayuda a escribir "edad: number"
// NES: Sugiere actualizar funciones que usan Usuario para incluir edad
Predicción de ediciones lógicas
El sistema NES utiliza análisis de patrones para identificar secuencias de edición comunes en el desarrollo. Cuando realizas una modificación, Copilot evalúa el impacto potencial en el resto del código y sugiere los cambios más probables:
Patrones de refactoring detectados:
- Agregar/eliminar parámetros de función
- Cambios en nombres de propiedades
- Actualizaciones de imports después de reorganizar código
- Modificaciones en estructuras de datos
# Después de cambiar el nombre de una variable:
class ProductoService:
def __init__(self):
self.productos_activos = [] # Renombraste de 'productos' a 'productos_activos'
def obtener_productos(self):
return self.productos # ← NES sugiere cambiar a 'productos_activos'
Navegación eficiente entre sugerencias
Cuando NES presenta múltiples sugerencias relacionadas, puedes navegar entre ellas de forma secuencial. Cada vez que aceptas una sugerencia con Tab
, Copilot evalúa si existen cambios adicionales relacionados y presenta la siguiente sugerencia automáticamente:
// Secuencia de sugerencias NES:
public void procesarPedido(String id, double monto, String cliente) {
// 1. Modificaste la firma del método
}
// 2. NES sugiere actualizar primera llamada:
procesarPedido("001", 150.0, "Juan"); // Tab para aceptar
// 3. Automáticamente sugiere la siguiente:
procesarPedido("002", 200.0, "María"); // Tab para aceptar
// 4. Continúa con las demás llamadas...
Esta navegación fluida permite actualizar múltiples ubicaciones relacionadas sin necesidad de buscar manualmente cada ocurrencia.
Casos de uso prácticos
Las NES resultan especialmente útiles en escenarios de mantenimiento y refactoring:
Gestión de imports:
// Después de agregar una nueva función exportada:
export function validarEmail(email) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}
// En otro archivo, NES sugiere actualizar el import:
import { calcularTotal, validarEmail } from './utils'; // Sugiere agregar validarEmail
Actualizaciones de sintaxis:
# Al cambiar de f-strings a format():
mensaje = "Hola {}".format(nombre) # Cambiaste esta línea
# NES sugiere cambios similares en el archivo:
error = "Error: {}".format(codigo) # ← Sugerencia automática
info = "Info: {}".format(detalle) # ← Siguiente sugerencia
Cambios en estructuras de datos:
// Después de modificar una interfaz:
interface ConfiguracionApp {
tema: 'claro' | 'oscuro';
idioma: string;
notificaciones: boolean; // ← Agregaste esta propiedad
}
// NES sugiere actualizar objetos que implementan la interfaz:
const config: ConfiguracionApp = {
tema: 'claro',
idioma: 'es',
notificaciones: true // ← Sugerencia para mantener consistencia
};
Configuración básica
Para habilitar o deshabilitar Next Edit Suggestions, accede a la configuración de VSCode (Ctrl+,
) y busca "copilot suggestions":
{
"github.copilot.enable": {
"*": true,
"plaintext": false,
"markdown": true
},
"github.copilot.editor.enableAutoCompletions": true
}
También puedes usar el comando de paleta (Ctrl+Shift+P
) y buscar "GitHub Copilot: Toggle Suggestions" para activar/desactivar rápidamente todas las sugerencias de Copilot, incluyendo NES.
La configuración por defecto mantiene NES activo para la mayoría de lenguajes de programación, pero puedes personalizar el comportamiento por tipo de archivo según tus preferencias de flujo de trabajo.
Fuentes y referencias
Documentación oficial y recursos externos para profundizar en VSCode
Documentación oficial de VSCode
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, VSCode es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.
Más tutoriales de VSCode
Explora más contenido relacionado con VSCode y continúa aprendiendo con nuestros tutoriales gratuitos.
Aprendizajes de esta lección
- Comprender qué son las Next Edit Suggestions y cómo difieren de las completions tradicionales.
- Aprender cómo se activan y cómo aceptar las sugerencias NES en el editor.
- Identificar los patrones de edición que NES puede detectar y sugerir automáticamente.
- Conocer la navegación entre múltiples sugerencias NES para actualizar el código eficientemente.
- Aplicar NES en casos prácticos de mantenimiento, refactoring y gestión de imports en proyectos reales.