前言¶
在 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
目錄頁:已覈實資料中未提供可確認的目錄頁地址。