dsh-codegraph-search:DeepSeek Harness 的代碼搜索與符號圖插件

前言

在 DeepSeek Harness(dsh)的 Web GUI 中,處理大型項目時需要在多個文件間跳轉、查找符號定義或排查調用關係。手動在編輯器或終端中搜索既慢又容易遺漏。dsh 本身不提供內置的代碼搜索能力,社區插件則需要額外的側邊欄容器。dsh-codegraph-search 插件直接註冊到 dsh 內置的右側欄,提供關鍵詞搜索與代碼圖兩種模式,命中後可直接跳轉到對應行。

這是什麼

dsh-codegraph-search 是一個面向 dsh Web GUI 的搜索插件,掛在內置右側欄。它不依賴 dsh-better-sidebar,通過 npm 包 dsh-codegraph-search 發佈。插件包含兩個模式:關鍵詞模式用於搜索文件名和內容,代碼圖模式通過 codegraph CLI 查詢符號並展開調用方與被調方。

核心功能

Keyword 模式

  • 搜索範圍:當前會話工作區的文件名與文件內容,按文件分組顯示行號。
  • 漸進式結果:工作區遍歷過程中,每找到一個文件組就通過 NDJSON 流式返回,狀態行實時統計命中數。
  • 渲染節流:首次顯示結果後,列表更新間隔不超過 250 毫秒,避免快速遍歷時頻繁重繪。
  • 高亮顯示:查詢文本在文件名、匹配行以及代碼圖符號名稱/簽名中高亮,使用相同的匹配規則(字面量大小寫摺疊、正則或 Aa 狀態)。
  • 過濾選項:VS Code 風格的包含/排除 glob(支持 **、*、?、{a,b}),大小寫切換,正則切換。
  • 類型篩選:快捷擴展標籤(.ts、.tsx、.js、.py、.json、.md)和自由擴展字段。
  • 忽略項:隱藏文件/目錄、.git、node_modules、.hg、.svn、dist、build、.next、target、符號鏈接、二進制文件以及超過 1 MiB 的文件。

Code graph 模式

  • 依賴:需要在服務器上安裝 codegraph CLI 並對工作區執行 codegraph init(索引位於 .codegraph/)。
  • 查詢方式:通過符號名稱或限定名稱查詢。
  • 結果展示:顯示符號類型、簽名與位置,每行可懶加載展開調用方與被調方。
  • 錯誤處理:缺少 CLI、索引、超時或解析失敗時顯示對應的錯誤信息與可複製修復命令。

通用行爲

  • 作用域:自動限定到當前會話的工作區。
  • 搜索觸發:在輸入框中按 Enter 開始搜索。
  • 刷新時機:過濾器或模式切換後約 250 毫秒刷新結果。
  • 清空查詢:按 Esc 清空輸入。
  • 狀態保持:切換標籤時不重新運行搜索,保留結果、滾動位置與展開狀態。

安裝與啓用

插件發佈在 npm 上,包名爲 dsh-codegraph-search。

dsh plugin --profile web add dsh-codegraph-search

如需本地開發,可以 clone 倉庫後添加:

git clone https://github.com/Wilyte/dsh-codegraph-search.git
dsh plugin --profile web add ./dsh-codegraph-search

安裝後,在 dsh Web 中重啓即可加載插件。插件直接註冊到內置右側欄,無需額外側邊欄插件,側邊欄的引導頁會顯示“Code search”入口。

配置

所有配置項均爲可選,使用 profile patch 層,id 爲 code-search:

- id: code-search
  config:
    maxFiles: 5000          # 單次搜索掃描文件數的硬上限
    maxMatches: 300         # 總內容匹配數的硬上限
    maxLineLength: 300      # 單行內容報告長度的硬上限
    maxFileBytes: 1048576   # 超過此大小的文件跳過內容掃描
    codegraphBin: codegraph # 代碼圖模式使用的 CLI
    codegraphTimeoutMs: 15000
    codegraphMaxResults: 50

超過上限時,狀態行會如實報告“file scan truncated”或“matches truncated”,不會靜默丟棄結果。

依賴與環境

  • dsh Web:使用內置右側欄,對應包 @deepseek-ai/dsh-client-ui-sidebar-right。
  • Node.js:要求版本 >= 22。
  • codegraph CLI:僅代碼圖模式需要,需在服務器上安裝並完成 codegraph init。

適用場景與注意

適合在 dsh Web 中進行代碼導航、符號查找和調用關係分析的開發者。使用前應確保 dsh Web 正在運行,並檢查插件源碼與許可證(MIT)以確認符合項目要求。

結尾

dsh-codegraph-search 通過內置右側欄與流式返回,在 dsh 中提供了快捷的代碼搜索與符號圖能力。插件維護者 Wilyte(Tsonglew),可通過以下鏈接訪問:
- GitHub:https://github.com/Wilyte/dsh-codegraph-search
- 技術目錄:https://www.skillhub.cn/plugins/Wilyte/dsh-codegraph-search

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

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

小夜