DeepSeek Harness 工作区全文搜索插件

前言

DeepSeek Harness(DSH)默认的搜索只支持会话标题。在开发或调试过程中,需要从大量文件中快速定位代码片段时,这个限制会变得很不方便。这个插件通过在本地开启一个只读的搜索接口,让你直接在 DSH 的界面里对工作区文件进行全文搜索。

插件介绍

这个插件是 dsh-workspace-search,由用户 1771486218 维护。它的核心作用是:在 DSH 的 GUI 中对当前或任意工作区里的文本文件进行 grep 式搜索,支持过滤、分组、上下文预览和跳转到指定行。

插件安装在本地 profile 的 node_modules 目录下,通过 cordis.patch.yml 注入到 DSH 的插件系统中。宿主端提供 REST API,客户端侧绘制搜索面板。

核心功能

  1. 全文搜索
    - 对工作区目录树按行匹配,返回「文件 + 行号 + 命中行」。
    - 默认大小写不敏感,也支持正则表达式。

  2. 过滤选项
    - 包含 glob(如 src/**、*.cpp)。
    - 排除 glob(如 build/**、.git、node_modules)。
    - 大写敏感、全字匹配、正则开关。

  3. 结果分组
    - 按文件分组,显示每组命中数,可折叠。
    - 顶部显示「N 文件 / M 处 · 用时」。

  4. 上下文预览
    - 命中行前后 18 行。
    - 支持轻量语法高亮(C/C++、Lua、Python、JS/TS/QML、JSON、Markdown、CMake)。

  5. 双击跳转
    - 双击结果或点行尾的「↗ 打开」,在 DSH 的侧栏打开文件并定位到命中行。

  6. 工作区切换
    - 面板右上角胶囊显示当前搜索范围。
    - 可切换到已打开过的任意工作区,不限于当前会话。

  7. 键盘操作
    - ↑/↓ 选择结果。
    - 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 打开搜索面板。

典型用法

  1. 按 Ctrl+Shift+F 或点窗口左下角的放大镜按钮。
  2. 输入关键字。默认大小写不敏感,也支持正则。
  3. 在结果列表中:
    - 单击某一行,在面板右侧查看上下文。
    - 双击某一行,在 DSH 的侧栏打开对应文件并跳转到该行。
  4. 在面板右上角切换到其他已打开的工作区。

适用场景与注意

  • 适合需要在 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 仓库。

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

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

Xiaoye