DSH File Tree:给 DeepSeek Harness Web 会话增加工程文件查看与编辑

前言

在 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.jswindow.__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 会话补齐了当前工程的文件查看、打开、编辑与保存路径。仓库地址:

https://github.com/lak321/dsh-filetree

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

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

小夜