dsh-2sidebar:DSH 右侧栏目录树与文件预览并排浏览

前言

DeepSeek Harness(DSH)内置的 Files 标签在同一列里交替展示目录树和文件预览:点开一个文件后,预览会占满该列,想换文件或对照路径时,往往要在树和预览之间来回切换。若你习惯在会话右侧常驻工作区文件视图,这种单列布局会打断浏览节奏。

下面介绍社区插件 dsh-2sidebar(npm 包名 dsh-2sidebar,仓库 SyaJask/dsh-2sidebar)。它在 DSH 右侧栏提供一个独立标签页,把目录树与当前选中文件的预览放在同一 tab 内并排显示;点选文件只更新预览,树的位置与展开状态保持不变。维护者为 SyaJask,分类为客户端插件;插件目录页见 skillhub.cn。DSH 生态强调「一切皆插件」,社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-2sidebar 是面向 DSH Desktop 的纯客户端扩展:在浏览器侧注册右侧栏 tab 类型、会话头按钮与引导卡片,通过宿主已有的 workspaceFiles 服务读取当前会话工作区,不增加 host 路由或额外权限。包版本为 0.1.4,README 标明仍为早期阶段;DSH 客户端扩展点仍在演进,升级 DSH 前建议对照仓库中的 Compatibility 说明。

与内置 Files tab 的关系:两者可同时安装使用。内置 tab 支持更多原生预览格式;本插件侧重树与预览同屏、可拖分栏、可折叠树,文本与常见图片格式可内联预览,PDF / Office / HTML 等 intentionally 不做内联渲染,需用 DSH 原生预览打开。

核心功能

分栏布局与状态记忆

  • 目录树与预览区并排,中间分隔条可拖动,比例限制在 20%–70%;松手后比例写入当前源下的 localStorage,同 origin 多窗口共享。
  • 可将树折叠为单列预览,或恢复分栏且不丢失当前选中文件。
  • 预览区标题栏提供 Switch sides,可将树从左换到右;默认树在左侧,选择会被记住。

目录树

  • 根目录为当前会话的 workspace;无工作区目录的会话会提示无法浏览。
  • 懒加载:展开目录时再读取子项;Reload 刷新根目录及已展开层级;空目录、截断等状态在界面内提示;刷新失败但此前已成功加载时,保留上次列表。

文件预览

  • 文本:按页读取,每页 2,000 行,底部 Load more 追加下一页,读完显示 End of file,并显示字节计数。受宿主 maxBytes(每页 2 MiB)、maxLines(5,000)等上限约束;过大或二进制文件会按宿主规则拒绝或提示。
  • 图片:内联预览 png、jpg、jpeg、gif、webp、bmp、ico、avif、svg;整文件读取受 maxFileBytes(默认 32 MiB)限制。

入口与国际化

  • 会话头右侧栏开关旁的分栏图标;或右侧栏起始页的 Split files 引导卡片。打开后为普通右侧栏 tab,停靠、分屏、全屏行为与其他 tab 一致。
  • 界面支持中英文;样式随 DSH 主题。只读、无网络请求、无 npm 运行时依赖,渲染基于 DSH shell 基线客户端原语。

安装与启用

环境要求

  • DSH Desktop 且使用 managed profile(文档在 0.2.1-rc.5 上测试;package.json 中 engines.dsh 为 >=0.2.1-rc.5 <0.3.0)。
  • 需具备右侧栏与客户端插件管理器(随 DSH 提供)。

从 npm 安装(推荐)

在 PowerShell 或终端执行:

dsh plugin --profile desktop add dsh-2sidebar

desktop 为 DSH Desktop 默认 profile 名;若你使用其他 profile 名,请替换。一般无需重启,宿主会原地重载 profile(HMR);若已打开的 tab 仍显示旧组件,可按 Ctrl+Shift+R 硬刷新。

也可在 DSH Web GUI:Plugins → Add plugin → 输入 dsh-2sidebar → Install,再在 Split files bundle 上启用。

卸载

GUI:Plugins → Split files bundle → Remove。

CLI:

dsh plugin --profile desktop remove dsh-2sidebar

典型用法

  1. 在有 workspace 的会话中,点击会话头的分栏图标,或在右侧栏起始页选择 Split files card。
  2. 点击目录名展开或折叠;展开时会重新读取该目录。点击文件则在右侧(或左侧,若已切换)预览区加载内容,树滚动与展开状态不变。
  3. 拖动分隔条调整比例;需要更多文本时点击 Load more。
  4. 目录结构变化后点 Reload;需要更大预览区域时使用 Hide tree;需要树在另一侧时使用预览头部分栏图标 Switch sides。

若插件未出现:确认 DSH 版本与 bundle 已在 Plugins 中启用,并在 DevTools 控制台查看 [split-files] 相关日志。bundle 加载失败时 DSH 其余功能仍可用,只是 tab 与头按钮不会出现。

适用场景与注意

适合:在 DSH 会话中频繁对照路径与文件内容、希望右侧栏树与预览同屏的开发者;与内置 Files 互补,而非完全替代原生多格式预览。

注意:

  • 插件以当前 DSH 进程及会话权限访问工作区文件,能力边界与内置文件功能一致;安装前可在 GitHub 查看源码与 MIT 许可证。
  • DSH 处于开发者预览,扩展 API 可能无预告变更;升级 DSH 后若插件无法加载,请对照 Compatibility 并在 issue 中提供 DSH 版本与控制台错误。
  • 文档禁止在正文中依赖 git clone 作为读者安装路径;开发联调可参考仓库 README 中的 link 安装说明,生产环境以 npm 包名为准。

结尾

dsh-2sidebar 把 DSH 右侧栏的文件浏览从「树与预览抢一列」改为「同一 tab 内并排」,并记住分栏比例、树侧与折叠状态,适合在智能体会话里长时间扫目录、读片段代码或看图。进一步了解可访问插件目录 https://www.skillhub.cn/plugins/SyaJask/dsh-2sidebar 与 GitHub 仓库 https://github.com/SyaJask/dsh-2sidebar。

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

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

小夜