GitHub Copilot en VS Code se bloquea con espacios de trabajo grandes: solución
🔍 WiseChecker

GitHub Copilot en VS Code se bloquea con espacios de trabajo grandes: solución

GitHub Copilot en VS Code puede bloquearse o dejar de responder cuando abres un espacio de trabajo que contiene cientos o miles de archivos. Esto ocurre porque Copilot escanea toda la carpeta abierta para construir su contexto para las sugerencias de código, y los espacios de trabajo grandes consumen memoria y CPU en exceso. Este artículo explica por qué Copilot falla en proyectos grandes y proporciona tres soluciones específicas para restaurar la estabilidad.

Puntos clave: Solución de bloqueos de GitHub Copilot en espacios de trabajo grandes de VS Code

  • VS Code settings.json > git.ignoredRepos: Excluye repositorios Git grandes del escaneo de Copilot para reducir la carga de memoria.
  • VS Code settings.json > github.copilot.enable: Desactiva Copilot para tipos de archivo o lenguajes específicos para los que no necesitas sugerencias.
  • VS Code > Archivo > Agregar carpeta al espacio de trabajo: En lugar de abrir toda la carpeta raíz, agrega solo las subcarpetas en las que trabajas activamente.

ADVERTISEMENT

Por qué Copilot se bloquea en espacios de trabajo grandes

GitHub Copilot utiliza un modelo de lenguaje que analiza el archivo actual y los archivos cercanos para generar sugerencias. Cuando abres un espacio de trabajo grande, Copilot indexa todos los archivos en el árbol de carpetas. Para proyectos con más de 500 archivos, esta indexación puede consumir más de 1 GB de RAM y hacer que el proceso host de extensiones de VS Code supere su límite de memoria. El resultado es un editor congelado, un bloqueo o un mensaje de error que dice “El host de extensiones terminó inesperadamente”.

La causa raíz no es un error en Copilot en sí. Es una limitación de recursos. El host de extensiones en VS Code tiene un límite de memoria predeterminado de 512 MB en sistemas de 32 bits y 1 GB en sistemas de 64 bits. Un espacio de trabajo grande con muchas dependencias, archivos generados o carpetas node_modules supera fácilmente ese límite. Una vez que el host de extensiones se bloquea, Copilot deja de funcionar hasta que recargues la ventana.

Cómo afecta el tamaño del espacio de trabajo al rendimiento de Copilot

Copilot no necesita escanear todos los archivos para proporcionar sugerencias útiles. Solo necesita el archivo actual más algunos archivos relacionados. Sin embargo, la versión actual de Copilot en VS Code no limita su alcance de escaneo de forma predeterminada. Lee todo el directorio raíz del espacio de trabajo, incluidas carpetas ocultas como .git, node_modules y la salida de compilación. Cada archivo aumenta el uso de memoria de forma lineal. Un espacio de trabajo con 10,000 archivos puede hacer que Copilot use 2 GB o más de RAM, lo que provoca un bloqueo en cuestión de segundos después de abrir el proyecto.

Pasos para evitar que Copilot se bloquee en espacios de trabajo grandes

Aplica estas soluciones en el orden mostrado. Cada solución reduce la cantidad de datos que Copilot debe procesar. Comienza con la solución más efectiva: excluir carpetas grandes de la indexación de Git.

Método 1: Excluir repositorios grandes con git.ignoredRepos

  1. Abre settings.json de VS Code
    Presiona Ctrl+Shift+P para abrir la Paleta de comandos. Escribe Preferencias: Abrir configuración (JSON) y presiona Enter.
  2. Agrega la configuración git.ignoredRepos
    Inserta esta línea dentro del objeto JSON:
    "git.ignoredRepos": ["C:/path/to/large-repo", "D:/other-repo"]
    Reemplaza las rutas con las rutas absolutas de los repositorios Git grandes en tu espacio de trabajo. Usa barras diagonales en Windows.
  3. Guarda y recarga la ventana
    Presiona Ctrl+S para guardar settings.json. Luego presiona Ctrl+Shift+P, escribe Desarrollador: Recargar ventana y presiona Enter.

Esta configuración le dice a Copilot que omita la indexación de esos repositorios Git por completo. Es la forma más rápida de reducir el uso de memoria porque Copilot deja de escanear las carpetas más grandes de tu espacio de trabajo.

