Windsurf 開発環境セットアップガイド

概要

Windsurf のワークスペースは、コンパイル、リント、デバッグにおいてオープンソースのツール群のみを使用します。Microsoft のプロプライエタリな Visual Studio コンポーネントは再配布できないため、コミュニティがメンテナンスする言語サーバー、デバッガー、コンパイラを統合しています。 このガイドでは、次の 2 つのスタックを扱います:
  1. .NET / C# – .NET Core と .NET Framework(Mono 経由)の両方に対応
  2. C / C++ – clang ベースのツール群を使用
同一のワークスペース内で、いずれか一方または両方をインストールできます。
⚠️ 重要: 以下の例は、プロジェクトごとにカスタマイズが必要なテンプレートです。コードベースに合わせて、ファイルパス、プロジェクト名、ビルドコマンドを編集してください。

1. .NET / C# 開発

ご利用のコードベースに合った種類を選択してください。

.NET Core / .NET 6+

拡張機能:
  • C# (muhammad-sammy.csharp) – OmniSharp LSNetCoreDbg を同梱しており、すぐに F5 で実行できます
  • .NET Install Tool (ms-dotnettools.vscode-dotnet-runtime) – 不足しているランタイム/SDKを自動インストール
  • Solution Explorer (fernandoescolar.vscode-solution-explorer) – .NET のソリューションやプロジェクトのナビゲートと管理
デバッガ: 追加は不要です—この拡張には言語サーバーと、.NET Core に適したオープンソースのデバッガが含まれています。 ビルド: dotnet build

Mono を使用した .NET Framework

拡張機能:
  • Mono Debug (chrisatwindsurf.mono-debug) – Mono 用のデバッグアダプター(Open VSX
  • C# (muhammad-sammy.csharp) 言語機能用
デバッガー: ワークスペース内に Mono のツールチェーンも必ずインストールしてください。 Mono リポジトリのインストールガイドに従ってください。デバッガー拡張機能はデバッグ時にそのランタイムへ接続します。
⚠️ .NET Framework の構成: Mono をインストール後、.NET Framework プロジェクトで C# 拡張機能を使用するには、IDE の設定で特定の項目を切り替える必要があります。Settings(C# Extension セクション)に移動し、“Omnisharp: Use Modern Net” をオフにしてください。この設定は .NET 6 用の OmniSharp ビルドを使用し、SDK スタイルの Framework、.NET Core、.NET 5+ の各プロジェクトで大幅なパフォーマンス向上をもたらします。なお、このバージョンは Unity を含む非 SDK スタイルの .NET Framework プロジェクトをサポートしません。
ビルド: mcs Program.cs

プロジェクト用の tasks.json を設定する

ワークスペースのルートにある .vscode/tasks.json を作成または編集する必要があります。 次のテンプレートをカスタマイズしてください:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-dotnet",
      "type": "shell",
      "command": "dotnet",
      "args": ["build", "YourProject.csproj"], // ← ここを編集
      "group": "build",
      "problemMatcher": "$msCompile"
    },
    {
      "label": "build-mono",
      "type": "shell",
      "command": "mcs",
      "args": ["YourProgram.cs"], // ← ここを編集
      "group": "build"
    }
  ]
}

デバッグ用に launch.json を設定する

ワークスペースのルートにある .vscode/launch.json を作成または編集する必要があります。パスを更新してください:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": ".NET Core Launch",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "build-dotnet",
      "program": "${workspaceFolder}/bin/Debug/net6.0/YourApp.dll", // ← このパスを編集
      "cwd": "${workspaceFolder}",
      "args": [] // 必要に応じてコマンドライン引数を追加
    },
    {
      "name": "Mono Launch",
      "type": "mono",
      "request": "launch",
      "preLaunchTask": "build-mono",
      "program": "${workspaceFolder}/YourProgram.exe", // ← このパスを編集
      "cwd": "${workspaceFolder}"
    }
  ]
}

CLI での同等操作

# .NET Core
$ dotnet build
$ dotnet run

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

.NET Framework の制限事項

⚠️ 重要: 混在アセンブリ(C++/CLI)や複雑な Visual Studio 依存関係を含む .NET Framework のコードベースには、Windsurf での利用に大きな制約があります。これらのコードベースは通常、Visual Studio の独自ビルドシステムを必要とし、Microsoft 固有のツールやアセンブリ参照解決に依存しているため、Windsurf だけでは完全なコンパイルやデバッグを行えません。 .NET Framework プロジェクト向けの推奨アプローチ:
  • コード生成や編集には、Visual Studio と併用して Windsurf を活用する
  • 可能な範囲で互換性のある部分を .NET Core に移行する

2. C / C++ 開発

必須拡張機能:
ExtensionPurpose
Windsurf C++ Tools (Codeium.windsurf-cpptools)はじめに導入を推奨する3つの拡張機能をまとめたバンドルです。C/C++ の LSP サポート、デバッグ、CMake を含むパッケージです。
Note: Windsurf C++ Tools バンドルをインストールすると、以下の個別拡張機能が自動で導入されます。バンドルのみのインストールで問題ありません。
ExtensionPurpose
clangd (llvm-vs-code-extensions.vscode-clangd)clangd 言語サーバーの統合。clangd が見つからない場合は、ご利用のプラットフォームに合ったバイナリのダウンロードを促します。
CodeLLDB (vadimcn.vscode-lldb)C/C++ および Rust 向けの LLDB ベースのネイティブデバッガー。
CMake Tools (ms-vscode.cmake-tools)CMake ベースのプロジェクトに対する構成、ビルド、テスト、デバッグの統合。
CMake を使わないワークフローでも、カスタムの tasks.json ターゲット経由で makeninja などを呼び出せます。

C/C++ ビルド タスクの設定

C/C++ プロジェクト用に .vscode/tasks.json を作成または編集します:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build-cpp",
      "type": "shell",
      "command": "clang++",
      "args": ["-g", "main.cpp", "-o", "main"], // ← ファイルに合わせて編集
      "group": "build",
      "problemMatcher": "$gcc"
    }
  ]
}

3. 注意事項とハマりポイント

  • オープンソースのみ – Microsoft のプロプライエタリなツールのインストールを求めるプロンプトは必ず拒否してください。Windsurf のコンテナには同梱できません。
  • コンテナ vs ホスト – SDK/コンパイラは Windsurf のワークスペースコンテナの内部に存在している必要があります。
  • キーボードショートカット
    • Ctrl/⌘ + Shift + B → アクティブなビルドタスクでコンパイル
    • F5 → 選択した launch.json の設定でデバッグ

4. セットアップ チェックリスト

  • 使用する言語スタックに必要な拡張機能をインストールする
  • プロジェクトのビルドコマンドに合わせて .vscode/tasks.json作成し、カスタマイズする
  • 実行可能ファイルへの正しいパスを指定して .vscode/launch.json作成し、カスタマイズする
  • Mono の場合: ランタイムをインストールし、mono --version で確認する
  • ファイルパス、プロジェクト名、ビルド引数をコードベースに合わせて更新する
  • セットアップをテスト: Ctrl/⌘ + Shift + B でビルドし、続けて F5 でデバッグする
💡 ヒント: 構成ファイルはプロジェクトごとに異なります。各ワークスペースに合わせて上記の例を調整してください。