Presentación

Visual Studio Code, generalmente abreviado como VS Code, es un editor de código desarrollado por Microsoft. Está disponible gratuitamente para Windows, macOS y Linux, así como en una versión más ligera que puede utilizarse desde un navegador.

La herramienta busca conservar la rapidez y sencillez de un editor de texto, al mismo tiempo que ofrece gran parte de las funciones esperadas en un entorno de desarrollo integrado. Incluye especialmente resaltado de sintaxis, autocompletado inteligente, navegación por el código, depuración, pruebas, control de versiones, terminal y gestión de proyectos.

A diferencia de un IDE tradicional que incluye un conjunto fijo de herramientas para un lenguaje concreto, Visual Studio Code se apoya en gran medida en un sistema de extensiones. El usuario puede construir un entorno adaptado a Python, JavaScript, TypeScript, Rust, C++, Java, PHP, Go, .NET, tecnologías web, notebooks y muchos otros usos.

Esta modularidad permite utilizar el mismo editor para proyectos muy diferentes. Una instalación mínima puede servir para modificar rápidamente unos cuantos archivos, mientras que una configuración más completa puede convertirse en un entorno integral para desarrollar, probar, documentar, contenerizar y desplegar una aplicación.

Visual Studio Code está construido a partir del proyecto Code - OSS, cuyo código fuente es publicado por Microsoft bajo licencia MIT. Sin embargo, la versión oficial descargada desde el sitio de Visual Studio Code añade elementos propios de Microsoft, entre ellos la marca, el acceso al Visual Studio Marketplace, determinadas recomendaciones de extensiones y algunas integraciones bajo licencia propietaria.

Esta distinción explica por qué Visual Studio Code se describe en ocasiones como open source y, en otras, como propietario. Su base principal es abierta, pero la distribución oficial de Microsoft no corresponde exactamente a una compilación neutral del repositorio Code - OSS.

Distribuciones como VSCodium recompilan esta base abierta eliminando los elementos de marca y telemetría propios de Microsoft. Ofrecen una experiencia similar, aunque pueden presentar diferencias relacionadas con el Marketplace o con determinadas extensiones reservadas a la familia de productos Visual Studio.

Visual Studio Code también ocupa un lugar central en el ecosistema del desarrollo asistido por inteligencia artificial. GitHub Copilot ofrece sugerencias en línea, chat, modificaciones específicas, agentes capaces de trabajar en varios archivos y conexiones con herramientas externas.

Estas funciones de IA no modifican el modelo económico básico de VS Code: el editor sigue siendo gratuito. Sin embargo, GitHub Copilot constituye un servicio independiente, con un plan gratuito limitado y distintas ofertas de pago.

