前言¶
DSH Web UI 的 composer 區域通常會放置命令入口和模式控件,但在日常使用中,當前工作區所在的 git 分支並不是總是一目瞭然。如果你經常在 DSH 和其他終端工具之間切換,dsh-git-branch 可以提供一個更輕量的信息位:把當前工作區 git 分支顯示在 composer 模式控件旁邊,並在窗口焦點、頁面可見性、session/workspace 切換時立即刷新。
這是什麼¶
dsh-git-branch 是由 hanyueqiang 維護的 DSH 插件,許可證爲 MIT。
它作爲 DSH bundle 安裝,安裝命令會把包加入 profile 的 bundles,並在下次啓動時通過補丁層生效,因此不需要額外手動配置 host 與 client。
核心功能¶
顯示位置¶
插件在 DSH Web UI 的 composer 模式控件後顯示當前工作區 git 分支。
客戶端會註冊 conversation.input.left chip,並註冊 conversation.chat.commandview 以隱藏傳輸命令。
分支顯示¶
- 普通分支顯示爲
⎇ main - detached HEAD 顯示爲
⎇ detached @ a1b2c3d - 如果當前工作區不在 git 倉庫中,則不渲染任何內容
刷新規則¶
以下事件會觸發立即刷新:
- 插件掛載
- 切換 session/workspace
- 窗口
focus visibilitychange變爲可見- 點擊分支 chip
另外,插件使用 60 秒輪詢作爲兜底刷新。
相關客戶端常量:
POLL_INTERVAL_MS = 60000
POLL_INTERVAL_MS 控制兜底輪詢間隔;設置 <= 0 可禁用該輪詢。
host 與 client 分工¶
- host 註冊
/git-branch命令,並在命令的text字段返回 JSON 結果 - client 註冊
conversation.input.leftchip,並註冊conversation.chat.commandview隱藏傳輸命令
安裝與啓用¶
1、安裝插件:
dsh plugin --profile web add dsh-git-branch
2、如果使用本地 checkout:
dsh plugin --profile web add ./dsh-git-branch
3、重啓 profile,並刷新頁面。
dsh plugin add 會檢測 dsh.bundle,並將包加入 dsh.profile.bundles;補丁層會在下次啓動時生效。
典型用法¶
安裝並刷新頁面後,可以直接在 composer 模式控件旁看到分支 chip。
點擊 chip 會立即刷新一次。
如果要修改命令名,可以在自己的 profile cordis.patch.yml 中覆蓋同一 id 的行:
- id: git-branch
name: dsh-git-branch
config:
commandName: git-branch # optional; default is git-branch
注意:未知配置鍵會導致加載失敗。
如果需要關閉兜底輪詢,可以將 POLL_INTERVAL_MS 設置爲小於或等於 0。
適用場景與注意¶
- 適合在 DSH Web UI 中需要快速確認當前工作區 git 分支的使用者
- 如果工作區不是 git 倉庫,插件不會渲染分支 chip
- 配置覆蓋時只使用已支持的配置鍵;未知配置鍵會導致加載失敗
- 插件會隨 profile 激活並加入 bundles。由於插件以當前 dsh 進程權限運行,安裝前建議檢查源碼與 MIT 許可證
結尾¶
dsh-git-branch 的價值比較具體:把當前工作區 git 分支放到 composer 模式控件旁,並用焦點、可見性、session/workspace 切換觸發刷新,再配合 60 秒兜底輪詢。
社區插件目錄頁:
https://www.skillhub.cn/plugins/hanyueqiang/dsh-git-branch
GitHub: