Workspace Launch by Link
September 28, 2025 · View on GitHub
Webリンクから VS Code ワークスペースを起動し、内容をサーバーとリアルタイム同期する拡張機能です。
使い方
- 拡張機能をインストール
- Web 側に以下の形式のリンクを配置
vscode://Kodai-Yamamoto-SIW.workspace-launch-by-link/start?server=https%3A%2F%2Fexample.com&ownerId=alice&workspaceId=week1
- server: サーバーのベース URL(必須)
- ownerId/workspaceId: 任意の識別子
サーバー API
-
GET /manifest
- クエリ: ownerId, workspaceId, token
- 返却: JSON 配列
[ { "path": "src/", "type": "directory" }, { "path": "src/main.py", "type": "file", "contentBase64": "cHJpbnQoJ0hlbGxvJyk=", } ] -
POST /event/fileSnapshot
- body: { path, isBinary, content(base64), ownerId, workspaceId }
-
POST /event/create | /event/delete | /event/rename
- body: { path | oldPath/newPath, ownerId, workspaceId }
-
POST /event/heartbeat
- body: { ts, ownerId, workspaceId }
動作
- 初回: manifest を取得してテンプレートを展開し、
.vscode/workspace-launch-by-link.jsonを作成後、そのフォルダを新しいウィンドウで開きます。 - 監視: 以降はマーカーを検出して自動で監視・送信を開始します。
- 送信失敗時: 画面左下にエラーを出し、成功まで指数バックオフで無限リトライ。成功でエラーは消えます。
開発
- ビルド:
npm run compile - パッケージ:
npm run package
ローカル動作テスト手順
- 依存インストールとビルド
npm installnpm run compile
- モックサーバー起動
npm run mock-server- 表示される
http://localhost:8787を控えます
- 拡張機能をデバッグ実行
- VS Code でこのフォルダを開き、F5 で「拡張機能の開発ホスト」を起動
- 開発ホスト側で URI を実行
- コマンドパレットで「URI を開く」を選び、次を貼り付け
vscode://Kodai-Yamamoto-SIW.workspace-launch-by-link/start?server=http%3A%2F%2Flocalhost%3A8787&ownerId=alice&workspaceId=demo- 新しいウィンドウでテンプレートが展開されます
- ファイルを編集/作成/削除/リネーム
- モックサーバーのターミナルに
/event/*が届く様子が表示されます http://localhost:8787/_eventsでも確認できます
注意: 送信に失敗した場合、左下ステータスバーにエラー表示が出ます。サーバー復帰後は自動で成功し、表示は消えます。