Funcionalidades

  • Edición de código multiplataforma: uso en Windows, macOS y Linux con una interfaz y atajos ampliamente coherentes entre sistemas.

  • Versión Web: acceso a una edición ligera de VS Code desde un navegador mediante vscode.dev, sin instalación local.

  • Explorador de archivos: navegación por la estructura de un proyecto, creación de archivos y carpetas, desplazamientos, cambios de nombre y operaciones habituales.

  • Espacios de trabajo: apertura de una carpeta completa o creación de un workspace que reúne varias carpetas en una misma ventana.

  • Edición mediante pestañas: apertura simultánea de numerosos archivos, grupos de editores, división horizontal o vertical y reorganización del espacio de trabajo.

  • Resaltado de sintaxis: reconocimiento y formato del código según el lenguaje utilizado.

  • IntelliSense: autocompletado contextual, información sobre parámetros, documentación integrada, sugerencias de símbolos y asistencia durante la escritura.

  • Navegación por el código: acceso a definiciones, referencias, implementaciones, símbolos, llamadas y estructuras de un proyecto.

  • Cambio de nombre de símbolos: modificación coherente de una función, variable, clase o método en los archivos afectados cuando el lenguaje lo permite.

  • Refactorización: extracción de métodos, organización de imports, desplazamiento de código y otras transformaciones proporcionadas por las extensiones de lenguaje.

  • Diagnósticos en tiempo real: visualización de errores, advertencias y problemas detectados por compiladores, linters o servidores de lenguaje.

  • Acciones rápidas: sugerencias de corrección, imports automáticos, transformaciones de código y resolución de determinados diagnósticos.

  • Snippets: inserción rápida de estructuras de código reutilizables con campos de entrada y variables.

  • Múltiples cursores: edición simultánea de varias posiciones u ocurrencias dentro de un documento.

  • Búsqueda global: búsqueda y sustitución en un archivo, carpeta o espacio de trabajo completo.

  • Expresiones regulares: filtrado avanzado y transformaciones complejas mediante búsquedas basadas en patrones.

  • Paleta de comandos: acceso rápido a la mayoría de las funciones del editor sin recorrer los menús.

  • Atajos personalizables: modificación completa de las combinaciones de teclas e importación de keymaps inspirados en otros editores.

  • Terminal integrado: ejecución de comandos, scripts, herramientas de compilación, gestores de paquetes y servidores sin salir del editor.

  • Varios terminales: creación de pestañas, división de paneles y uso simultáneo de distintos shells.

  • Integración con el shell: reconocimiento de comandos, enlaces hacia archivos, estado de ejecución, navegación entre comandos y detección de determinados errores.

  • Tareas automatizadas: configuración de comandos para compilar, probar, iniciar un servidor, generar archivos o ejecutar otras operaciones repetitivas.

  • Depurador integrado: puntos de interrupción, inspección de variables, pila de llamadas, ejecución paso a paso y consola de depuración.

  • Configuraciones de inicio: definición de varios escenarios de arranque y depuración dentro de los archivos del proyecto.

  • Depuración de JavaScript y TypeScript: compatibilidad integrada con aplicaciones Node.js y aplicaciones web ejecutadas en Chrome o Edge.

  • Adaptadores de depuración: incorporación de compatibilidad con otros lenguajes y entornos mediante extensiones.

  • Gestión de pruebas: descubrimiento, ejecución, filtrado y seguimiento de pruebas desde una interfaz dedicada.

  • Cobertura de código: visualización de los resultados de cobertura cuando el framework y la extensión utilizados lo permiten.

  • Git integrado: detección automática de repositorios, seguimiento de archivos modificados, staging, commits, ramas, sincronización y consulta de diferencias.

  • Editor de diferencias: comparación de versiones de un archivo en paralelo o en línea.

  • Resolución de conflictos: herramientas integradas y editor de fusión de tres vías para resolver conflictos de Git.

  • Historial gráfico: visualización de ramas, commits, relaciones entre versiones y modificaciones realizadas en los archivos.

  • Git worktrees y stashes: gestión de varias ramas de trabajo y almacenamiento temporal de modificaciones.

  • Integración con GitHub: clonación y publicación de repositorios, autenticación y acceso a determinadas funciones de GitHub.

  • Pull requests e issues: creación, consulta y revisión mediante la extensión oficial GitHub Pull Requests and Issues.

  • Otros sistemas de control de versiones: incorporación de Subversion, Mercurial, Azure DevOps u otros proveedores mediante extensiones.

  • Visual Studio Marketplace: catálogo de extensiones que añaden lenguajes, depuradores, temas, linters, herramientas cloud e integraciones diversas.

  • Instalación automática de actualizaciones de extensiones: mantenimiento de las extensiones actualizadas según la configuración del usuario.

  • Recomendaciones de extensiones: sugerencias adaptadas al tipo de proyecto, los archivos abiertos o una configuración compartida por el equipo.

  • Extensiones específicas del proyecto: declaración de una lista de extensiones recomendadas en la carpeta de configuración del workspace.

  • API de extensiones: posibilidad de desarrollar comandos, vistas, lenguajes, depuradores, editores especializados e integraciones propias.

  • Temas visuales: modificación de los colores de la interfaz, la sintaxis, los iconos y el aspecto general.

  • Fuentes y ligaduras: personalización de la tipografía utilizada en el código y el terminal.

  • Disposición personalizable: desplazamiento de paneles, barras laterales, vistas, terminales y editores.

  • Modo Zen: reducción de los elementos de la interfaz para concentrar la pantalla en el código.

  • Profiles: creación de configuraciones separadas que agrupan extensiones, ajustes, atajos, temas y disposición.

  • Compartir perfiles: exportación de un perfil a un archivo o GitHub Gist para reutilizarlo o transmitirlo a un equipo.

  • Settings Sync: sincronización de ajustes, atajos, extensiones, snippets y perfiles entre varios dispositivos.

  • Ajustes de usuario y proyecto: separación entre preferencias globales y configuraciones específicas de un workspace.

  • Configuración en formato JSON: acceso directo a ajustes y automatizaciones para usuarios avanzados.

  • Archivos Markdown: resaltado, previsualización, navegación entre títulos y compatibilidad con enlaces e imágenes.

  • Notebooks Jupyter: apertura, edición y ejecución de notebooks mediante las extensiones Python y Jupyter.

  • Editores personalizados: compatibilidad con vistas especializadas para determinados archivos, gráficos, datos o interfaces.

  • Desarrollo remoto mediante SSH: apertura de una carpeta situada en una máquina remota manteniendo una interfaz local.

  • Visual Studio Code Server: instalación de un componente en la máquina remota para ejecutar las extensiones y herramientas cerca del proyecto.

  • Remote Tunnels: conexión con otra máquina mediante un túnel seguro sin configurar directamente un servidor SSH.

  • Windows Subsystem for Linux: desarrollo dentro de una distribución Linux instalada con WSL desde la interfaz de VS Code para Windows.

  • Dev Containers: apertura de un proyecto dentro de un contenedor con sus propias dependencias, herramientas y ajustes.

  • Configuración devcontainer.json: descripción reproducible de un entorno de desarrollo contenerizado.

  • Redirección de puertos: acceso desde la máquina local a un servidor o servicio ejecutado en un entorno remoto.

  • GitHub Codespaces: conexión con entornos de desarrollo alojados desde la versión desktop o Web.

  • Versión para navegador de GitHub: consulta rápida de un repositorio mediante github.dev desde la página de un proyecto de GitHub.

  • Gestión de confianza: modo Workspace Trust destinado a limitar la ejecución automática de código en proyectos no aprobados.

  • Accesibilidad: navegación mediante teclado, compatibilidad con lectores de pantalla, zoom, alto contraste y otros ajustes adaptados.

  • Localización: traducción de la interfaz a varios idiomas mediante paquetes lingüísticos.

  • Actualizaciones frecuentes: evolución regular del editor, las API, la compatibilidad con plataformas y las funciones de desarrollo.

  • Versión Insiders: edición preliminar que permite probar antes las nuevas funcionalidades.

  • Sugerencias de GitHub Copilot: propuestas de líneas o bloques de código directamente dentro del editor.

  • Chat de Copilot: interfaz conversacional para formular preguntas sobre el código, solicitar una explicación o preparar una modificación.

  • Chat en línea: instrucción específica directamente dentro de un archivo o una selección.

  • Modo agente: delegación de tareas que implican explorar el proyecto, modificar varios archivos y utilizar herramientas.

  • Acciones inteligentes: generación de mensajes de commit, corrección de diagnósticos y otras operaciones asistidas por IA.

  • Selección de modelos de IA: acceso a varios modelos según el plan de GitHub Copilot, las políticas de la cuenta y la disponibilidad del servicio.

  • Instrucciones personalizadas: incorporación de reglas propias del proyecto para orientar las respuestas y modificaciones del asistente.

  • Integración MCP: conexión de agentes con servidores compatibles con el Model Context Protocol.

