Guide de configuration de l’environnement de développement Windsurf

Vue d’ensemble

Les workspaces Windsurf s’appuient exclusivement sur des outils open source pour la compilation, l’analyse statique et le débogage. Les composants propriétaires Visual Studio de Microsoft ne peuvent pas être redistribués ; nous intégrons donc à la place des servers de langage, des débogueurs et des compilateurs maintenus par la communauté. Ce guide couvre deux piles technologiques :
  1. .NET / C# – ciblant à la fois .NET Core et .NET Framework (via Mono)
  2. C / C++ – avec des outils basés sur clang
Vous pouvez installer l’un, l’autre ou les deux dans le même workspace.
⚠️ Important : Les exemples ci‑dessous sont des modèles que vous devez adapter à votre projet. Vous devrez modifier les chemins de fichiers, les noms de projet et les commandes de build pour correspondre à votre base de code.

1. Développement .NET / C#

Choisissez la variante qui correspond à votre codebase.

.NET Core / .NET 6+

Extensions :
  • C# (muhammad-sammy.csharp) – regroupe OmniSharp LS et NetCoreDbg, vous permettant d’appuyer sur F5 immédiatement
  • .NET Install Tool (ms-dotnettools.vscode-dotnet-runtime) – installe automatiquement les runtimes/SDK manquants
  • Solution Explorer (fernandoescolar.vscode-solution-explorer) – permet de naviguer et de gérer les solutions et projets .NET
Débogueur : Rien d’autre n’est nécessaire — l’extension inclut déjà le serveur de langage et un débogueur open source adapté à .NET Core. Build : dotnet build

.NET Framework via Mono

Extensions :
  • Mono Debug (chrisatwindsurf.mono-debug) – adaptateur de débogage pour Mono (Open VSX)
  • C# (muhammad-sammy.csharp) pour les fonctionnalités du langage
Débogueur : Vous devez également installer la toolchain Mono dans le workspace. Suivez le guide d’installation dans le dépôt Mono. L’extension de débogage se connecte à ce runtime au moment du débogage.
⚠️ Configuration de .NET Framework : Après avoir installé Mono, pour utiliser l’extension C# avec des projets .NET Framework, vous devez modifier un paramètre spécifique dans les paramètres de l’IDE. Allez dans Settings (dans la section C# Extension) et désactivez “Omnisharp: Use Modern Net”. Ce paramètre utilise la build OmniSharp pour .NET 6, qui offre des améliorations de performances significatives pour les projets Framework au format SDK, .NET Core et .NET 5+. Notez que cette version ne prend pas en charge les projets .NET Framework non au format SDK, y compris Unity.
Build : mcs Program.cs

Configurer tasks.json pour votre projet

Vous devez créer ou modifier .vscode/tasks.json à la racine de votre workspace et adapter les modèles suivants :
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-dotnet",
      "type": "shell",
      "command": "dotnet",
      "args": ["build", "YourProject.csproj"], // ← Modifiez ceci
      "group": "build",
      "problemMatcher": "$msCompile"
    },
    {
      "label": "build-mono",
      "type": "shell",
      "command": "mcs",
      "args": ["YourProgram.cs"], // ← Modifiez ceci
      "group": "build"
    }
  ]
}

Configurer launch.json pour le débogage

Vous devez créer ou modifier .vscode/launch.json à la racine de votre workspace et mettre à jour les chemins :
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": ".NET Core Launch",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "build-dotnet",
      "program": "${workspaceFolder}/bin/Debug/net6.0/YourApp.dll", // ← Modifiez ce chemin
      "cwd": "${workspaceFolder}",
      "args": [] // Ajoutez des arguments de ligne de commande si nécessaire
    },
    {
      "name": "Mono Launch",
      "type": "mono",
      "request": "launch",
      "preLaunchTask": "build-mono",
      "program": "${workspaceFolder}/YourProgram.exe", // ← Modifiez ce chemin
      "cwd": "${workspaceFolder}"
    }
  ]
}

Équivalents en CLI

# .NET Core
$ dotnet build
$ dotnet run

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

Limitations de .NET Framework

⚠️ Important : Les bases de code .NET Framework comportant des assemblages mixtes (C++/CLI) ou des dépendances complexes à Visual Studio présentent d’importantes limitations dans Windsurf. Ces bases de code reposent généralement sur le système de build propriétaire de Visual Studio et ne peuvent pas être entièrement compilées ni déboguées dans Windsurf en raison de leur dépendance à des outils spécifiques à Microsoft et à la résolution des références d’assembly. Approches recommandées pour les projets .NET Framework :
  • Utiliser Windsurf en complément de Visual Studio pour la génération et l’édition de code
  • Migrer les parties compatibles vers .NET Core lorsque possible

2. Développement C/C++

Extensions requises :
ExtensionObjectif
Windsurf C++ Tools (Codeium.windsurf-cpptools)Il s’agit d’un ensemble des trois extensions que nous recommandons pour bien démarrer. Ce package inclut la prise en charge LSP pour C/C++, le débogage et la prise en charge de CMake.
Remarque : L’installation du bundle Windsurf C++ Tools installera automatiquement les extensions individuelles ci‑dessous ; vous n’avez donc qu’à installer le bundle.
ExtensionObjectif
clangd (llvm-vs-code-extensions.vscode-clangd)Intégration au serveur de langage clangd. Si clangd est absent, il proposera de télécharger le binaire adapté à votre plateforme.
CodeLLDB (vadimcn.vscode-lldb)Débogueur natif basé sur LLDB pour le code C/C++ et Rust.
CMake Tools (ms-vscode.cmake-tools)Configuration de projet, compilation, test et intégration de débogage pour les projets basés sur CMake.
Pour les workflows non CMake, vous pouvez toujours invoquer make, ninja, etc. via des cibles personnalisées dans tasks.json.

Configurer les tâches de build C/C++

Créez/modifiez .vscode/tasks.json pour votre projet C/C++ :
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-cpp",
      "type": "shell",
      "command": "clang++",
      "args": ["-g", "main.cpp", "-o", "main"], // ← Adaptez selon vos fichiers
      "group": "build",
      "problemMatcher": "$gcc"
    }
  ]
}

3. Notes et points d’attention

  • Open source uniquement – refusez toute invite à installer des outils Microsoft propriétaires ; les conteneurs Windsurf ne peuvent pas les inclure.
  • Conteneur vs hôte – les SDK/compilateurs doivent être présents à l’intérieur du conteneur de workspace Windsurf.
  • Raccourcis clavier
    • Ctrl/⌘ + Maj + B → compiler à l’aide de la tâche de build active
    • F5 → déboguer à l’aide de la configuration launch.json sélectionnée

4. Liste de contrôle de la configuration

  • Installez les extensions requises pour votre pile technologique
  • Créez et personnalisez .vscode/tasks.json avec les commandes de compilation de votre projet
  • Créez et personnalisez .vscode/launch.json avec les chemins corrects vers vos exécutables
  • Pour Mono : installez le runtime et vérifiez mono --version
  • Mettez à jour les chemins de fichiers, les noms de projet et les arguments de compilation pour correspondre à votre base de code
  • Testez votre configuration : appuyez sur Ctrl/⌘ + Shift + B pour compiler, puis sur F5 pour déboguer
💡 Astuce : Les fichiers de configuration sont spécifiques au projet. Vous devrez adapter les exemples ci-dessus pour chaque workspace.