Salt la conținutul principal

Ghid de configurare a mediului de dezvoltare în Windsurf

Prezentare generală

workspace-urile Windsurf se bazează exclusiv pe instrumente open‑source pentru compilare, linting și depanare. Componentele proprietare Visual Studio de la Microsoft nu pot fi redistribuite, astfel că integrăm în schimb servere de limbaj, depanatoare și compilatoare întreținute de comunitate. Acest ghid acoperă două stack‑uri:
  1. .NET / C# – vizând atât .NET Core, cât și .NET Framework (prin Mono)
  2. C / C++ – folosind tooling bazat pe clang
Poți instala oricare dintre ele sau pe ambele în același workspace.
⚠️ Important: Exemplele de mai jos sunt șabloane pe care trebuie să le personalizezi pentru proiectul tău. Va trebui să editezi căile de fișiere, numele proiectelor și comenzile de build pentru a se potrivi cu baza ta de cod.

1. Dezvoltare .NET / C#

Alegeți varianta care corespunde codului vostru.

.NET Core / .NET 6+

Extensii:
  • C# (muhammad-sammy.csharp) – include pachetele OmniSharp LS și NetCoreDbg, astfel încât poți apăsa F5 imediat
  • .NET Install Tool (ms-dotnettools.vscode-dotnet-runtime) – instalează automat runtime-urile/SDK-urile lipsă
  • Solution Explorer (fernandoescolar.vscode-solution-explorer) – navighează și gestionează soluțiile și proiectele .NET
Depanator: Nu este necesar nimic în plus — extensia conține deja serverul de limbaj și un depanator open‑source potrivit pentru .NET Core. Build: dotnet build

.NET Framework via Mono

Extensii:
  • Mono Debug (chrisatwindsurf.mono-debug) – adaptor de depanare pentru Mono (Open VSX)
  • C# (muhammad-sammy.csharp) pentru funcționalități de limbaj
Depanator: Trebuie să instalați și lanțul de unelte Mono în workspace. Urmați ghidul de instalare din repo-ul Mono. Extensia de depanare se conectează la acel runtime în timpul depanării.
⚠️ Configurare .NET Framework: După instalarea Mono, pentru a utiliza extensia C# cu proiecte .NET Framework, trebuie să modificați o setare specifică în IDE Settings. Accesați Settings (în secțiunea C# Extension) și dezactivați „OmniSharp: Use Modern Net”. Această setare folosește build-ul OmniSharp pentru .NET 6, care oferă îmbunătățiri semnificative de performanță pentru proiectele de tip SDK‑style Framework, .NET Core și .NET 5+. Rețineți că această versiune nu acceptă proiectele .NET Framework non‑SDK‑style, inclusiv Unity.
Build: mcs Program.cs

Configurați tasks.json pentru proiectul dvs.

Trebuie să creați sau să editați .vscode/tasks.json în rădăcina workspace‑ului și să personalizați aceste șabloane:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-dotnet",
      "type": "shell",
      "command": "dotnet",
      "args": ["build", "YourProject.csproj"], // ← Editează acest câmp
      "group": "build",
      "problemMatcher": "$msCompile"
    },
    {
      "label": "build-mono",
      "type": "shell",
      "command": "mcs",
      "args": ["YourProgram.cs"], // ← Editează acest câmp
      "group": "build"
    }
  ]
}

Configurează launch.json pentru depanare

Trebuie să creezi sau să editezi .vscode/launch.json în rădăcina workspace-ului și să actualizezi căile:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": ".NET Core Launch",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "build-dotnet",
      "program": "${workspaceFolder}/bin/Debug/net6.0/YourApp.dll", // ← Modifică această cale
      "cwd": "${workspaceFolder}",
      "args": [] // Adaugă argumente din linia de comandă dacă este necesar
    },
    {
      "name": "Mono Launch",
      "type": "mono",
      "request": "launch",
      "preLaunchTask": "build-mono",
      "program": "${workspaceFolder}/YourProgram.exe", // ← Modifică această cale
      "cwd": "${workspaceFolder}"
    }
  ]
}

Echivalente în CLI

# .NET Core
$ dotnet build
$ dotnet run

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

Limitări ale .NET Framework

⚠️ Important: Codurile bazate pe .NET Framework cu asamblări mixte (C++/CLI) sau dependențe complexe de Visual Studio au limitări semnificative în Windsurf. Aceste codebase-uri necesită de obicei sistemul de build proprietar al Visual Studio și nu pot fi compilate sau depanate complet în Windsurf din cauza dependențelor de instrumente specifice Microsoft și a modului de rezolvare a referințelor la asamblări. Abordări recomandate pentru proiectele .NET Framework:
  • Folosește Windsurf împreună cu Visual Studio pentru generarea și editarea codului
  • Migrează părțile compatibile către .NET Core, acolo unde este posibil

2. Dezvoltare C / C++

Extensii necesare:
ExtensieScop
Windsurf C++ Tools (Codeium.windsurf-cpptools)Un pachet cu cele trei extensii recomandate pentru a începe. Include suport LSP pentru C/C++, suport de depanare și suport pentru CMake.
Notă: Instalarea pachetului Windsurf C++ Tools va instala automat extensiile individuale listate mai jos, așadar trebuie doar să instalați pachetul.
ExtensieScop
clangd (llvm-vs-code-extensions.vscode-clangd)Integrare cu serverul de limbaj clangd. Dacă clangd lipsește, vi se va propune descărcarea binarului potrivit pentru platforma dvs.
CodeLLDB (vadimcn.vscode-lldb)Depanator nativ bazat pe LLDB pentru cod C/C++ și Rust.
CMake Tools (ms-vscode.cmake-tools)Integrare pentru configurarea proiectului, build, testare și depanare pentru proiecte bazate pe CMake.
Pentru fluxuri de lucru non‑CMake, puteți în continuare rula make, ninja etc. prin ținte personalizate în tasks.json.

Configurați sarcinile de build pentru C/C++

Creați sau editați fișierul .vscode/tasks.json pentru proiectul dvs. C/C++:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-cpp",
      "type": "shell",
      "command": "clang++",
      "args": ["-g", "main.cpp", "-o", "main"], // ← Modifică pentru fișierele tale
      "group": "build",
      "problemMatcher": "$gcc"
    }
  ]
}

3. Note și atenționări

  • Doar open‑source – refuzați orice solicitare de a instala instrumente Microsoft proprietare; containerele Windsurf nu le pot include.
  • Container vs Host – SDK-urile și compilatoarele trebuie să fie prezente în containerul workspace-ului Windsurf.
  • Scurtături de la tastatură
    • Ctrl/⌘ + Shift + B → compilează folosind task-ul de build activ
    • F5 → depanează folosind configurația launch.json selectată

4. Listă de verificare pentru configurare

  • Instalează extensiile necesare pentru stackul tău de limbaj
  • Creează și personalizează .vscode/tasks.json cu comenzile de build ale proiectului tău
  • Creează și personalizează .vscode/launch.json cu căile corecte către executabilele tale
  • Pentru Mono: instalează runtime-ul și verifică mono --version
  • Actualizează căile fișierelor, numele proiectelor și argumentele de build astfel încât să corespundă codului tău
  • Testează configurarea: apasă Ctrl/⌘ + Shift + B pentru a face build, apoi F5 pentru a depana
💡 Sfat: Fișierele de configurare sunt specifice proiectului. Va trebui să adaptezi exemplele de mai sus pentru fiecare workspace.
I