跳到正文

lehhair/dsh-diff-viewer

131最近提交 2026年8月15日

dsh-diff-viewer DSH 插件

该插件通过替换默认的 diff 块,为 DSH Web GUI 提供更美观高效的 diff 查看体验。支持统一/分栏模式、词级高亮、语法着色、上下文折叠以及窗口化渲染,适合大文件差异对比。

如何安装 dsh-diff-viewer DSH 插件

dsh plugin --profile web add "https://github.com/lehhair/dsh-diff-viewer/releases/latest/download/dsh-external-dsh-diff-viewer.tgz

复制不会执行命令。安装 dsh-diff-viewer DSH 插件前请核对仓库和版本。

dsh-diff-viewer DSH 插件数据来源

dsh-diff-viewer DSH 插件快照日期:2026年8月16日

discovered

dsh-diff-viewer DSH 插件能做什么

  • 统一单栏(默认)和分栏双栏模式(通过 viewMode 配置)
  • 变更条:新增实心绿条、删除条纹红条
  • 词级高亮,集成 shiki 语法着色
  • 上下文折叠:折叠未变更行,支持向上/向下/全部展开
  • 窗口化渲染:固定行高,大 diff 仅渲染可见行
  • 横向滚动条粘性显示(悬停时出现)
  • 复制按钮及页脚统计(+A -R · N 文件)

dsh-diff-viewer DSH 插件适合哪些场景

  • 在 DSH Web GUI 中查看代码变更时获得更直观的视觉反馈
  • 在 write/edit 工具中对比文件版本
  • 折叠大量未变更行,聚焦于改动区域
  • 通过词级高亮和语法着色快速定位行内改动
  • 处理超大型 diff 文件,避免浏览器卡顿

dsh-diff-viewer DSH 插件适合谁

  • 使用 DSH Web GUI 且经常查看 diff 的开发者
  • 希望提升 diff 查看体验的 DeepSeek Harness 用户

dsh-diff-viewer DSH 插件的限制

  • 仅支持 DSH Web GUI,不适用于其他编辑器或独立使用
  • 仅替换 write/edit 工具中的 diff 渲染,其他 diff 视图不受影响
  • 通过同一 URL 升级时需清除 pnpm 缓存,否则可能安装旧版本
  • 无法直接通过源码安装,需使用构建产物或本地打包

dsh-diff-viewer DSH 插件的仓库 README 摘录

以下文字摘自 dsh-diff-viewer DSH 插件的上游仓库 lehhair/dsh-diff-viewer 的 README,版权归原作者,仅作引用。

DSH Web GUI 的 PiUI 风格 diff 查看器插件:替换 write/edit 工具调用的 diff 渲染(原 DiffBlock)。 - **unified 单栏默认**:同一 gutter 并排显示旧/新行号,无左右错位;split 双栏可选(`viewMode`) - **变更条**:新增实心绿条、删除条纹红条;行背景色带统一延伸到最宽行 - **词级高亮**:行内改动叠加绿/红标记,shiki 语法着色(`highlightLines`) - **上下文折叠**:长段未变更行折叠为"`N 行未变更`",向上/向下/全部展开 - **窗口化渲染**:固定行高窗口化,大 diff 不挂载全部行;sticky 横向滚动条(hover 显现) - **复制 + `└ +A -R · N file(s)` 页脚** ## 机制 插件通过 **keyed 接管**替换 write/edit 的工具行渲染:ui-tool 的 `tool.call.toolview` 槽是开放 key 域,同一 key 以**更低 priority 阴影**(最低优先渲染)。插件注册 `edit`/`write` 键(priority -1),接管后的行**完全复刻官方 FileMutationRow**(复用官方 ToolRow 样式 + DisclosureRow/StateDot 等平台组件),只把展开后的 diff 卡换成 PiUI 风格 DiffViewer——**不改任何核心,纯插件**,卸载即还原官方行。 - **不限制高度**:展开的 diff 直接撑开显示完整内容(不套滚动容器),窗口化渲染保证超大 diff 依然高效 - **diff 数据**:从工具调用的 `callView`/`resultView` 的 `card:'diff'` 意图提取(running 用调用时 diff,settled 用应用后的 hunks);执行错误(无 diff 卡)走官方行的错误摘要 + IN/OUT 卡 ## 效果 <img width="1740" height="1048" alt="image" src="https://github.com/user-attachments/assets/67b4db35-07e5-4fce-852d-bbe4ee33b695" /> ## 安装 ### 推荐:GitHub Release 构建产物(开箱即用) 每次发版后,GitHub Actions 自动构建并把 tarball 附加到 [Releases](https://github.com/lehhair/dsh-diff-viewer/releases) 页。`releases/latest` 永远指向最新版本,安装链接不需要随版本改动:

阅读完整 README仓库未声明许可,使用前请先与作者确认。

dsh-diff-viewer DSH 插件常见问题

如何安装 dsh-diff-viewer?

执行命令:`dsh plugin --profile web add "https://github.com/lehhair/dsh-diff-viewer/releases/latest/download/dsh-external-dsh-diff-viewer.tgz"`,然后重启 DSH Web 服务器(`dsh web`)。该命令会从最新 Release 下载预构建的 tarball 进行安装。

如何卸载该插件?

运行:`dsh plugin --profile web remove @dsh-external/dsh-diff-viewer`。卸载后,默认的 diff 块会恢复原样,不会影响其他功能。

默认可以用分栏模式吗?

可以,通过设置 `viewMode` 为 `split` 即可启用分栏模式。该选项从工具调用的配置中读取,你可以在 DSH Web GUI 的设置中或通过代码修改。

为什么 diff 显示和默认不一样?

插件替换了默认的 diff 块,采用 PiUI 风格:统一单栏布局、变更条、词级高亮和语法着色、上下文折叠等。如果你更喜欢原始样式,卸载插件即可恢复。

如何更新到最新版本?

先卸载插件:`dsh plugin --profile web remove @dsh-external/dsh-diff-viewer`,然后清除 pnpm 缓存:`pnpm store prune`,最后重新安装。由于 pnpm 会缓存同一 URL 的结果,清除缓存可确保获取最新构建。