前言¶
DeepSeek Harness(DSH)默认的搜索只支持会话标题。在开发或调试过程中,需要从大量文件中快速定位代码片段时,这个限制会变得很不方便。这个插件通过在本地开启一个只读的搜索接口,让你直接在 DSH 的界面里对工作区文件进行全文搜索。
插件介绍¶
这个插件是 dsh-workspace-search,由用户 1771486218 维护。它的核心作用是:在 DSH 的 GUI 中对当前或任意工作区里的文本文件进行 grep 式搜索,支持过滤、分组、上下文预览和跳转到指定行。
插件安装在本地 profile 的 node_modules 目录下,通过 cordis.patch.yml 注入到 DSH 的插件系统中。宿主端提供 REST API,客户端侧绘制搜索面板。
核心功能¶
-
全文搜索
- 对工作区目录树按行匹配,返回「文件 + 行号 + 命中行」。
- 默认大小写不敏感,也支持正则表达式。 -
过滤选项
- 包含 glob(如src/**、*.cpp)。
- 排除 glob(如build/**、.git、node_modules)。
- 大写敏感、全字匹配、正则开关。 -
结果分组
- 按文件分组,显示每组命中数,可折叠。
- 顶部显示「N 文件 / M 处 · 用时」。 -
上下文预览
- 命中行前后 18 行。
- 支持轻量语法高亮(C/C++、Lua、Python、JS/TS/QML、JSON、Markdown、CMake)。 -
双击跳转
- 双击结果或点行尾的「↗ 打开」,在 DSH 的侧栏打开文件并定位到命中行。 -
工作区切换
- 面板右上角胶囊显示当前搜索范围。
- 可切换到已打开过的任意工作区,不限于当前会话。 -
键盘操作
-↑/↓选择结果。
-Enter看上下文(再按一次跳转)。
-Esc关闭面板。
安装与启用¶
安装前请先确认你使用的是 DSH 0.2.0-rc.2(Windows 桌面版),插件依赖该版本验证。
推荐使用脚本安装:
# 在插件目录里
node scripts/install.mjs # 默认装进 desktop profile
node scripts/install.mjs myprofile # 或指定 profile 名
脚本会做两件事:
1. 把 lib/、package.json、cordis.patch.yml 复制到 <DSH_HOME>/profiles/<profile>/node_modules/dsh-workspace-search。
2. 在 <profile>/cordis.patch.yml 末尾追加插件注册条目(原文件先备份为 cordis.patch.yml.bak)。
安装完成后重启 DSH,然后按 Ctrl+Shift+F 打开搜索面板。
典型用法¶
- 按
Ctrl+Shift+F或点窗口左下角的放大镜按钮。 - 输入关键字。默认大小写不敏感,也支持正则。
- 在结果列表中:
- 单击某一行,在面板右侧查看上下文。
- 双击某一行,在 DSH 的侧栏打开对应文件并跳转到该行。 - 在面板右上角切换到其他已打开的工作区。
适用场景与注意¶
- 适合需要在 DSH 界面内快速查找文件内容的场景,比如调试、代码审查、多项目切换。
- 插件会在本机 127.0.0.1 开一个只读搜索接口,本机其它进程也能调用它读取文件,但没有鉴权。
- 代码由 DeepSeek 生成,仓库作者提供了需求、安装并做了实测,但未经过系统的安全审计。
- 使用前建议自行审阅源码(尤其是
lib/index.js中的搜索逻辑与接口实现)。 - 依赖 DSH 的内部接口(
webServer路由、sidebarRight服务),升级后可能需要跟进适配。
卸载¶
node scripts/uninstall.mjs
或手动:
1. 删除 profile 的 cordis.patch.yml 中对应的 - insert: 条目。
2. 删除 node_modules/dsh-workspace-search 目录。
3. 重启 DSH。
开发与调试¶
npm run check # 语法检查
如果需要调试客户端界面,可以使用验证台:
node dev/harness.mjs # 起在 8140
# http://127.0.0.1:8140/?root=<URL 编码后的绝对路径>&q=<关键字>
修改 lib/ 中的代码后,复制到 profile 并刷新窗口即可生效。
总结¶
这个插件让 DSH 不再局限于会话标题搜索,而是可以直接在 GUI 中对工作区文件进行全文检索。对于习惯在 DSH 中完成从思考、搜索到跳转的闭环开发者来说,能显著提升查找效率。如需了解安装详情与源码,可访问项目目录页或 GitHub 仓库。