dsh-find-viewer:为 DSH 侧边栏文本预览补上查找栏

前言

在 DeepSeek Harness(DSH)里打开 Markdown、代码或日志时,侧边栏会给出文档预览。预览能读,但若要在长文件里定位某个符号、错误行或配置键,往往只能肉眼扫或把文件拖到外部编辑器里用查找。DSH 社区插件 dsh-find-viewer(维护者 Makk9609,分类:客户端)把查找栏接到官方预览已有的文档工具栏上:全文件(或当前已渲染范围)匹配计数、高亮命中项,并在命中之间跳转。

这是什么

dsh-find-viewer 是面向 DSH Web 客户端的插件,在侧边栏文本预览上方增加与浏览器「页面内查找」类似的工具条。它不替换官方渲染器,只在文档工具栏的追加槽位(sidebar.right.tab.document.actions)注册一个放大镜按钮和查找栏。

插件无构建步骤、无运行时依赖;主机侧 index.js 为空壳,浏览器逻辑集中在 client.js。

核心功能

工具栏入口与显示条件

预览为文本类文件时,文档工具栏(靠近「在应用中打开」)会出现放大镜按钮;PDF、图片、HTML、表格与 Office 预览保持原工具栏不变。

查找栏控件与快捷键

打开后出现查找栏,包含:

  • 关键词输入框
  • n/m 匹配计数
  • 上一处 / 下一处
  • 区分大小写(Aa)、全词匹配(W)、关闭

交互与常见编辑器一致:Enter 下一处,Shift+Enter 上一处,Esc 关闭。在你最后一次点击过的预览窗格处于焦点时,Cmd/Ctrl+F 可打开查找栏。插件不注册全局快捷键,只在上述焦点条件下拦截 Cmd/Ctrl+F。

选中即搜

在预览里先选中文字再打开查找栏,选中内容会作为关键词。多行选中取第一行;超过 200 字符的选中会被忽略。

高亮与滚动

命中项通过 CSS Custom Highlight API 着色,颜色与 Edge、Chrome 页面查找一致:普通命中 #FFFF00,当前命中 #FF9632,文字为黑色。输入关键词后会滚动到第一个命中。高亮不修改官方渲染器拥有的 DOM。

匹配计数与跳转(按预览类型)

预览类型 计数范围 跳转 高亮
纯文本、代码 全文件、精确匹配 任意行(含尚未加载的行) 已渲染的每个命中
Markdown 当前已渲染文本 已渲染命中之间 已渲染的每个命中

Markdown 走官方格式化 HTML 视图,源码标记不可见且无逐行锚点,因此查找只能作用于已渲染部分,计数会随文档加载变多。纯文本与代码在 DOM 中保留源行,可对全文件计数。

全文件扫描通过 Harness 分页文件 Remote(remote.workspaceFiles.read,与预览同一读取路径)完成。跳转到未加载行时调用 sidebarRight.openResource,由侧边栏加载对应页。

覆盖的文件类型

README 列出的包括:Markdown(.md、.markdown、.mdx)、纯文本与日志、以及 .js、.ts、.py、.go、.rs、.java、.c、.cpp、.css、.json、.yaml、.toml、.sh、.sql 等代码后缀。.csv、.tsv、HTML、SVG 等仍用各自预览,不在此插件范围内。无后缀文件(如 Dockerfile)因查看器按后缀选渲染器而不覆盖。

界面文案经客户端 locale 服务加载,内置英文与中文词典。

安装与启用

以下命令摘自仓库 README。安装后需重启 dsh web。也可在 Plugin Market 或 Plugin Manager 中安装(会一并启用 bundle)。

从 npm 注册表:

dsh plugin --profile web add dsh-find-viewer

从 GitHub:

dsh plugin --profile web add github:Makk9609/dsh-find-viewer

卸载:

dsh plugin --profile web remove dsh-find-viewer

DSH 插件在当前 dsh 进程权限下运行。安装前建议阅读仓库源码与 MIT 许可证,确认符合你的环境策略。社区目录站点为独立生态入口,与 DeepSeek / 幻方无官方从属关系。

典型用法

  1. 安装并重启 dsh web 后,在侧边栏打开一段代码或 .md 预览。
  2. 点击文档工具栏上的放大镜,或在该预览内点击后按 Cmd/Ctrl+F。
  3. 输入关键词(或先选中文字再打开栏),查看 n/m,用上一处 / 下一处或 Enter / Shift+Enter 跳转。
  4. 需要精确匹配时打开 Aa(区分大小写)或 W(全词)。

限制与兼容性

  • 全文件扫描上限:前 20,000 行或 4 MiB(以先达到者为准);超出时查找栏会提示。最多绘制 3,000 处高亮,计数最多 50,000(超出显示 50000+)。
  • 高亮依赖 CSS Custom Highlight API(Chromium 105+、Safari 17.2+、Firefox 140+)。不支持时计数与跳转仍可用,但不绘制高亮。
  • 匹配不跨行。
  • README 写明在 DeepSeek Harness 0.2.0-rc.2 上验证;package.json 未声明 engines.dsh 范围,与更高版本的兼容性未在资料中说明。

开发侧可运行 npm test,在桩环境下检查匹配、地址解码、注册形态与高亮规则。

结尾

若你主要在 DSH 侧边栏里读长日志、源码或 Markdown,dsh-find-viewer 把查找栏接到官方预览工具栏上,并区分纯文本/代码与 Markdown 在计数、跳转上的差异。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。

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

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

Xiaoye