Casos de uso

Desarrollar una aplicación web

Visual Studio Code ofrece una buena compatibilidad nativa con HTML, CSS, JavaScript, TypeScript y JSON. IntelliSense, el depurador para navegadores, el terminal y Git permiten cubrir gran parte del ciclo de desarrollo web.

Después, las extensiones añaden las herramientas específicas para React, Vue, Angular, Svelte, Astro, Django, Laravel, Node.js y otros frameworks.

El editor puede iniciar un servidor local en el terminal, detectar errores, formatear el código y abrir una sesión de depuración en el navegador.

Programar en Python

La extensión Python añade la selección de intérpretes, la ejecución de scripts, la depuración, los entornos virtuales, las pruebas y la integración con distintas herramientas de análisis.

La extensión Pylance completa este entorno con información de tipos, navegación mejorada y diagnósticos más precisos.

De este modo, VS Code puede utilizarse tanto para aprender Python como para desarrollar una aplicación, una API, un script de automatización o un proyecto científico.

Trabajar con notebooks y datos

Las extensiones Jupyter permiten abrir notebooks, ejecutar celdas, mostrar sus resultados y explorar determinadas variables.

Esta integración reúne código tradicional, notebooks, terminal, Git y documentación en el mismo espacio de trabajo.

Puede resultar adecuada para análisis de datos, machine learning, investigación, enseñanza y prototipado.

