〇〇メイト(マルマルメイト)— VSCode 連携拡張
VSCode の 保存 / エラー(診断) / アクティブエディタ変化 を、ローカルで動く
〇〇メイトアプリへ通知し、ペットが反応します(保存→作業中ポーズ、エラー→落ち込み+吹き出し、
エラー解消→喜び+吹き出し)。
仕組み
- ペットアプリ(main)が
http://127.0.0.1:39271/event で待ち受け(依存なしの極小HTTPサーバー)。
- この拡張が VSCode のイベントを JSON で POST する。一方向push。
- アプリ未起動時は送信失敗を黙って無視(拡張は通常作業の邪魔をしない)。
- 受信は Bearer トークン認証+Origin/Host 検証つき(ローカルの他プロセス/Webページからの誤爆を防止)。
セットアップ(トークン設定)
- ペットアプリで 設定 → 連携 → 「VSCode 拡張連携」 を開き、トークンを「コピー」。
- VSCode の設定で
marumaruMate.token にそのトークンを貼り付ける
(Ctrl+, → marumaruMate で検索、または settings.json に
"marumaruMate.token": "<トークン>")。
- 以降、保存/エラーにペットが反応します。未設定だと認証エラー(401)で通知は届きません。
開発・実行(開発ホストで試す)
- ペット本体を起動: リポジトリ直下で
npm run dev
- この拡張を用意:
cd vscode-extension
npm install
npm run compile
- VSCode で
vscode-extension/ フォルダを開き、F5(拡張開発ホストが起動)
- 開発ホスト側で適当なファイルを保存/エラーを出す → ペットが反応
配布
ローカル配布(.vsix)
cd vscode-extension
npm install
npm run package # ai-mascot-work-vscode-<version>.vsix を生成
VSCode の「拡張機能: VSIX からのインストール」で導入できる。
Marketplace 公開(権利者のみ)
Publisher react-system の所有者が以下を実行する(要 Azure DevOps PAT):
npm run publish # = vsce publish(事前に vsce login react-system)
公開には https://marketplace.visualstudio.com/manage で Publisher 登録が必要。
送信イベント
{ kind: "save", file }
{ kind: "diagnostics", errors }(エラー重大度の総件数)
{ kind: "activeEditor", language, file }
ポートは拡張・アプリ双方で 39271 固定(src/extension.ts と
src/main/vscode/server.ts の VSCODE_PORT)。
| |