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