Leitfaden zur Einrichtung der Windsurf-Entwicklungsumgebung

Übersicht

Windsurf-Workspaces setzen ausschließlich auf Open‑Source‑Tooling für das Kompilieren, Linting und Debuggen. Microsofts proprietäre Visual-Studio‑Komponenten dürfen nicht weitergegeben werden; daher integrieren wir stattdessen von der Community gepflegte Language Server, Debugger und Compiler. Dieser Leitfaden umfasst zwei Stacks:
  1. .NET / C# – Zielumgebungen sind sowohl .NET Core als auch .NET Framework (über Mono)
  2. C / C++ – mit clang‑basiertem Tooling
Sie können einen oder beide im selben Workspace installieren.
⚠️ Wichtig: Die folgenden Beispiele sind Vorlagen, die Sie für Ihr spezifisches Projekt anpassen müssen. Passen Sie Dateipfade, Projektnamen und Build‑Befehle an, damit sie zu Ihrer Codebasis passen.

1. .NET / C#-Entwicklung

Wählen Sie die Variante, die zu Ihrem Codebase passt.

.NET Core / .NET 6+

Erweiterungen:
  • C# (muhammad-sammy.csharp) – bündelt OmniSharp LS und NetCoreDbg, sodass Sie sofort mit F5 starten können
  • .NET Install Tool (ms-dotnettools.vscode-dotnet-runtime) – installiert fehlende Runtimes/SDKs automatisch
  • Solution Explorer (fernandoescolar.vscode-solution-explorer) – .NET-Lösungen und -Projekte navigieren und verwalten
Debugger: Es ist nichts Weiteres erforderlich — die Erweiterung enthält bereits den Language Server und einen Open‑Source‑Debugger für .NET Core. Build: dotnet build

.NET Framework über Mono

Erweiterungen:
  • Mono Debug (chrisatwindsurf.mono-debug) – Debug-Adapter für Mono (Open VSX)
  • C# (muhammad-sammy.csharp) für Sprachfunktionen
Debugger: Sie müssen die Mono-Toolchain ebenfalls im Workspace installieren. Folgen Sie der Installationsanleitung im Mono‑Repository. Die Debugger-Erweiterung verbindet sich zur Debug-Zeit mit dieser Runtime.
⚠️ .NET-Framework-Konfiguration: Nachdem Sie Mono installiert haben, müssen Sie, um die C#-Erweiterung mit .NET‑Framework‑Projekten zu verwenden, eine bestimmte Einstellung in den IDE‑Einstellungen umschalten. Gehen Sie zu Settings (im Abschnitt der C#‑Erweiterung) und deaktivieren Sie „Omnisharp: Use Modern Net“. Diese Einstellung verwendet den OmniSharp‑Build für .NET 6, der erhebliche Leistungsverbesserungen für Projekte im SDK‑Stil, .NET Core und .NET 5+ bietet. Beachten Sie, dass diese Version keine .NET‑Framework‑Projekte im Nicht‑SDK‑Stil unterstützt, einschließlich Unity.
Build: mcs Program.cs

Konfigurieren Sie tasks.json für Ihr Projekt

Sie müssen .vscode/tasks.json im Stammverzeichnis Ihres Workspace erstellen bzw. bearbeiten und diese Vorlagen anpassen:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-dotnet",
      "type": "shell",
      "command": "dotnet",
      "args": ["build", "YourProject.csproj"], // ← Hier bearbeiten
      "group": "build",
      "problemMatcher": "$msCompile"
    },
    {
      "label": "build-mono",
      "type": "shell",
      "command": "mcs",
      "args": ["YourProgram.cs"], // ← Hier bearbeiten
      "group": "build"
    }
  ]
}

launch.json für das Debugging konfigurieren

Sie müssen .vscode/launch.json im Workspace-Stammverzeichnis erstellen bzw. bearbeiten und die Pfade aktualisieren:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": ".NET Core Launch",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "build-dotnet",
      "program": "${workspaceFolder}/bin/Debug/net6.0/YourApp.dll", // ← Diesen Pfad bearbeiten
      "cwd": "${workspaceFolder}",
      "args": [] // Kommandozeilenargumente hinzufügen, falls erforderlich
    },
    {
      "name": "Mono Launch",
      "type": "mono",
      "request": "launch",
      "preLaunchTask": "build-mono",
      "program": "${workspaceFolder}/YourProgram.exe", // ← Diesen Pfad bearbeiten
      "cwd": "${workspaceFolder}"
    }
  ]
}