Método 2: Desactivar Copilot para tipos de archivo específicos

  1. Abre settings.json de VS Code
    Presiona Ctrl+Shift+P y ejecuta Preferencias: Abrir configuración (JSON).
  2. Agrega la configuración github.copilot.enable
    Inserta este bloque dentro del objeto JSON:
    "github.copilot.enable": {
    "": true,
    "plaintext": false,
    "yaml": false,
    "markdown": false
    }

    Establece el valor en false para cualquier lenguaje donde no necesites sugerencias de Copilot. El asterisco mantiene Copilot habilitado para todos los demás lenguajes.
  3. Guarda y recarga la ventana
    Presiona Ctrl+S, luego Ctrl+Shift+P y ejecuta Desarrollador: Recargar ventana.

Desactivar Copilot para documentación, configuración o archivos generados evita que la extensión cargue esos archivos en memoria. Esto reduce el número total de archivos que Copilot procesa.

Método 3: Abrir solo subcarpetas en lugar de la raíz

  1. Cierra el espacio de trabajo actual
    Presiona Ctrl+Shift+W para cerrar el espacio de trabajo. No guardes el archivo de espacio de trabajo si se te solicita.
  2. Agrega subcarpetas individuales a un nuevo espacio de trabajo
    Ve a Archivo > Agregar carpeta al espacio de trabajo. Selecciona solo las subcarpetas que necesitas para tu tarea actual. Por ejemplo, en lugar de abrir toda la carpeta src, abre solo src/components y src/utils.
  3. Guarda el archivo de espacio de trabajo
    Ve a Archivo > Guardar espacio de trabajo como. Dale un nombre como frontend.code-workspace. Esto te permite volver a abrir el mismo subconjunto de carpetas más tarde sin repetir la selección.

Este método es el más manual pero te da control total sobre qué archivos puede ver Copilot. Es la mejor opción cuando trabajas solo en una parte de un monorepo.

ADVERTISEMENT

Si Copilot aún tiene problemas después de la solución principal

Los tres métodos anteriores resuelven los bloqueos en la mayoría de los espacios de trabajo grandes. Sin embargo, algunos casos extremos requieren pasos adicionales.

Copilot no genera sugerencias después de excluir carpetas

Si excluyes demasiadas carpetas, Copilot puede no tener contexto para trabajar. Abre el icono de estado de Copilot en la barra de estado de VS Code. Muestra si Copilot está activo. Si está atenuado, has desactivado Copilot para el tipo de archivo actual o has excluido la carpeta que contiene tu archivo activo. Vuelve a habilitar Copilot para ese lenguaje en settings.json estableciendo su valor en true.

El host de extensiones aún se bloquea después de aplicar todas las soluciones

Si el host de extensiones continúa bloqueándose, el espacio de trabajo podría contener un archivo extremadamente grande, como un volcado de base de datos o un paquete JavaScript minificado. Abre el espacio de trabajo y busca archivos de más de 10 MB. Elimina o mueve esos archivos fuera de la carpeta del espacio de trabajo. Luego recarga la ventana.

Copilot se bloquea solo al abrir ciertos tipos de archivo

Algunos tipos de archivo, como JSON con muchos objetos anidados o YAML con miles de líneas, hacen que Copilot consuma memoria adicional. Abre settings.json y agrega esas extensiones de archivo específicas a la lista deshabilitada en github.copilot.enable. Por ejemplo, agrega "json": false si trabajas con archivos JSON grandes de configuración.

Comportamiento de bloqueo de Copilot: espacio de trabajo grande vs. pequeño

Elemento Espacio de trabajo grande (500+ archivos) Espacio de trabajo pequeño (menos de 100 archivos)
Uso de memoria por Copilot 800 MB a 2 GB 100 MB a 300 MB
Frecuencia de bloqueo del host de extensiones A menudo dentro de los 2 minutos de abrir Rara
Efecto de git.ignoredRepos Reduce la memoria en 40-60% Efecto mínimo
Efecto de deshabilitar tipos de archivo Reduce el número de archivos en 30-50% Efecto mínimo
Orden de solución recomendado git.ignoredRepos, luego deshabilitar tipos de archivo, luego subcarpetas Ninguno necesario

GitHub Copilot en VS Code es estable para proyectos pequeños o medianos, pero requiere configuración explícita para espacios de trabajo grandes. Usa git.ignoredRepos para excluir repositorios completos, desactiva Copilot para tipos de archivo que no necesitas y abre solo las subcarpetas que editas activamente. Después de aplicar estos cambios, Copilot generará sugerencias sin bloquearse, incluso en monorepos con miles de archivos. Para mantenimiento continuo, revisa periódicamente tu settings.json para asegurarte de que las rutas excluidas sigan coincidiendo con la estructura actual de tu proyecto.

ADVERTISEMENT