Construir un entorno para un lenguaje específico

El usuario puede transformar VS Code en un entorno para Rust, Go, Java, C++, C#, PHP, Ruby u otro lenguaje instalando las extensiones adecuadas.

Estas extensiones pueden proporcionar un servidor de lenguaje, un depurador, herramientas de compilación, un formateador, un linter y una integración con el sistema de pruebas.

La calidad de la experiencia depende, por tanto, tanto de la extensión elegida como del propio editor.

Gestionar un proyecto Git

La interfaz de control de versiones permite visualizar los archivos modificados, examinar las diferencias, seleccionar los cambios que se van a validar y crear un commit.

También facilita la creación de ramas, la sincronización con un repositorio remoto y la resolución de conflictos.

Los desarrolladores acostumbrados al terminal pueden seguir utilizando los comandos Git tradicionales en el terminal integrado mientras aprovechan las visualizaciones de VS Code.

Revisar una pull request

Con la extensión correspondiente de GitHub, una pull request puede abrirse, explorarse y comentarse desde el editor.

Es posible consultar las diferencias dentro del contexto del proyecto, navegar hasta las definiciones y ejecutar localmente la rama propuesta.

Este enfoque puede resultar más cómodo que utilizar únicamente la interfaz web para examinar una modificación compleja.

Desarrollar en un servidor remoto

Remote - SSH permite conservar VS Code en el ordenador y trabajar directamente con los archivos y herramientas de un servidor.

Los comandos, compilaciones, depuradores y extensiones necesarios para el proyecto se ejecutan en la máquina remota. El equipo local funciona principalmente como interfaz.

Este funcionamiento resulta útil para servidores Linux, máquinas equipadas con GPU, entornos cloud y proyectos demasiado pesados para el ordenador personal.

Trabajar con WSL

En Windows, la integración con WSL permite desarrollar dentro de un entorno Linux utilizando al mismo tiempo la interfaz gráfica de VS Code.

Los archivos, terminales, dependencias y herramientas permanecen dentro de la distribución Linux. Esta separación evita parte de los problemas de compatibilidad entre Windows y las herramientas diseñadas para Unix.

Reproducir un entorno mediante Dev Containers

Un archivo devcontainer.json puede describir la imagen, las herramientas, las extensiones y los comandos necesarios para el proyecto.

Cuando un colaborador abre el repositorio, VS Code puede crear o reutilizar un contenedor que corresponda a esta configuración.

Este método reduce las diferencias de entorno entre los miembros de un equipo y facilita la incorporación de nuevos colaboradores.

Modificar rápidamente un repositorio desde el navegador

La versión Web permite abrir un repositorio o varios archivos sin instalar la aplicación desktop.

Está adaptada a la lectura, las correcciones ligeras, la redacción de documentación y las modificaciones que no requieren un entorno local completo.

Sus capacidades siguen siendo más limitadas que las de la versión desktop cuando un proyecto necesita un terminal local, procesos nativos o determinadas extensiones.

Redactar documentación técnica

Visual Studio Code también resulta adecuado para archivos Markdown, YAML, JSON, XML y otros formatos de documentación.

La previsualización de Markdown, la búsqueda global, la corrección ortográfica mediante extensiones y Git facilitan la redacción de documentación versionada junto al código.

