Guía de configuración del entorno de desarrollo de Windsurf

Descripción general

Los workspace de Windsurf dependen exclusivamente de herramientas de código abierto para compilar, realizar linting y depurar. Los componentes propietarios de Microsoft Visual Studio no pueden redistribuirse, por lo que integramos servidores de lenguaje, depuradores y compiladores mantenidos por la comunidad. Esta guía cubre dos stacks:
  1. .NET / C# – compatible con .NET Core y .NET Framework (a través de Mono)
  2. C / C++ – usando tooling basado en clang
Puedes instalar uno o ambos en el mismo workspace.
⚠️ Importante: Los ejemplos a continuación son plantillas que debes personalizar para tu proyecto. Deberás editar rutas de archivos, nombres de proyectos y comandos de compilación para que coincidan con tu base de código.

1. Desarrollo en .NET / C#

Elige la variante que se ajuste a tu código.

.NET Core / .NET 6+

Extensiones:
  • C# (muhammad-sammy.csharp) – incluye OmniSharp LS y NetCoreDbg, para que puedas pulsar F5 de inmediato
  • .NET Install Tool (ms-dotnettools.vscode-dotnet-runtime) – instala automáticamente los runtimes/SDK que falten
  • Solution Explorer (fernandoescolar.vscode-solution-explorer) – navega y gestiona soluciones y proyectos de .NET
Depurador: No se requiere nada más: la extensión ya incluye el servidor de lenguaje y un depurador de código abierto adecuado para .NET Core. Compilación: dotnet build

.NET Framework con Mono

Extensiones:
  • Mono Debug (chrisatwindsurf.mono-debug) – adaptador de depuración para Mono (Open VSX)
  • C# (muhammad-sammy.csharp) para funciones del lenguaje
Depurador: También debes instalar la cadena de herramientas de Mono dentro del workspace. Sigue la guía de instalación en el repositorio de Mono. La extensión del depurador se conecta a ese runtime durante la depuración.
⚠️ Configuración de .NET Framework: Después de instalar Mono, para usar la extensión de C# con proyectos de .NET Framework, debes cambiar una configuración específica en los ajustes del IDE. Ve a Settings (en la sección de la extensión de C#) y desactiva “Omnisharp: Use Modern Net”. Esta configuración utiliza la compilación de OmniSharp para .NET 6, que ofrece mejoras de rendimiento significativas para proyectos de Framework con estilo SDK, .NET Core y .NET 5+. Ten en cuenta que esta versión no admite proyectos de .NET Framework sin estilo SDK, incluido Unity.
Compilación: mcs Program.cs

Configura tasks.json para tu proyecto

Debes crear o editar .vscode/tasks.json en la raíz de tu workspace y personalizar estas plantillas:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-dotnet",
      "type": "shell",
      "command": "dotnet",
      "args": ["build", "YourProject.csproj"], // ← Editar esto
      "group": "build",
      "problemMatcher": "$msCompile"
    },
    {
      "label": "build-mono",
      "type": "shell",
      "command": "mcs",
      "args": ["YourProgram.cs"], // ← Editar esto
      "group": "build"
    }
  ]
}

Configurar launch.json para la depuración

Debes crear o editar .vscode/launch.json en la raíz de tu workspace y actualizar las rutas:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": ".NET Core Launch",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "build-dotnet",
      "program": "${workspaceFolder}/bin/Debug/net6.0/YourApp.dll", // ← Edita esta ruta
      "cwd": "${workspaceFolder}",
      "args": [] // Añade argumentos de línea de comandos si es necesario
    },
    {
      "name": "Mono Launch",
      "type": "mono",
      "request": "launch",
      "preLaunchTask": "build-mono",
      "program": "${workspaceFolder}/YourProgram.exe", // ← Edita esta ruta
      "cwd": "${workspaceFolder}"
    }
  ]
}

Equivalentes de la CLI

# .NET Core
$ dotnet build
$ dotnet run

# Mono / .NET Framework
$ mcs Program.cs
$ mono Program.exe

Limitaciones de .NET Framework

⚠️ Importante: Los codebases de .NET Framework con ensamblados mixtos (C++/CLI) o dependencias complejas de Visual Studio tienen limitaciones importantes en Windsurf. Estos proyectos suelen requerir el sistema de compilación propietario de Visual Studio y no pueden compilarse ni depurarse por completo en Windsurf debido a dependencias en herramientas específicas de Microsoft y a la resolución de referencias de ensamblados. Enfoques recomendados para proyectos de .NET Framework:
  • Usa Windsurf junto con Visual Studio para la generación y edición de código
  • Migra las partes compatibles a .NET Core cuando sea posible

2. Desarrollo en C / C++

Extensiones requeridas:
ExtensiónPropósito
Windsurf C++ Tools (Codeium.windsurf-cpptools)Paquete con las tres extensiones recomendadas para empezar. Incluye soporte LSP para C/C++, depuración y soporte para CMake.
Nota: Al instalar el paquete Windsurf C++ Tools se instalarán automáticamente las extensiones individuales que se enumeran a continuación, por lo que solo necesitas instalar el paquete.
ExtensiónPropósito
clangd (llvm-vs-code-extensions.vscode-clangd)Integración con el servidor de lenguaje clangd. Si clangd no está instalado, ofrecerá descargar el binario adecuado para tu plataforma.
CodeLLDB (vadimcn.vscode-lldb)Depurador nativo basado en LLDB para código C/C++ y Rust.
CMake Tools (ms-vscode.cmake-tools)Integración para configurar proyectos, compilar, probar y depurar proyectos basados en CMake.
Para flujos de trabajo que no usan CMake, puedes seguir invocando make, ninja, etc., mediante tareas personalizadas en tasks.json.

Configura tareas de compilación de C/C++

Crea o edita .vscode/tasks.json para tu proyecto de C/C++:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-cpp",
      "type": "shell",
      "command": "clang++",
      "args": ["-g", "main.cpp", "-o", "main"], // ← Editar para tus archivos
      "group": "build",
      "problemMatcher": "$gcc"
    }
  ]
}

3. Notas y consideraciones

  • Solo código abierto: rechaza cualquier solicitud para instalar herramientas propietarias de Microsoft; los contenedores de Windsurf no pueden incluirlas.
  • Contenedor vs. host: los SDK y compiladores deben estar dentro del contenedor del workspace de Windsurf.
  • Atajos de teclado
    • Ctrl/⌘ + Shift + B → compilar con la tarea de compilación activa
    • F5 → depurar con la configuración launch.json seleccionada

4. Lista de verificación de configuración

  • Instala las extensiones necesarias para tu stack de lenguajes
  • Crea y personaliza .vscode/tasks.json con los comandos de compilación de tu proyecto
  • Crea y personaliza .vscode/launch.json con las rutas correctas a tus ejecutables
  • Para Mono: instala el runtime y verifica mono --version
  • Actualiza las rutas de archivos, los nombres de proyectos y los argumentos de compilación para que coincidan con tu código base
  • Prueba tu configuración: presiona Ctrl/⌘ + Shift + B para compilar y luego F5 para depurar
💡 Consejo: Los archivos de configuración son específicos del proyecto. Deberás adaptar los ejemplos anteriores para cada workspace.