前言¶
DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。在进行代码开发、调试或代码审查时,如果只能在聊天窗口中查看或编辑代码,体验往往不够流畅。dsh-editor 插件在会话主区新增了一个「文件」标签页,将 VS Code 的核心编辑体验集成到了 DSH 的 Web 界面中,解决了在单一会话窗口中缺乏文件树、多文件编辑和复杂代码操作能力的问题。
是什么¶
dsh-editor 是一个运行在 DeepSeek Harness (DSH) 里的 VS Code 风格代码编辑器插件。它由所有者 yangshen830-eng 维护,采用 MIT 许可证。该插件通过 Host 端(Node 进程)与 Client 端(浏览器 UI)的协作,在浏览器端提供文件树、Monaco 编辑器、跨文件搜索、Markdown 预览和 Git 状态管理等能力。
核心功能¶
该插件提供了以下能力:
- 文件树
- 浏览当前工作区目录,支持展开/折叠。
- 自动跟随会话或工作区的切换。
- 显示 Git 状态角标(如
M/A/??),点击角标可查看 diff。
- Monaco 编辑器
- 支持多文件标签页。
- 提供语法高亮、自动换行、Minimap、字号及 Tab 宽度配置。
- 支持快捷键自定义。
- 跨文件搜索
- 基于 ripgrep 实现,支持流式增量出结果。
- 支持命中高亮、虚拟滚动(上限 20000 条)。
- 支持大小写/全字/正则开关,以及包含/排除 glob 模式。
- 提供搜索历史记录和跨文件替换功能。
- Markdown 预览
- 支持源码、预览、分屏三种视图切换。
- 使用 marked 渲染、DOMPurify 消毒、highlight.js 语法高亮、mermaid 图表、KaTeX 公式及任务列表勾选。
- 快速打开
- 使用
Ctrl+P(macOS 为Cmd+P)输入相对路径进行模糊匹配打开文件。
- 使用
- 对话路径跳转
- 在对话中,对于行内代码形式的文件路径,支持
Ctrl+点击(macOS 为Cmd+点击),直接跳转到「文件」标签页并打开对应文件。
- 在对话中,对于行内代码形式的文件路径,支持
- 主题同步
- 编辑器与 Markdown 预览的主题会跟随 DSH 的明暗主题实时切换。
安装与启用¶
推荐从 GitHub 仓库安装该插件。
dsh plugin --profile web add git@github.com:yangshen830-eng/dsh-editor.git
安装完成后,必须重启 DSH 才能在会话主区看到「文件」标签页。
dsh web --profile web
也可以从本地目录或 npm 包安装:
# 从本地目录
dsh plugin --profile web add file:/path/to/dsh-editor
# 从 npm 安装(发布后)
dsh plugin --profile web add dsh-editor
典型用法¶
- 快速打开文件:在编辑器界面按
Ctrl+P,输入文件名或相对路径进行模糊搜索并打开。 - 对话跳转:在对话历史中,找到 Agent 返回的代码块,
Ctrl+点击代码块中的文件路径,即可直接在编辑器中定位到该文件。 - 跨文件搜索:在编辑器界面的搜索栏中配置规则,执行全局搜索与替换。
注意事项¶
- 生效机制:插件集的变化(包括新增、删除、更新)需要重启 DSH 进程才能生效。
- 动态插件限制:
src/目录下的动态插件源码不落盘,进程重启后会失效,仅适合临时试玩。 - 配置机制:执行
dsh plugin add会将包加入dsh.profile.bundles,Profile 启动时会依据dsh.bundle.patch挂载 Host 端,并依据dsh.client声明加载浏览器端。 - 数据传输:Host 端与 Client 端之间仅传输可 JSON 序列化的数据。
结语¶
dsh-editor 通过将 Monaco 编辑器与 DSH 的会话系统结合,为开发者提供了一个轻量级的代码编辑环境。它不仅支持基础的浏览和编辑,还通过 ripgrep 和丰富的 Markdown 渲染能力,增强了代码审查和文档编写的效率。如需了解更多细节或查看源码,请参考其 GitHub 仓库或技能社区目录。