Puede utilizarse para manuales, notas técnicas, sitios estáticos y bases de conocimientos.

Aprender programación

La interfaz sigue siendo más ligera que la de un gran IDE, al mismo tiempo que ofrece acceso a herramientas importantes: terminal, depurador, Git y extensiones.

Un principiante puede comenzar con una configuración mínima y descubrir progresivamente las funciones avanzadas.

Sin embargo, el número de ajustes y extensiones puede resultar confuso sin una selección clara de las herramientas necesarias.

Desarrollar una extensión

La API de Visual Studio Code permite crear nuevos comandos, vistas, editores, temas, lenguajes, diagnósticos e integraciones.

Después, una extensión puede distribuirse como paquete o publicarse en un registro compatible.

Esta arquitectura explica en gran medida la diversidad del ecosistema de VS Code.

Programar con asistencia de IA

GitHub Copilot puede explicar una sección de código, sugerir una implementación, generar pruebas, investigar un error o modificar varios archivos.

El modo agente permite confiar al asistente una tarea más amplia, para que explore el workspace y utilice determinadas herramientas autorizadas.

Estas funciones pueden acelerar algunas operaciones repetitivas, pero las modificaciones deben revisarse, probarse y comprenderse antes de integrarlas.

Construir un entorno personalizado para un equipo

Los ajustes del workspace, las recomendaciones de extensiones, las tareas, las configuraciones de depuración y los Dev Containers pueden guardarse dentro del repositorio.

De este modo, el equipo comparte una parte de su entorno sin imponer exactamente las mismas preferencias personales a cada miembro.

Los Profiles permiten conservar al mismo tiempo varias configuraciones adaptadas a distintos proyectos.

Opinión de PANACHES

Visual Studio Code se ha convertido en una referencia del desarrollo moderno porque consigue situarse entre el editor ligero y el IDE completo. Puede mantenerse sencillo para modificar unos cuantos archivos, pero también albergar un entorno muy elaborado alrededor de un proyecto profesional.

Su principal fortaleza reside en su extensibilidad. El mismo software puede adaptarse a casi todos los lenguajes, frameworks y workflows habituales. Esta flexibilidad evita tener que cambiar por completo de entorno cuando un proyecto combina varias tecnologías.

La interfaz también resulta bastante coherente. El Explorador, la Paleta de comandos, el terminal, Git, el depurador y las extensiones se reúnen alrededor del mismo espacio de trabajo. Una vez aprendidos los atajos, la mayoría de las operaciones siguen siendo accesibles sin multiplicar las ventanas.

La integración con Git está especialmente bien resuelta para las tareas cotidianas. Hace visibles las modificaciones, facilita los commits y ayuda a comprender las diferencias entre versiones. El terminal sigue estando disponible para comandos más avanzados, lo que evita encerrar al usuario en una interfaz gráfica.

El desarrollo remoto constituye otra ventaja importante. SSH, WSL, Dev Containers, Tunnels y Codespaces permiten separar la interfaz local del entorno que ejecuta realmente el proyecto. Esta arquitectura resulta adecuada tanto para servidores como para contenedores, máquinas virtuales e infraestructuras cloud.

Los Profiles y los ajustes específicos de cada workspace ofrecen una buena respuesta a la diversidad de los proyectos. Un desarrollador puede conservar una configuración mínima para escribir, otra para Python, otra para la Web y otra para un entorno remoto.

La creciente integración de la inteligencia artificial también está transformando VS Code en una interfaz de trabajo con agentes de desarrollo. Copilot ya no se limita a completar una línea: puede participar en el análisis, modificación y revisión de varios archivos.

Esta evolución puede mejorar la productividad, pero también vuelve menos clara la frontera entre el editor gratuito y los servicios comerciales que lo acompañan. VS Code sigue siendo gratuito, mientras que el uso intensivo de Copilot, Codespaces u otros servicios puede requerir una suscripción.

El ecosistema de extensiones constituye al mismo tiempo una fortaleza y una debilidad. Las miles de extensiones disponibles permiten responder a casi cualquier necesidad, pero su calidad, mantenimiento, rendimiento y política de privacidad varían considerablemente.

