dsh-file-tree:DSH 原生右侧栏文件面板

前言

DeepSeek Harness (DSH) 采用“一切皆插件”的架构,侧栏是其核心交互区域。在 DSH 0.1.6-alpha.2 版本中,第三方侧栏插件 dsh-better-sidebar 在文件行点击上存在静默失败的问题(点击后无新增标签、无提示)。修复第三方编译产物存在版本覆盖风险,因此 dsh-file-tree 从零基于官方扩展点开发,通过注册原生标签页提供功能,不接管任何布局。

核心功能

  • 工作区文件树与内置编辑器:提供基于 code-server 4.138.0 的 VS Code 网页版体验,支持多文件编辑、集成终端与 Git。插件随包打包了约 640MB 的二进制,无需额外下载。
  • 就地预览与搜索:支持文本与图片的行内预览。图片/SVG 会自动使用 <img> 渲染,文本使用官方着色。支持按文件名搜索,结果展示目录与大小。
  • 一键 @文件 引用:点击文件行右侧的 @ 或预览头部的引用按钮,可将工作区相对路径插入输入框,支持带空格路径的引用文法(如 @"my file.txt")。
  • Ctrl/Cmd + 点击跳转:支持跳转模块路径、标识符与方法。支持 barrel 文件(如 components/index.ts)的多级跳转。

安装

使用官方 CLI 安装:

dsh plugin --profile web add github:jackchen13755/dsh-file-tree

安装后硬刷新浏览器(Cmd/Ctrl+Shift+R)即可生效。

配置

在 cordis.patch.yml 中添加 file-tree 配置项。以下是主要可选项:

- insert:
    - id: file-tree
      name: 'dsh-file-tree'
      config:
        readLimitBytes: 524288      # 文本预览上限(1KB–8MB)
        imageLimitBytes: 3145728    # 图片预览上限(0–16MB)
        listLimit: 2000             # 单目录条目上限
        searchLimit: 200            # 搜索命中上限

可配置项还包括 codeServerEnabled、codeServerPath、codeServerSearchPaths、codeServerDataDir、codeServerArgs、codeServerStartTimeoutSeconds 和 codeServerIdleMinutes。

使用方法

  • 打开编辑器:会话 → 右侧栏 → “+ 新标签页” → 选择“编辑器”。此标签页打开的是基于 code-server 的完整工作区环境。
  • 浏览与预览:会话 → 右侧栏 → “+ 新标签页” → 选择“文件面板”。在此面板中可以只读浏览文件,点击文件行会自动分流:文本类文件在原生标签页打开(带语法着色),图片/SVG 在本面板内联显示。
  • 行内预览:点行内 ▤ 按钮,可在本面板预览任意文件。点文件行也可触发此行为。
  • 跳转:在文件面板或官方预览标签页中,按住 Ctrl/Cmd 点击符号(如方法名、变量名),会自动跳转到定义处。支持相对路径、别名映射和 barrel 文件跳转。

安全与依赖

  • DSH 版本:依赖 DSH >=0.1.5-rc.1,实测适配 0.1.6-alpha.2。
  • 安全模型:code-server 进程只监听本机(127.0.0.1)。插件对请求路径进行包含性校验,拒绝 ../、绝对路径及指向工作区外的符号链接。仅接收 JSON POST 请求,所有操作为只读。
  • 进程管理:按工作区池化 code-server 进程,空闲 120 分钟后回收。侧栏不可见或标签不在前台时不启动进程。

总结

dsh-file-tree 通过复用 DSH 原生预览与侧栏能力,解决了旧版侧栏插件交互失效的问题,同时提供了完整的代码编辑环境。更多细节可参考 GitHub 仓库。

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

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

Xiaoye