dsh-git-branch:在 DSH Web UI 中顯示當前工作區 git 分支

前言

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 倉庫中,則不渲染任何內容

刷新規則

以下事件會觸發立即刷新:

  1. 插件掛載
  2. 切換 session/workspace
  3. 窗口 focus
  4. visibilitychange 變爲可見
  5. 點擊分支 chip

另外,插件使用 60 秒輪詢作爲兜底刷新。

相關客戶端常量:

POLL_INTERVAL_MS = 60000

POLL_INTERVAL_MS 控制兜底輪詢間隔;設置 <= 0 可禁用該輪詢。

host 與 client 分工

  • host 註冊 /git-branch 命令,並在命令的 text 字段返回 JSON 結果
  • client 註冊 conversation.input.left chip,並註冊 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:

https://github.com/hanyueqiang/dsh-git-branch

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

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

小夜