前言¶
在 DSH Web 环境中,功能插件如果要展示侧边栏、编辑器视图、状态栏或命令入口,通常需要一套统一的布局与挂载机制。dock 提供的是一个基础工作台外壳:它先给出 VSCode 风格的活动栏、侧边栏、编辑器区、状态栏和命令系统,再通过 ctx.workbench 注册表让功能插件把自己的面板、编辑器视图、活动项、状态项与命令挂载进来。
它由 AKS1st 维护,许可证为 MIT。dock 本身只负责工作台外壳,不附带文件浏览、文本编辑等具体能力;文件浏览、文本编辑、图片查看、Markdown 查看和 Git 管理等能力,由 dock 系列功能插件按需安装。
这是什么¶
dock 是 DSH Web 工作台基础插件。它提供 VSCode 风格布局外壳,包括活动栏、侧边栏、编辑器区和状态栏,并开放一套注册表服务,供功能插件挂载:
- 面板
- 编辑器视图
- 活动栏项
- 状态栏项
- 命令
功能插件通过这些注册入口接入 dock 提供的工作台外壳,不需要每个插件自行处理整体布局。
核心功能¶
布局外壳¶
dock 提供以下基础布局区域:
- 活动栏:左侧垂直条带,可注册图标项,点击切换侧边栏面板。
- 侧边栏:承载功能插件提供的面板。
- 编辑器区:多标签编辑器视图。
- 状态栏:底部状态项注册入口。
停靠与窗口¶
dock 支持整个工作台停靠在屏幕四边,也支持悬浮窗口模式。独立浮窗可拖动和缩放。
布局信息保存在 localStorage 中,刷新后恢复。
命令系统¶
dock 提供命令注册与调用能力,使用 executeCommand 进行命令注册和调用。
开放注册表¶
dock 通过 ctx.workbench 提供注册服务,功能插件可以使用以下方法挂载扩展:
registerActivityBarItemregisterPanelregisterEditorViewregisterStatusBarItemregisterCommand
这些注册方法都会返回反注册函数。配合 ctx.effect 使用时,可以在插件停用时自动清理已注册内容。
安装与启用¶
环境要求¶
dock 需要 DSH Web 环境,客户端平台为 Web。安装时使用 --profile web。
要求:
- Node
>=20 - peer 依赖
cordis ^4.0.0-rc.7,由 DSH 自带 react/react-dom ^18.2.0为可选 peer;未提供时工作台 UI 不激活
安装 dock¶
推荐从 npm registry 安装:
dsh plugin --profile web add dock-base
也可以通过 GitHub 备选安装:
dsh plugin --profile web add github:AKS1st/dock
按需安装功能插件¶
dock 只提供工作台外壳。若需要具体能力,可以按需安装功能插件:
dsh plugin --profile web add dock-files
dsh plugin --profile web add dock-editor
dsh plugin --profile web add dock-images
dsh plugin --profile web add dock-markdown
dsh plugin --profile web add dock-git
也可以分别使用 GitHub 备选安装:
dsh plugin --profile web add github:AKS1st/dock-files
dsh plugin --profile web add github:AKS1st/dock-editor
dsh plugin --profile web add github:AKS1st/dock-images
dsh plugin --profile web add github:AKS1st/dock-markdown
dsh plugin --profile web add github:AKS1st/dock-git
只安装 dock 本身也可以,它会作为干净的工作台外壳存在。
典型用法¶
组合建议¶
以下组合按需选择,不需要全部安装。
1、只想浏览文件:
dsh plugin --profile web add dock-base
dsh plugin --profile web add dock-files
2、浏览并编辑文本:
dsh plugin --profile web add dock-base
dsh plugin --profile web add dock-files
dsh plugin --profile web add dock-editor
3、完整文件工作台,在文件浏览和文本编辑基础上增加图片与 Markdown 查看:
dsh plugin --profile web add dock-base
dsh plugin --profile web add dock-files
dsh plugin --profile web add dock-editor
dsh plugin --profile web add dock-images
dsh plugin --profile web add dock-markdown
4、需要管理 Git 时,在以上任意组合基础上增加:
dsh plugin --profile web add dock-git
这些功能插件通过 ctx.workbench 提供的注册表协作。dock 自身不依赖其他 dock 系列插件;反过来,dock-files、dock-editor、dock-images、dock-markdown、dock-git 依赖 dock 提供的工作台外壳。功能插件之间安装顺序不敏感。
开发¶
在仓库中可以使用以下命令:
pnpm install
pnpm run build
pnpm run check
src/client/contract.ts 是工作台对外契约。功能插件内有一份该契约的 vendored 副本,修改契约时需要同步更新这些副本。
适用场景与注意¶
dock 适合以下场景:
- 需要在 DSH Web 环境中搭建统一工作台外壳
- 需要让多个功能插件挂载面板、编辑器视图、状态项和命令
- 需要按场景组合 dock 系列插件,而不是一次性安装完整能力
需要注意:
- dock 基座只提供工作台外壳,不附带文件浏览、编辑等具体能力。
- 插件会以当前 dsh 进程权限运行。安装前应检查源码与许可证。
- 本项目许可证为 MIT。
react和react-dom是可选 peer 依赖;未提供时工作台 UI 不激活。- dock 的对外契约位于
src/client/contract.ts,功能插件内有 vendored 副本,改动时需要同步。
结尾¶
dock 的价值在于把 DSH Web 工作台的布局、注册表、命令挂载和布局持久化收敛到一个基础插件中。后续功能插件只需要关心自己的能力本身,并通过 ctx.workbench 挂载到统一外壳。
GitHub 地址:
https://github.com/AKS1st/dock
目录页:已核实资料中未提供可确认的目录页地址。