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

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

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

Xiaoye