前言¶
在 DeepSeek Harness 的 Web 端开发中,浏览和编辑对话工作区的文件通常需要切换到本地终端或外部编辑器。dsh-explorer-editor 插件在 Web 界面中引入了 VS Code 风格的文件管理体验:左侧侧边栏展示当前对话工作区的文件树,中间列提供 Monaco 编辑器进行源码编辑。
功能概览¶
-
侧边栏文件树与主区域编辑
侧边栏以树形结构展示当前工作区的文件目录。点击文件后,中间列的“文件”视图会加载并显示该文件内容,支持 Monaco 编辑器的语法高亮。 -
Markdown 源码与预览切换
对于.md文件,支持在源码编辑模式和预览模式间切换。工具栏提供切换按钮,预览模式基于 Markdown 渲染,支持标题、列表、代码块等 GFM 格式。 -
主题设置与导入导出
提供类似 VS Code 的主题设置面板。支持自定义背景色、文字色和字号(10-28px)。支持将主题导出为 JSON 文件或从 JSON 文件导入,方便在不同环境间迁移配色。 -
文件操作
支持新建文件、新建目录、重命名、删除、剪切、复制、粘贴等操作。右键菜单提供完整的上下文操作。 -
键盘导航与右键菜单
文件树支持方向键导航(上下移动、左右展开收起、Enter 打开)。右键菜单提供剪切、复制、重命名、删除、复制路径等选项。 -
编码自动识别
文本文件优先按 UTF-8 读取,遇到非法字符时自动回退至 GBK 或 GB2312,解决 Windows 下常见中文乱码问题。保存后统一转为 UTF-8。 -
会话恢复与实时刷新
打开的文件标签与未保存内容会持久化到浏览器本地存储,刷新页面后可恢复。目录树通过 SSE 推送实时刷新,监听文件系统变更。
安装与配置¶
插件使用 MIT 许可证,由 oneirictouch 维护。
Web 端安装¶
# 在插件目录内执行
cd /path/to/dsh-explorer-editor
dsh plugin --profile web add .
桌面端安装¶
# 在插件目录内执行
cd /path/to/dsh-explorer-editor
dsh plugin --profile desktop add .
安装后桌面端需完全退出并重启应用才能生效。
配置说明¶
在 cordis.patch.yml 中配置 root 作为兜底根目录,allowArbitraryRoot 用于限制安全边界:
- insert:
- id: dsh-explorer-editor
name: 'dsh-explorer-editor'
config:
root: !!js process.cwd() # 仅作为兜底根目录
allowArbitraryRoot: true # 是否允许 setRoot 越出 root
root:无会话时的默认根目录。setRoot:文件管理器打开时自动解析当前会话工作区并固定根目录。allowArbitraryRoot:默认为true。设为false可限制setRoot仅在root范围内,防止越界读取。
使用说明¶
-
浏览与编辑
点击侧边栏文件树中的文件,中间列即可进行编辑。使用Ctrl+S保存文件,修改内容会有 Dirty 标记。 -
Markdown 预览
打开.md文件,点击工具栏“主题”按钮旁的预览/源码切换按钮,可切换至只读渲染模式。 -
主题管理
点击工具栏“主题”按钮打开设置面板,选择预设主题或自定义颜色,配置会自动保存。 -
文件管理
使用方向键在文件树中移动,右键菜单进行剪切、复制、粘贴等操作。
注意事项¶
- Profile 分离:Web 端和桌面端使用独立的 profile,插件不会自动共享。Web 端安装的插件在桌面端不会显示。
- 安全性:所有文件操作受“工作区边界”约束,路径一旦逃逸出当前固定的根即被拒绝。
- 依赖:编辑器核心为 Monaco,若 CDN 不可达将降级为纯文本编辑器。
结语¶
dsh-explorer-editor 为 DeepSeek Harness 提供了在 Web 端直接管理代码文件的解决方案,配合 Monaco 编辑器和主题系统,能满足从代码浏览到详细编辑的各种需求。