dock:DSH Web 工作臺基礎插件

前言

在 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 提供註冊服務,功能插件可以使用以下方法掛載擴展:

  • registerActivityBarItem
  • registerPanel
  • registerEditorView
  • registerStatusBarItem
  • registerCommand

這些註冊方法都會返回反註冊函數。配合 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

目錄頁:已覈實資料中未提供可確認的目錄頁地址。

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

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

小夜