前言¶
在 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