dsh-file-panel-left:DSH Web 纯文件工作台侧边栏

在 DSH Web 环境中,处理文件通常需要切换窗口或使用功能臃肿的侧边栏。dsh-file-panel-left 提供了一个集中的“文件工作台”体验,将文件资源管理器、代码编辑器和预览器整合在一个面板中。这是一个精简的 Fork,保留了文件相关的核心能力(文件树、编辑器、预览、@ 引用),移除了终端、浏览器、Git 和标签页等无关功能。

核心功能

布局与交互

插件采用经典的“左树右内容”布局。左侧为文件树,右侧为内容区域。支持可拖动的面板宽度(240-480px,默认 280px)。内容区域的“关闭”按钮可折叠显示页,恢复 65% 的视口宽度以专注于文件树。布局状态和宽度偏好会按会话隔离保存。

文件树

文件树支持懒加载目录(每次加载一级以保持响应速度)、符号链接支持(解析真实类型并标记断链)、UNC 网络路径以及全局文件名搜索(300ms 防抖)。用户可以通过树头或文件夹行的“+”号创建新文件(Enter 确认,Esc 取消),或右键复制相对/绝对路径、重命名或删除文件。会话根目录不可删除。

代码编辑器

编辑器基于 CodeMirror 6 构建,支持 20+ 种语言的语法高亮(包括 JS/TS/JSON/Python/HTML/CSS/Markdown/Rust/Go 等)。提供 Ctrl/Cmd+F 搜索、括号匹配、代码折叠、自动缩进和列选择。支持 Ctrl/Cmd+S 保存文件,且包含自动保存机制(每秒检查一次未保存更改)。对于 JSON/JSONC 文件,支持 Ctrl/Cmd+Shift+F 快捷格式化。

查看器

内置 6 种查看器:图像、PDF、Markdown(含 Mermaid 预览)、HTML(在沙箱 iframe 中运行,不访问 GUI 数据或本地文件)、代码和二进制文件。超大文件会被截断显示(前 512 KB)。Markdown 支持预览和编辑模式切换。

@ 引用

在编辑器中选中代码并释放鼠标,会触发“添加到对话”弹窗,插入纯引用行(如 @relative/path L12-L25),不复制选中文本,以保持 Token 友好。插件包含 file-line-reading 技能,引导 AI 仅读取引用的行范围。该功能与 DSH 官方的 @ 源共存,互不干扰。

集成能力

聊天中的文件链接会优先在侧边栏打开。外部插件可以通过 ctx.betterSidebar 服务注册侧边栏标签和自定义文件查看器。

安装与启用

安装前请确保环境满足要求:Node.js >= 20 且已安装 DSH Web(CLI)。

dsh plugin --profile web add dsh-file-panel-left

安装后,无需额外配置文件。DSH 运行时会自动提供 React 18、Cordis 和 @deepseek-ai/dsh-* 依赖。安装完成后需重启 DSH 并硬刷新浏览器(Ctrl+Shift+R / Cmd+Shift+R)以加载插件。

典型用法

  1. 文件操作:单击文件打开,或使用树头/文件夹行的“+”创建新文件。
  2. 代码编辑:在编辑器中按 Ctrl/Cmd+S 保存,按 Ctrl/Cmd+F 搜索代码,按 Ctrl/Cmd+Shift+F 格式化 JSON。
  3. 引用代码:在编辑器中选中一段代码并释放鼠标,系统会自动插入 @path L12-L25 引用行。

注意事项

  • 本地开发:如果使用 pnpm 进行本地开发,file: 依赖是复制而非链接。修改源码后,需删除 ~/.dsh/profiles/web/node_modules/dsh-file-panel-left 并重新运行 pnpm install,否则浏览器可能加载旧的构建。
  • 会话隔离:每个会话拥有独立的工作目录和面板状态。
  • 兼容性:Windows 标题栏兼容模式下会预留空间;无设置服务的部署会回退使用 ~/.dsh/dsh-file-panel-left-prefs.json 存储偏好。

总结

dsh-file-panel-left 为 DSH Web 提供了一个轻量、专注的文件工作环境。它通过移除非必要功能提升了文件操作的效率,并提供了完善的编辑和引用体验。更多细节可参考 GitHub 仓库。

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

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

小夜