Una instalación cargada con numerosas extensiones puede volverse más lenta, consumir más memoria o generar conflictos. A menudo resulta preferible conservar un conjunto limitado de extensiones realmente útiles y utilizar los Profiles para separar contextos.

La distinción entre Visual Studio Code y Code - OSS también merece explicarse claramente. La mayor parte del código está disponible bajo licencia MIT, pero la distribución oficial incluye personalizaciones de Microsoft y utiliza una licencia de producto diferente.

Para quienes desean evitar la telemetría de Microsoft o disponer de una distribución más estrictamente open source, VSCodium constituye una alternativa lógica. Sin embargo, esta solución puede perder el acceso directo a determinadas extensiones o integraciones del Marketplace de Microsoft.

AlternativeTo también destaca Sublime Text por su rapidez, Zed por su enfoque moderno y colaborativo, y editores como Vim, Neovim o Kate para quienes buscan un entorno diferente o más ligero.

Para PANACHES, Visual Studio Code representa una referencia importante para el módulo Editor Code. Su sistema de comandos, paneles, paleta, terminal, diferencias Git, extensiones, espacios de trabajo y desarrollo remoto constituyen puntos de comparación muy útiles.

El objetivo de PANACHES no sería necesariamente reproducir por completo VS Code, sino identificar las funciones indispensables de un editor integrado en un workspace creativo: navegación clara, resaltado de sintaxis, terminal, Git, búsqueda, previsualización de diferencias, diagnósticos y asistencia de IA contextualizada.

Visual Studio Code merece por tanto un lugar central en el directorio de PANACHES. Sigue siendo uno de los entornos más versátiles para aprender, programar, documentar, probar y gestionar proyectos sin tener que adoptar inmediatamente un IDE especializado más pesado.

