DeepSeek Harness 工作區全文搜索插件

前言

DeepSeek Harness(DSH)默認的搜索只支持會話標題。在開發或調試過程中,需要從大量文件中快速定位代碼片段時,這個限制會變得很不方便。這個插件通過在本地開啓一個只讀的搜索接口,讓你直接在 DSH 的界面裏對工作區文件進行全文搜索。

插件介紹

這個插件是 dsh-workspace-search,由用戶 1771486218 維護。它的核心作用是:在 DSH 的 GUI 中對當前或任意工作區裏的文本文件進行 grep 式搜索,支持過濾、分組、上下文預覽和跳轉到指定行。

插件安裝在本地 profile 的 node_modules 目錄下,通過 cordis.patch.yml 注入到 DSH 的插件系統中。宿主端提供 REST API,客戶端側繪製搜索面板。

核心功能

  1. 全文搜索
    - 對工作區目錄樹按行匹配,返回「文件 + 行號 + 命中行」。
    - 默認大小寫不敏感,也支持正則表達式。

  2. 過濾選項
    - 包含 glob(如 src/**、*.cpp)。
    - 排除 glob(如 build/**、.git、node_modules)。
    - 大寫敏感、全字匹配、正則開關。

  3. 結果分組
    - 按文件分組,顯示每組命中數,可摺疊。
    - 頂部顯示「N 文件 / M 處 · 用時」。

  4. 上下文預覽
    - 命中行前後 18 行。
    - 支持輕量語法高亮(C/C++、Lua、Python、JS/TS/QML、JSON、Markdown、CMake)。

  5. 雙擊跳轉
    - 雙擊結果或點行尾的「↗ 打開」,在 DSH 的側欄打開文件並定位到命中行。

  6. 工作區切換
    - 面板右上角膠囊顯示當前搜索範圍。
    - 可切換到已打開過的任意工作區,不限於當前會話。

  7. 鍵盤操作
    - ↑/↓ 選擇結果。
    - Enter 看上下文(再按一次跳轉)。
    - Esc 關閉面板。

安裝與啓用

安裝前請先確認你使用的是 DSH 0.2.0-rc.2(Windows 桌面版),插件依賴該版本驗證。

推薦使用腳本安裝:

# 在插件目錄裏
node scripts/install.mjs            # 默認裝進 desktop profile
node scripts/install.mjs myprofile  # 或指定 profile 名

腳本會做兩件事:
1. 把 lib/、package.json、cordis.patch.yml 複製到 <DSH_HOME>/profiles/<profile>/node_modules/dsh-workspace-search。
2. 在 <profile>/cordis.patch.yml 末尾追加插件註冊條目(原文件先備份爲 cordis.patch.yml.bak)。

安裝完成後重啓 DSH,然後按 Ctrl+Shift+F 打開搜索面板。

典型用法

  1. 按 Ctrl+Shift+F 或點窗口左下角的放大鏡按鈕。
  2. 輸入關鍵字。默認大小寫不敏感,也支持正則。
  3. 在結果列表中:
    - 單擊某一行,在面板右側查看上下文。
    - 雙擊某一行,在 DSH 的側欄打開對應文件並跳轉到該行。
  4. 在面板右上角切換到其他已打開的工作區。

適用場景與注意

  • 適合需要在 DSH 界面內快速查找文件內容的場景,比如調試、代碼審查、多項目切換。
  • 插件會在本機 127.0.0.1 開一個只讀搜索接口,本機其它進程也能調用它讀取文件,但沒有鑑權。
  • 代碼由 DeepSeek 生成,倉庫作者提供了需求、安裝並做了實測,但未經過系統的安全審計。
  • 使用前建議自行審閱源碼(尤其是 lib/index.js 中的搜索邏輯與接口實現)。
  • 依賴 DSH 的內部接口(webServer 路由、sidebarRight 服務),升級後可能需要跟進適配。

卸載

node scripts/uninstall.mjs

或手動:
1. 刪除 profile 的 cordis.patch.yml 中對應的 - insert: 條目。
2. 刪除 node_modules/dsh-workspace-search 目錄。
3. 重啓 DSH。

開發與調試

npm run check          # 語法檢查

如果需要調試客戶端界面,可以使用驗證臺:

node dev/harness.mjs   # 起在 8140
# http://127.0.0.1:8140/?root=<URL 編碼後的絕對路徑>&q=<關鍵字>

修改 lib/ 中的代碼後,複製到 profile 並刷新窗口即可生效。

總結

這個插件讓 DSH 不再侷限於會話標題搜索,而是可以直接在 GUI 中對工作區文件進行全文檢索。對於習慣在 DSH 中完成從思考、搜索到跳轉的閉環開發者來說,能顯著提升查找效率。如需瞭解安裝詳情與源碼,可訪問項目目錄頁或 GitHub 倉庫。

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

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

小夜