前言¶
在 DeepSeek Harness(DSH)里让智能体改代码,常见做法是:在对话里描述「第几行、哪段逻辑要改」,或把片段复制进输入框。文件一多、行号一变,引用就容易错位;若同时开着只读预览,还要在预览和对话之间来回切换。
文件批注器(File Annotator)是维护者 Arvin-work 发布的客户端插件:在 DSH 右侧栏打开工作区文本/代码文件,选中文本即可在行内写批注,跨文件统一计数与导航,需要时再一键把结构化修改要求追加到对话输入框(不会自动发送)。插件无构建步骤、无运行时 npm 依赖,界面贴近原生 DSH。
这是什么¶
- 仓库:Arvin-work/dsh-plugin-file-annotate
- 社区目录:skillhub.cn 插件页
- 分类:客户端(
package.json中dsh.client.platform为web) - 当前版本(资料中的
package.json):0.1.1 - 许可证:MIT
插件通过 extension 优先级接管常见文本/代码文件,提供懒加载文件树、可编辑保存、行内批注、跨文件批注导航、Markdown 预览,以及向 composer 草稿交接批注内容。
核心功能¶
文件编辑与文件树¶
「打开文件」工作区左侧为文件树、右侧为编辑器:目录懒加载、变更自动刷新、筛选与刷新、可拖宽宽度,当前文件高亮;支持键盘导航、双击打开,展开与滚动位置可持久化。文件树可隐藏,保留约 30px 轨道以便重新展开。
保存使用 ⌘/Ctrl+S,带文件版本校验,避免覆盖外部修改。单文件超过 20 万字符时退化为纯文本模式,并禁用申请重定位等重操作;直接保存也受该字符数限制。
行内批注¶
默认处于「批注」模式:选中文本后,在选中行下方出现批注块。批注块内 Enter 发布,Shift+Enter 换行;中文输入法组合输入期间不会误发布。「编辑」模式则恢复正常选中、复制与编辑。
批注引用创建时的原文与行号;原文被改写导致 quote 不再匹配时标记为 stale,并提示位置可能已失效。
跨文件批注导航¶
当前会话只要有批注,右下角显示统一计数 1/N;用 ↑/↓ 跨文件切换,自动打开目标文件并定位到批注范围。
在工作区模式下切换右侧当前文件时,文件树保持不动;在独立编辑器 tab 中则替换当前 tab,不堆积新 tab。
- 提交:把当前文件的批注加入对话草稿;成功后自动清除已提交的当前文件批注。
- 清除:清当前文件批注。
- 全部清除:清当前会话全部批注,带二次确认。
没有剩余批注时,浮动导航条消失。
Markdown 预览¶
打开 .md / .markdown / .mdx 时,工具栏出现「预览」按钮。用当前编辑中的 draft 渲染标题、段落、列表、引用、表格、代码块、链接等。按钮文字始终为「预览」,通过亮/不亮表示是否处于预览状态;预览只读,再次点击回到源码。
非文本与其它入口¶
图片、PDF、Office 等非文本文件不在批注编辑器内渲染;从文件树点击时交给宿主原生预览(PDF 使用 DSH 宿主的 PDF 查看器,非插件内嵌)。原有只读文本预览可通过头部 ✎ 批注此文件 转为批注编辑器;工具栏 ↗ 可用宿主原生预览打开同一文件。右侧栏终端使用 DSH 原生 terminal tab,插件不提供伪终端。
安装与启用¶
插件以当前 DSH 进程权限运行;安装前建议浏览仓库源码并确认 MIT 许可证与行为是否符合预期。DSH 生态强调「一切皆插件」;skillhub.cn 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
从 GitHub 安装¶
dsh plugin --profile <profile> add github:Arvin-work/dsh-plugin-file-annotate
若使用 DSH Desktop,可在 Settings → Plugins → Add plugin 中粘贴 GitHub 仓库地址,由桌面端管理当前 Profile。
安装后按提示刷新页面;宿主支持热加载时,刷新后通常可见「打开文件」入口。
从 Release tarball 安装¶
若仓库 GitHub Release 提供 tarball:
dsh plugin --profile <profile> add <Release tarball 的 https 地址>
插件市场¶
被 DSH Market 收录后,可搜索 File Annotator 或 文件批注器 一键安装。
本地开发时可 link 安装:
dsh plugin --profile <profile> add /absolute/path/to/dsh-plugin-file-annotate
典型用法¶
README 说明:截图中的示例项目 just_interester、 example.py 及 example 批注均为演示数据,不代表真实项目或用户数据。
- 打开右侧栏的「打开文件」。
- 从左侧文件树选择一个文本/代码文件。
- 在「批注」模式下选中一段文本。
- 在出现的批注块里写下修改要求,按 Enter 发布。
- 用右下角浮动条的
↑/↓跨文件浏览批注。 - 需要智能体处理时,点 提交:批注进入当前对话输入框,确认后再发送;提交成功后当前文件批注自动清除。
- 需要直接改文件时,切到「编辑」模式,改完保存。
隐私、数据与已知限制¶
- 批注保存在当前浏览器 localStorage,按会话和文件区分;插件无遥测,不会把批注、文件内容或个人信息发往第三方。
- 文件读写通过 DSH 宿主 workspace/file API;提交 只调用宿主 composer actions(必要时回退 bridge)追加到输入框,不直接提交给模型。
需注意:非文本文件不能在批注编辑器中编辑或批注;大文件(>200k 字符)不执行批注重定位;批注 quote 变 stale 后无法自动定位;关闭编辑器 tab 不会弹未保存确认;依赖当前 DSH Client 插件/侧栏 API,DSH 升级后可能需要适配。
结尾¶
文件批注器把「在文件里圈定位置 + 写修改要求 + 交给对话」收拢到 DSH 右侧栏一条链路,适合需要在多文件间统一浏览批注、再手动确认发送的场景。