前言¶
在 DSH Web 会话中处理工程时,经常需要查看当前工作区的文件,并对文件做少量修改。lak321/dsh-filetree 面向 DSH Web 界面,提供工程查看 / 打开 / 编辑能力的插件组合,把文件浏览和编辑器加入会话视图。
这是什么¶
lak321/dsh-filetree 是一个 DSH 插件组合,由 lak321 维护,采用 MIT 许可证。它的目标是在 DSH Web 会话视图中提供当前工作区(工程)的目录查看、文件打开、文件编辑与保存能力。
核心功能¶
下面介绍这个插件的主要能力:
- 在 DSH Web 会话视图新增“文件”页签。
- 显示当前工作区(工程)的完整目录树。
- 支持展开 / 折叠所有子文件夹,并跟随当前工作区切换。
- 点击任意文件查看内容。
- 支持直接修改并保存到磁盘。
- 提供 VSCode 风格编辑器,包括 C/C++ 语法高亮、行号栏、Tab 键缩进与回车自动缩进、状态栏、深色主题和透明滚动条。
安装与启用¶
安装命令中的 <commit> 需替换为仓库主页中的最新提交号。
dsh plugin --profile web add "github:lak321/dsh-filetree#<commit>&path:/"
装完重启 DSH:
npx -y @deepseek-ai/dsh web
旧的手动复制 host/ + client/ 并注入 cordis.patch.yml 的方式已废弃,由 bundle 层栈安装替代。
典型用法¶
按下面步骤使用:
1、打开 DSH Web 界面,进入任意会话。
2、点顶部“文件”页签,该页签位于“对话 / 轨迹”之后。
3、左侧显示当前工程目录树;点 ▸ 展开文件夹,点文件在右侧打开。
4、编辑后点“保存”;需要收起编辑器时点“关闭”。
开发与排错注意¶
如果需要在同类 DSH 客户端插件中接入或修改,注意以下已列出的约束:
- client 插件必须导出
exports.inject(依赖列表,如["slots"]),否则ctx.slots不可用:
exports.inject = ["slots"];
client.js是window.__ModuleLoader__.load({ id, factory })格式,factory内用require("react"),并导出exports.apply/exports.inject。- 若替换 single slot,必须用更低优先级:
priority: -1
否则 loader 报 already has a registration at priority 0。
适用场景与注意¶
适合需要在 DSH Web 会话中查看当前工作区文件,并打开、编辑、保存文件的场景。由于该插件提供文件查看和保存到磁盘的能力,且会以当前 dsh 进程权限运行,安装前应检查源码和 MIT 许可证,只安装可信来源。
结尾¶
lak321/dsh-filetree 为 DSH Web 会话补齐了当前工程的文件查看、打开、编辑与保存路径。仓库地址: