DSH 採用“一切皆插件”的理念。此插件在 DSH 中心區視圖內嵌入固定版本 code-server(VS Code Web),支持安裝擴展、瀏覽/編輯文件等全部 code-server 能力;提供 pinned / 自定義二進制兩種服務器來源、端口與目錄配置、安裝進度與熱切換。
核心功能¶
實例池與熱切換¶
插件採用實例池機制管理 code-server 實例:按 workspace 緩存實例,同空間會話互切命中同一實例,實現零重載。當實例池滿(默認上限 2)時,會彈出窗口讓用戶選擇要騰位的實例,被踢出的實例會整體銷燬。
服務器來源與配置¶
支持兩種服務器來源:
- pinned:使用插件內置的固定版本。
- custom:使用用戶指定的二進制路徑。
用戶可配置端口、工作區目錄、打開目錄跟隨當前空間的開關以及實例池上限。
UI 交互與佈局¶
- 主題跟隨:自動跟隨 DSH 深色主題或 VS Code 淺色主題。
- 專注佈局:默認開啓。新打開的 VS Code 默認以“副邊欄(右側 Codex 面板)最大化”進入,隱藏狀態欄與歡迎頁,活動欄保留。
- 信任打開的目錄:默認開啓,禁用 Restricted Mode,確保 Codex 等擴展在目錄下可用。
版本迭代修復¶
- 0.1.8:內置擴展資源自動補齊,解決 code-server 4.135.0 缺少瀏覽器端 bundle 導致黑屏的問題。
- 0.1.19 - 0.1.23:持續修復實例池、佈局初始化、主題跟隨收斂、信任目錄、副邊欄默認定位等功能。
安裝與啓用¶
安裝插件需要 Node.js >= 20 環境。安裝流程如下:
- 進入 DSH 倉庫目錄。
- 安裝插件包(將插件行追加進 profile 層棧)。
cd <dsh 倉庫>
pnpm dsh plugin --profile web add <本插件目錄>/dsh-vscode-bridge-0.1.20.tgz
- 重啓 dsh web(建議脫離終端重啓以落盤日誌)。
bash <本插件目錄>/scripts/restart-dsh-web.sh <dsh 倉庫> <工作區>
典型用法¶
安裝完成後,插件會在 DSH 原生右欄(better-sidebar 0.19+ / DSH 0.1.5 宿主)或中心區視圖出現頁籤。
- 配置服務器:在側欄齒輪 → “VS Code Server”設置頁,選擇服務器模式(pinned 或 custom),配置端口與目錄。
- 會話切換:在同一個 DSH 空間內切換會話,VS Code 頁面會保持當前狀態或零重載,不會重新冷啓動。
- 使用專注模式:在設置頁關閉“專注佈局”開關,或手動在 VS Code 中調整佈局後,後續打開該目錄將保留用戶自定義佈局。
適用場景與注意¶
- 環境依賴:需要安裝目錄下的特定文件(如
cordis.patch.yml,dsh.plugin.json等),且需 code-server 4.135.0 官方 tarball(插件會自動補齊內置擴展資源)。 - 調試隔離:若需獨立調試,可通過
DSH_VSCODE_BRIDGE_WORKSPACE環境變量覆蓋插件的工作區根,實現獨立 profile/端口。 - 版本管理:升級版本時需重新打包 tgz 並按上述步驟重裝 + 重啓。