dsh-editor:DeepSeek Harness 里的 VS Code 风格代码编辑器

前言

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

典型用法

  1. 快速打开文件:在编辑器界面按 Ctrl+P,输入文件名或相对路径进行模糊搜索并打开。
  2. 对话跳转:在对话历史中,找到 Agent 返回的代码块,Ctrl+点击 代码块中的文件路径,即可直接在编辑器中定位到该文件。
  3. 跨文件搜索:在编辑器界面的搜索栏中配置规则,执行全局搜索与替换。

注意事项

  • 生效机制:插件集的变化(包括新增、删除、更新)需要重启 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 仓库或技能社区目录。

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

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

小夜