DSH Web IDE:在會話頁內嵌 VSCode 風格開發工作臺

前言

在 DSH 裏和模型協作時,工作區文件往往要在瀏覽器會話、本地編輯器與終端之間來回切換。會話側能打開文件,但若缺少完整的樹形瀏覽、保存、Git 與 shell,改代碼和提交仍要跳出當前界面。下面介紹的 DSH Web IDE(npm 包名 @zhaoyang10/dsh-web-ide,倉庫 fengzhaoy/dsh-web-ide)把 Monaco 編輯器、資源管理器、Git、交互式終端和全局搜索收進會話頁第三個 Tab,並與當前 session 的工作區綁定,減少上下文切換。

這是什麼

DSH Web IDE 由社區維護者 fengzhaoy 發佈,分類爲 客戶端 插件。它以 DSH bundle 形式分發:瀏覽器側加載 lib/client.js 註冊 會話 → 軌跡 → IDE 中的 IDE Tab;Host 側通過 ideTools 遠程命名空間提供文件寫入校驗、Git、ripgrep 搜索、node-pty 終端以及運行/調試進程管理。許可證爲 MIT(見倉庫 README)。

插件聲明的 DSH 環境要求爲 >=0.2.0-rc.2(見 package.json 的 dsh.env.minVersion);README 另建議本機已安裝 DSH CLI 且 dsh 命令可用(文檔中寫「建議 0.1.6+」),並具備可正常啓動的 web profile(默認目錄 ~/.dsh/profiles/web)。

核心功能

資源管理器與編輯器

  • 無限層級目錄樹,按擴展名匹配文件圖標;新建/重命名/刪除經 Host 工作區路徑校驗,避免越界訪問。
  • 文件條目展示 Git 狀態(未跟蹤、修改、已暫存等);超過 2MB 的文件分頁展示。
  • Monaco Editor + Dark Modern 主題:語法高亮、行號、摺疊、多 Tab;Ctrl/Cmd+S 或狀態欄保存;外部改動導致衝突時可選擇覆蓋或重新加載。
  • Markdown 支持編輯/預覽切換;Monaco Worker 內嵌,diff 高亮不依賴 CDN。

源代碼管理(Git)

更改列表支持逐文件或批量暫存/取消暫存/丟棄;雙欄 Diff、Graph 提交歷史、分支檢出/新建/刪除與發佈(git push -u origin)、Fetch/Sync。提交支持常規、amend、signoff、提交併推送/同步。AI 生成提交信息會複用當前會話模型撰寫提交說明。

終端與全局搜索

  • 終端:node-pty 真實交互式終端,多實例與分屏;關閉面板不殺進程,重開可回放 scrollback。
  • 搜索:基於 ripgrep 的全工作區檢索,支持正則、大小寫與 include glob(如 *.ts);入口爲命令面板「查看: 顯示搜索」(資源管理器標題欄搜索圖標用於按名稱篩選文件樹)。

運行與調試

  • 右鍵或命令面板 運行當前文件(多種語言單文件);自動發現 package.json、Makefile、Cargo.toml 等中的任務。
  • 運行結果記錄退出碼與耗時;輸出中的錯誤行可解析進 Problems 面板。
  • Node.js 調試通過 Host 以 --inspect-brk 拉起進程,瀏覽器 直連 V8 Inspector WebSocket;支持斷點、單步、調用棧與調試控制台求值;可配合 Chrome chrome://inspect 附加同一目標。

平臺集成

  • 註冊爲會話頁 IDE Tab,卸載 bundle 後 Tab 自動移除。
  • 會話側打開的文件會同步到 IDE;IDE 瀏覽時側邊欄高亮聯動。
  • 中/英界面跟隨 DSH 客戶端語言設置。

安裝與啓用

