前言¶
DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。在進行代碼開發、調試或代碼審查時,如果只能在聊天窗口中查看或編輯代碼,體驗往往不夠流暢。dsh-editor 插件在會話主區新增了一個「文件」標籤頁,將 VS Code 的核心編輯體驗集成到了 DSH 的 Web 界面中,解決了在單一會話窗口中缺乏文件樹、多文件編輯和複雜代碼操作能力的問題。
是什麼¶
dsh-editor 是一個運行在 DeepSeek Harness (DSH) 裏的 VS Code 風格代碼編輯器插件。它由所有者 yangshen830-eng 維護,採用 MIT 許可證。該插件通過 Host 端(Node 進程)與 Client 端(瀏覽器 UI)的協作,在瀏覽器端提供文件樹、Monaco 編輯器、跨文件搜索、Markdown 預覽和 Git 狀態管理等能力。
核心功能¶
該插件提供了以下能力:
- 文件樹
- 瀏覽當前工作區目錄,支持展開/摺疊。
- 自動跟隨會話或工作區的切換。
- 顯示 Git 狀態角標(如
M/A/??),點擊角標可查看 diff。
- Monaco 編輯器
- 支持多文件標籤頁。
- 提供語法高亮、自動換行、Minimap、字號及 Tab 寬度配置。
- 支持快捷鍵自定義。
- 跨文件搜索
- 基於 ripgrep 實現,支持流式增量出結果。
- 支持命中高亮、虛擬滾動(上限 20000 條)。
- 支持大小寫/全字/正則開關,以及包含/排除 glob 模式。
- 提供搜索歷史記錄和跨文件替換功能。
- Markdown 預覽
- 支持源碼、預覽、分屏三種視圖切換。
- 使用 marked 渲染、DOMPurify 消毒、highlight.js 語法高亮、mermaid 圖表、KaTeX 公式及任務列表勾選。
- 快速打開
- 使用
Ctrl+P(macOS 爲Cmd+P)輸入相對路徑進行模糊匹配打開文件。
- 使用
- 對話路徑跳轉
- 在對話中,對於行內代碼形式的文件路徑,支持
Ctrl+點擊(macOS 爲Cmd+點擊),直接跳轉到「文件」標籤頁並打開對應文件。
- 在對話中,對於行內代碼形式的文件路徑,支持
- 主題同步
- 編輯器與 Markdown 預覽的主題會跟隨 DSH 的明暗主題實時切換。
安裝與啓用¶
推薦從 GitHub 倉庫安裝該插件。
dsh plugin --profile web add git@github.com:yangshen830-eng/dsh-editor.git
安裝完成後,必須重啓 DSH 才能在會話主區看到「文件」標籤頁。
dsh web --profile web
也可以從本地目錄或 npm 包安裝:
# 從本地目錄
dsh plugin --profile web add file:/path/to/dsh-editor
# 從 npm 安裝(發佈後)
dsh plugin --profile web add dsh-editor
典型用法¶
- 快速打開文件:在編輯器界面按
Ctrl+P,輸入文件名或相對路徑進行模糊搜索並打開。 - 對話跳轉:在對話歷史中,找到 Agent 返回的代碼塊,
Ctrl+點擊代碼塊中的文件路徑,即可直接在編輯器中定位到該文件。 - 跨文件搜索:在編輯器界面的搜索欄中配置規則,執行全局搜索與替換。
注意事項¶
- 生效機制:插件集的變化(包括新增、刪除、更新)需要重啓 DSH 進程才能生效。
- 動態插件限制:
src/目錄下的動態插件源碼不落盤,進程重啓後會失效,僅適合臨時試玩。 - 配置機制:執行
dsh plugin add會將包加入dsh.profile.bundles,Profile 啓動時會依據dsh.bundle.patch掛載 Host 端,並依據dsh.client聲明加載瀏覽器端。 - 數據傳輸:Host 端與 Client 端之間僅傳輸可 JSON 序列化的數據。
結語¶
dsh-editor 通過將 Monaco 編輯器與 DSH 的會話系統結合,爲開發者提供了一個輕量級的代碼編輯環境。它不僅支持基礎的瀏覽和編輯,還通過 ripgrep 和豐富的 Markdown 渲染能力,增強了代碼審查和文檔編寫的效率。如需瞭解更多細節或查看源碼,請參考其 GitHub 倉庫或技能社區目錄。