Puntos de atención

  • Distinguir Visual Studio Code de Code - OSS: el repositorio open source bajo licencia MIT no es exactamente idéntico a la distribución oficial de Microsoft.

  • No presentar la distribución oficial como completamente open source: contiene personalizaciones, activos de marca e integraciones sometidos a otras condiciones.

  • Examinar la licencia de Microsoft: los derechos asociados al software distribuido deben distinguirse de los aplicables al código fuente Code - OSS.

  • Comprobar las licencias de las extensiones: cada extensión puede utilizar su propia licencia, incluidas las publicadas por Microsoft.

  • Controlar la procedencia de una extensión: conviene priorizar editores identificados, proyectos mantenidos y extensiones con documentación clara.

  • Examinar los permisos y el comportamiento de las extensiones: una extensión puede leer los archivos del workspace, ejecutar código o comunicarse con un servicio externo.

  • No instalar demasiadas extensiones: su acumulación puede ralentizar el inicio, aumentar el consumo de memoria y crear conflictos.

  • Desactivar las extensiones innecesarias por workspace: algunas solo son necesarias para un lenguaje o un tipo de proyecto concreto.

  • Utilizar Profiles: permiten separar configuraciones y limitar el número de extensiones activas simultáneamente.

  • Comprobar la telemetría: Visual Studio Code recopila determinados datos de uso y diagnóstico según los ajustes y políticas aplicados.

  • Configurar el nivel de telemetría: los ajustes permiten reducir parte de las transmisiones, pero las extensiones pueden utilizar sus propios mecanismos.

  • Examinar por separado la privacidad de Copilot: los prompts, fragmentos de código y contextos enviados al servicio siguen las reglas de la cuenta y del plan de GitHub utilizados.

  • Desactivar el uso de datos para entrenamiento cuando sea necesario: los usuarios individuales de Copilot deben revisar las opciones asociadas a su cuenta.

  • No transmitir secretos a un asistente de IA: las claves, contraseñas, datos personales y código confidencial deben protegerse.

  • Revisar las modificaciones producidas por la IA: una sugerencia plausible puede contener un error, introducir una vulnerabilidad o ignorar una restricción del proyecto.

  • Ejecutar las pruebas después de modificaciones realizadas por agentes: un agente puede intervenir en varios archivos y producir consecuencias difíciles de detectar visualmente.

  • Controlar los comandos propuestos por los agentes: el terminal y las herramientas MCP pueden ejecutar acciones que afectan a los archivos o al entorno.

  • Utilizar Workspace Trust con proyectos desconocidos: un repositorio puede incluir tareas, extensiones recomendadas o configuraciones capaces de ejecutar código.

  • Examinar los archivos de configuración antes de ejecutarlos: tasks.json, launch.json, settings.json y devcontainer.json pueden activar o configurar operaciones sensibles.

  • Proteger los terminales integrados: disponen de los mismos permisos que la cuenta de usuario y pueden modificar o eliminar archivos.

  • Comprobar las dependencias externas: VS Code no proporciona automáticamente todos los compiladores, intérpretes, SDK y herramientas necesarios para los lenguajes.

  • Instalar Git por separado: la interfaz Git de VS Code utiliza la instalación de Git presente en la máquina.

  • Mantener actualizados los runtimes: Python, Node.js, Java, .NET, Rust y los demás entornos deben gestionarse independientemente del editor.

  • Probar la versión Web antes de adoptarla: vscode.dev resulta práctico para modificaciones ligeras, pero sigue siendo limitado para procesos nativos, terminales locales y determinadas extensiones.

  • Comprobar la compatibilidad Web de las extensiones: solo las extensiones diseñadas para el entorno del navegador pueden funcionar completamente en vscode.dev.

  • Distinguir vscode.dev de Codespaces: el primero es un editor Web ligero, mientras que el segundo puede proporcionar una máquina de desarrollo remota facturada por separado.

  • Vigilar los costes de los servicios externos: Copilot, Codespaces, máquinas cloud y API utilizadas por las extensiones pueden contar con su propia facturación.

  • Proteger las conexiones SSH: utilizar claves correctamente aseguradas, comprobar el host remoto y limitar los permisos de la cuenta utilizada.

  • Comprender la instalación de VS Code Server: el desarrollo remoto instala y ejecuta componentes en la máquina remota.

  • Comprobar las licencias del desarrollo remoto: algunas extensiones Remote Development y determinados componentes de servidor utilizan una licencia propietaria.

  • Controlar los puertos redirigidos: un servicio de desarrollo no debe exponerse públicamente sin autenticación ni necesidad.

  • Proteger los Dev Containers: una imagen o un archivo de configuración procedente de un repositorio desconocido puede ejecutar comandos durante su creación.

  • Utilizar imágenes de contenedores fiables: comprobar su procedencia, sus actualizaciones y las vulnerabilidades conocidas.

  • Controlar Settings Sync: los ajustes, perfiles y extensiones sincronizados están asociados a la cuenta utilizada.

  • Evitar almacenar secretos en ajustes sincronizados: utilizar variables de entorno o gestores de secretos adecuados.

  • Guardar las configuraciones importantes: los archivos del workspace deben versionarse cuando sea necesario compartirlos con el equipo.

  • Comprobar las actualizaciones: una nueva versión puede modificar una API, un comportamiento, una extensión o la compatibilidad con un sistema antiguo.

  • Distinguir Stable de Insiders: la versión Insiders permite acceder antes a las novedades, pero puede resultar menos adecuada para un entorno crítico.

  • Vigilar el rendimiento en repositorios grandes: la indexación, los servidores de lenguaje y las extensiones pueden consumir una cantidad importante de procesador y memoria.

  • Excluir las carpetas innecesarias: las dependencias generadas, cachés y directorios voluminosos pueden excluirse de la búsqueda y supervisión de archivos.

  • Elegir una herramienta adecuada para el proyecto: VS Code es versátil, pero un IDE especializado puede ofrecer en ocasiones un análisis más profundo para Java, .NET, C++ u otros ecosistemas.

  • Comparar con VSCodium cuando la apertura sea prioritaria: esta distribución reduce los componentes de Microsoft, pero puede presentar diferencias en el Marketplace y la compatibilidad con extensiones.

  • Prever una configuración reproducible: documentar las extensiones, dependencias, tareas y versiones necesarias para que el proyecto no dependa únicamente de la máquina de un desarrollador.