Guia de configuração do ambiente de desenvolvimento do Windsurf
Visão geral
- .NET / C# – com suporte tanto ao .NET Core quanto ao .NET Framework (via Mono)
- C / C++ – usando ferramentas baseadas em clang
⚠️ Importante: Os exemplos abaixo são modelos que você deve ajustar ao seu projeto. Será necessário editar caminhos de arquivos, nomes de projetos e comandos de build para corresponder ao seu codebase.
1. Desenvolvimento em .NET / C#
Escolha a variante que corresponde ao seu código.
.NET Core / .NET 6+
-
C# (
muhammad-sammy.csharp) – inclui OmniSharp LS e NetCoreDbg, para você poder apertar F5 imediatamente -
.NET Install Tool (
ms-dotnettools.vscode-dotnet-runtime) – instala automaticamente runtimes/SDKs ausentes -
Solution Explorer (
fernandoescolar.vscode-solution-explorer) – navegue e gerencie soluções e projetos .NET
dotnet build
.NET Framework via Mono
- Mono Debug (
chrisatwindsurf.mono-debug) – adaptador de depuração para Mono (Open VSX) - C# (
muhammad-sammy.csharp) para recursos da linguagem
⚠️ Configuração do .NET Framework: Após instalar o Mono, para usar a extensão C# com projetos .NET Framework, é preciso alterar uma configuração específica nas configurações do IDE. Acesse Settings (na seção da extensão C#) e desative “Omnisharp: Use Modern Net”. Essa configuração usa o build do OmniSharp para .NET 6, que oferece melhorias significativas de desempenho para projetos no estilo SDK, .NET Core e .NET 5+. Observe que essa versão não oferece suporte a projetos .NET Framework que não sejam no estilo SDK, incluindo Unity.Build:
mcs Program.cs
Configure tasks.json para o seu projeto
.vscode/tasks.json na raiz do seu workspace e personalizar os seguintes templates:
Configurar o launch.json para depuração
.vscode/launch.json na raiz do seu workspace e atualizar os caminhos:
Equivalentes na CLI
Limitações do .NET Framework
- Use o Windsurf em conjunto com o Visual Studio para geração e edição de código
- Migre partes compatíveis para o .NET Core sempre que possível
2. Desenvolvimento em C / C++
| Extensão | Finalidade |
|---|---|
Windsurf C++ Tools (Codeium.windsurf-cpptools) | Conjunto com as três extensões que recomendamos para começar. Pacote que inclui suporte LSP para C/C++, depuração e CMake. |
Observação: Ao instalar o pacote Windsurf C++ Tools, as extensões individuais abaixo serão instaladas automaticamente; portanto, basta instalar o pacote.
| Extensão | Finalidade |
|---|---|
clangd (llvm-vs-code-extensions.vscode-clangd) | Integração com o servidor de linguagem clangd. Se clangd não estiver instalado, será oferecido o download do binário correto para sua plataforma. |
CodeLLDB (vadimcn.vscode-lldb) | Depurador nativo baseado em LLDB para código C/C++ e Rust. |
CMake Tools (ms-vscode.cmake-tools) | Integração de configuração de projeto, compilação, testes e depuração para projetos baseados em CMake. |
make, ninja, etc. por meio de alvos personalizados em tasks.json.
Configurar tarefas de build de C/C++
.vscode/tasks.json para o seu projeto em C/C++:
3. Observações e cuidados
- Somente open‑source – recuse qualquer solicitação para instalar ferramentas proprietárias da Microsoft; os contêineres do Windsurf não podem incluí‑las.
- Contêiner vs host – SDKs/compiladores devem estar presentes dentro do contêiner de workspace do Windsurf.
- Atalhos de teclado
- Ctrl/⌘ + Shift + B → compilar usando a tarefa de build ativa
- F5 → depurar usando a configuração
launch.jsonselecionada
4. Lista de verificação de configuração
- Instale as extensões necessárias para sua stack de linguagem
- Crie e personalize
.vscode/tasks.jsoncom os comandos de build do seu projeto - Crie e personalize
.vscode/launch.jsoncom os caminhos corretos para seus executáveis - Para Mono: instale o runtime e verifique
mono --version - Atualize caminhos de arquivos, nomes de projeto e argumentos de build para corresponder ao seu codebase
- Teste sua configuração: pressione Ctrl/⌘ + Shift + B para compilar e depois F5 para depurar
💡 Dica: Os arquivos de configuração são específicos do projeto. Você precisará adaptar os exemplos acima para cada workspace.