コントリビュートとソースからのビルド
このページは、SharpLsp をソースからビルドしたいコントリビューター向けです。SharpLsp を利用したいだけであれば、VS Code 拡張機能をインストールしてください — 必要なものはすべて同梱されています。
前提条件
推奨: Dev Container
最も手早い方法は、同梱の dev container を使うことです。Rust、.NET 10 SDK、Node 20、必要なツール一式が事前構成されています。
- Docker と Dev Containers 拡張機能 をインストールします
- リポジトリを VS Code で開きます
- プロンプトが表示されたら Reopen in Container をクリックします
手動セットアップ
# Rust LSP ホストをビルド
cargo build
# clippy lint を実行
cargo clippy
# テストを実行
cargo test
# VS Code 拡張機能の VSIX をビルド
cd editors/vscode && npm install && npm run compile
リポジトリ構成
sharplsp/
├── src/ # Rust LSP ホスト
├── sidecars/
│ ├── SharpLsp.Sidecar.FSharp/ # F# サイドカー(FSharp.Compiler.Service)
│ ├── SharpLsp.Sidecar.CSharp/ # C# サイドカー(Roslyn)
│ └── SharpLsp.Sidecar.Common/ # サイドカー共有コード
├── editors/
│ ├── vscode/ # VS Code 拡張機能(TypeScript)
│ └── zed/ # Zed 拡張機能(Rust → wasm32-wasip1)
├── docs/ # 仕様書と実装計画
├── tests/ # E2E テスト
└── website/ # このサイト
アーキテクチャ
3 層アーキテクチャ:
- 第 1 層 — Rust LSP ホスト: LSP 接続(stdio 上の JSON-RPC)、VFS、tree-sitter インクリメンタル解析、リクエストルーティング、サイドカーライフサイクル
- 第 2 層 — C# サイドカー(Roslyn): MSBuildWorkspace、Roslyn API 全機能(補完、診断、リファクタリング、整形)
- 第 3 層 — F# サイドカー(FCS): FSharp.Compiler.Service、Fantomas、FSharpLint
IPC は名前付きパイプ(Windows)/ Unix ドメインソケット(Linux、macOS)上の MessagePack を使用します。
詳細は アーキテクチャ を参照してください。