dsh-editor:DeepSeek Harness 裏的 VS Code 風格代碼編輯器

前言

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

典型用法

  1. 快速打開文件:在編輯器界面按 Ctrl+P,輸入文件名或相對路徑進行模糊搜索並打開。
  2. 對話跳轉:在對話歷史中,找到 Agent 返回的代碼塊,Ctrl+點擊 代碼塊中的文件路徑,即可直接在編輯器中定位到該文件。
  3. 跨文件搜索:在編輯器界面的搜索欄中配置規則,執行全局搜索與替換。

注意事項

  • 生效機制:插件集的變化(包括新增、刪除、更新)需要重啓 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 倉庫或技能社區目錄。

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

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

小夜