Passer au contenu principal

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 le fichier 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 d’accès :
{
  "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": [] // Add command line arguments if needed
    },
    {
      "name": "Mono Launch",
      "type": "mono",
      "request": "launch",
      "preLaunchTask": "build-mono",
      "program": "${workspaceFolder}/YourProgram.exe", // ← Edit this path
      "cwd": "${workspaceFolder}"
    }
  ]
}

Équivalents en ligne de commande

# .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 avec des assemblages mixtes (C++/CLI) ou des dépendances complexes vis-à-vis de Visual Studio présentent des limitations significatives dans Windsurf. Ces bases de code nécessitent généralement le système de build propriétaire de Visual Studio et ne peuvent pas être entièrement compilées ou déboguées dans Windsurf en raison de leurs dépendances sur les outils spécifiques de Microsoft et sur la résolution des références d’assembly. Approches recommandées pour les projets .NET Framework :
  • Utiliser Windsurf conjointement avec Visual Studio pour générer et modifier le code
  • Migrer les parties compatibles vers .NET Core dans la mesure du 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 demande d’installation d’outils Microsoft propriétaires ; les conteneurs Windsurf ne peuvent pas les inclure.
  • Conteneur vs hôte – les SDK et compilateurs doivent être présents à l’intérieur du conteneur de workspace Windsurf.
  • Raccourcis clavier
    • Ctrl/⌘ + Shift + B → compiler en utilisant la tâche de build active
    • F5 → déboguer en utilisant 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.