安裝分兩步:把包裝入 web profile 依賴,再把包名寫入 profile 的 dsh.profile.bundles,最後重啓 dsh web。啓動時包內 cordis.patch.yml 會把 ui-ide 註冊進 web 客戶端 roster,一般無需手改 roster。

前置:dsh 可用;dsh web 能正常啓動。

從 npm 安裝(推薦)

1、安裝到 web profile:

dsh plugin --profile web add @zhaoyang10/dsh-web-ide

2、編輯 ~/.dsh/profiles/web/package.json,在 dsh.profile.bundles 數組末尾追加:

"dsh": {
  "profile": {
    "bundles": [
      "...其他 bundle...",
      "@zhaoyang10/dsh-web-ide"
    ]
  }
}

3、重啓:

dsh web

驗證:瀏覽器右側工具欄應出現 IDE 入口;進入後檢查文件樹、編輯器、終端與 Git 面板。

卸載:先從 bundles 移除包名,再執行 dsh plugin --profile web remove @zhaoyang10/dsh-web-ide,並重啓 dsh web。

本地開發調試可使用 link: 或 file: 路徑安裝;若不想列入 bundle,可在 profile 的 cordis.patch.yml 手動插入 ui-ide roster 條目(詳見倉庫 README「安裝到 DSH」)。

典型用法

界面入口:會話頁頂部 會話 → 軌跡 → IDE;IDE 工作區對應當前 session 的 cwd。

編輯與保存:在樹中打開文件,修改後 Tab 與狀態欄顯示未保存;保存快捷鍵或狀態欄按鈕寫入磁盤;關閉未保存 Tab 會確認是否保存。

Git:打開 Source Control,暫存變更後編寫提交信息,Ctrl/Cmd+Enter 提交;需要時可點 AI 生成提交信息;「更多提交操作」含 amend、signoff、提交併推送/同步等。

終端:在終端面板新建實例,需要時用 Ctrl+C 中斷;面板關閉後進程仍在,重開可看歷史輸出。

運行/調試:活動欄「運行和調試」查看任務與斷點;編輯器右鍵 運行當前文件;對 JS/TS 使用 調試當前文件 時,IDE 會註冊斷點後放行 --inspect-brk 進程。

全局搜索:命令面板打開搜索視圖,輸入關鍵詞回車,點擊結果跳轉到文件與行號。

會話聯動:在會話裏讓模型打開的文件會自動出現在 IDE;在 IDE 中瀏覽文件時,會話側同步高亮。

適用場景與注意

適合:希望在 DSH web 會話同一頁面內完成瀏覽、編輯、Git、終端與 ripgrep 搜索的智能體開發者;需要與會話模型聯動寫提交說明、又希望 Git 操作圖形化的用戶。

注意:

  • 插件 Host 服務以當前 dsh 進程權限 讀寫工作區、執行 Git 與終端命令;安裝前請閱讀源碼與 MIT 許可證,確認符合你的安全策略。
  • 保存走本插件 ideTools.writeFile,含工作區校驗與 sandbox 圍欄;併發保存可能與磁盤版本衝突,界面會提示而非靜默覆蓋。
  • 調試目標按會話歸屬管理,插件卸載或頁面卸載會終止相關進程;斷點記錄在瀏覽器側按工作區持久化。
  • 社區目錄頁 skillhub.cn 插件條目 與 GitHub 倉庫由維護者發佈,與 DeepSeek / 幻方無官方從屬關係;DSH 生態遵循「一切皆插件」,本文事實以倉庫 README 與包內聲明爲準。

結尾

DSH Web IDE 把 VSCode 風格工作臺嵌入會話頁 IDE Tab,用 Monaco、Git 全流程、真實終端與 ripgrep 搜索覆蓋日常改碼路徑,並用會話模型輔助生成提交信息。安裝命令與 bundle 配置見上文;更多架構說明(瀏覽器 bundle 與 Host ideTools 分工、調試 CDP 直連方式)見 GitHub README,插件索引見 SkillHub 目錄頁。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