前言¶
在 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 模式¶
- 依賴:需要在服務器上安裝
codegraphCLI 並對工作區執行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