CLI-Entsprechungen

# .NET Core
$ dotnet build
$ dotnet run

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

Einschränkungen des .NET Framework

⚠️ Wichtig: Codebasen für das .NET Framework mit gemischten Assemblies (C++/CLI) oder komplexen Abhängigkeiten von Visual Studio haben in Windsurf erhebliche Einschränkungen. Diese Codebasen erfordern in der Regel das proprietäre Build-System von Visual Studio und können in Windsurf aufgrund von Abhängigkeiten auf Microsoft-spezifische Tools und die Auflösung von Assemblyverweisen nicht vollständig kompiliert oder debuggt werden. Empfohlene Vorgehensweisen für .NET-Framework-Projekte:
  • Verwenden Sie Windsurf zusammen mit Visual Studio für Codegenerierung und Bearbeitung
  • Migrieren Sie nach Möglichkeit kompatible Teile zu .NET Core

2. C/C++-Entwicklung

Erforderliche Erweiterungen:
ErweiterungZweck
Windsurf C++ Tools (Codeium.windsurf-cpptools)Ein Bundle der drei Erweiterungen, die wir für den Einstieg empfehlen. Enthält C/C++‑LSP‑Unterstützung, Debugging‑Unterstützung und CMake‑Unterstützung.
Hinweis: Durch die Installation des Bundles Windsurf C++ Tools werden die unten aufgeführten einzelnen Erweiterungen automatisch mitinstalliert. Es genügt, das Bundle zu installieren.
ErweiterungZweck
clangd (llvm-vs-code-extensions.vscode-clangd)Integration des clangd‑Language Servers. Wenn clangd fehlt, wird angeboten, die passende Binärdatei für Ihre Plattform herunterzuladen.
CodeLLDB (vadimcn.vscode-lldb)Nativer Debugger auf Basis von LLDB für C/C++ und Rust.
CMake Tools (ms-vscode.cmake-tools)Projektkonfiguration sowie Build‑, Test‑ und Debug‑Integration für CMake‑basierte Projekte.
Für Workflows ohne CMake können Sie weiterhin make, ninja usw. über benutzerdefinierte tasks.json‑Ziele aufrufen.

C/C++-Buildaufgaben konfigurieren

Erstellen oder bearbeiten Sie .vscode/tasks.json für Ihr C/C++-Projekt:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-cpp",
      "type": "shell",
      "command": "clang++",
      "args": ["-g", "main.cpp", "-o", "main"], // ← Für Ihre Dateien anpassen
      "group": "build",
      "problemMatcher": "$gcc"
    }
  ]
}

3. Hinweise & Fallstricke

  • Nur Open‑Source – lehnen Sie jede Aufforderung ab, proprietäre Microsoft‑Tools zu installieren; Windsurf‑Container dürfen diese nicht enthalten.
  • Container vs. Host – SDKs/Compiler müssen innerhalb des Windsurf‑Workspace‑Containers vorhanden sein.
  • Tastenkürzel
    • Ctrl/⌘ + Shift + B → mit der aktiven Build‑Aufgabe kompilieren
    • F5 → mit der ausgewählten launch.json‑Konfiguration debuggen

4. Einrichtungs-Checkliste

  • Installieren Sie die erforderlichen Erweiterungen für Ihren Sprach‑Stack
  • Erstellen und passen Sie .vscode/tasks.json an mit den Build-Befehlen Ihres Projekts
  • Erstellen und passen Sie .vscode/launch.json an mit korrekten Pfaden zu Ihren ausführbaren Dateien
  • Für Mono: Runtime installieren und mit mono --version verifizieren
  • Aktualisieren Sie Dateipfade, Projektnamen und Build-Argumente, damit sie zu Ihrer Codebasis passen
  • Testen Sie Ihre Einrichtung: Drücken Sie Ctrl/⌘ + Shift + B zum Erstellen, dann F5 zum Debuggen
💡 Tipp: Die Konfigurationsdateien sind projektspezifisch. Sie müssen die obigen Beispiele für jedes Workspace anpassen.