
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 的结果,清除缓存可确保获取最新构建。