前言¶
在 DSH「一切皆插件」的生态里,一个插件可以补齐 Web GUI 中缺失的开发体验。dsh-workspace-search 面向 DeepSeek Harness(dsh)的 web GUI,提供 VS Code-style workspace keyword search,并把搜索结果页作为一个 Search tab 注册到 dsh-better-sidebar 中。
下面介绍它能做什么、怎么安装,以及配置时需要注意的边界。
插件定位¶
dsh-workspace-search 是一个 dsh 插件,用于当前会话工作区的关键词搜索。仓库路径为 tsonglew/dsh-workspace-search。
它解决的问题比较简单:在 dsh Web GUI 中,用户希望像使用编辑器一样搜索文件名和文件内容,并通过结果直接打开对应文件。
核心功能¶
搜索文件名与文件内容¶
它支持对 session workspace 做关键词搜索,搜索对象包括:
- 文件 name
- file contents
结果按文件分组,并显示行号。
VS Code 风格搜索规则¶
它提供类似 VS Code 的搜索规则:
- files to include:使用 glob patterns 指定要包含的文件
- files to exclude:使用 glob patterns 指定要排除的文件
- regular expression queries:支持正则查询,并可切换开启或关闭
- case toggle:支持切换大小写敏感
glob patterns 使用逗号分隔,支持 **、*、?、{a,b}。
点击结果打开文件¶
点击一个 match 后,可以在 better-sidebar 的 built-in editor 中打开该文件。
默认排除与截断¶
默认会跳过一些常见目录和隐藏文件,包括:
- hidden files
.gitnode_modulesdistbuild.nexttarget- 等其他默认排除项
搜索过程中如果触发文件数、匹配数或行长度上限,插件会将其如实报告为 truncation。
安装与启用¶
先确认运行环境满足依赖要求:
@deepseek-ai/cordis >=4.0.1
@deepseek-ai/schemastery >=3.18.1
dsh-better-sidebar >=0.4.0
node >=22
其中 dsh-better-sidebar >=0.4.0 会暴露 ctx.betterSidebar,这是插件把 Search tab 注册进侧边栏的前提。
在插件路径位于 ./plugins/dsh-workspace-search 的工作目录下执行:
dsh plugin --profile web add ./plugins/dsh-workspace-search
这条命令会以 web profile 添加该插件。
典型用法¶
- 进入由
dsh-better-sidebar提供的 Search tab。 - 输入要查找的关键词。
- 如需限定范围,填写 files to include 或 files to exclude。
这些字段使用逗号分隔的 glob patterns,可以使用**、*、?、{a,b}。 - 如需正则查询,开启 regex query。
- 如需区分大小写,切换 case。
- 查看按文件分组的结果和行号,点击 match 打开文件。
可选配置¶
以下配置字段都是可选的:
- id: workspace-search
config:
maxFiles: 5000
maxMatches: 300
maxLineLength: 300
maxFileBytes: 1048576
这些字段分别用于限制搜索过程中的文件数、匹配数、单行长度和文件大小。
工作机制¶
它采用双端 bundle:
- 宿主侧注册
/workspace-searchConnection RPC channel,并带有 loopback trust fence。 - 浏览器侧通过
ctx.betterSidebar.registerTab注册 Search tab。
搜索结果可以打开到 better-sidebar 的内置编辑器中。
适用场景与注意¶
适合以下场景:
- 在 dsh Web GUI 中查看当前会话工作区内的文本位置。
- 需要在侧边栏中完成“搜索、定位、打开文件”的操作。
- 希望使用 VS Code-style 的 include/exclude、正则查询和大小写切换。
需要注意:
- 该插件以当前 dsh 进程权限运行。安装前应检查源码、配置与许可证。
- 许可证为 MIT。
- 必须依赖
dsh-better-sidebar >=0.4.0,否则无法注册 Search tab。 - 搜索受文件数、匹配数和行长度等上限约束;触发上限时,结果会作为 truncation 报告。
相关链接¶
- GitHub:https://github.com/tsonglew/dsh-workspace-search
- 目录页:https://www.skillhub.cn/plugins/tsonglew/dsh-workspace-search