預設分組
預設分組是 Luker 為預設選擇器引入的分組展示功能。當你累積了大量預設後,扁平的下拉列表會變得難以管理。預設分組允許你將預設歸入命名分組,在下拉選擇器中以分組 header + 成員的層級結構展示。
資料模型
每個分組包含以下欄位:
js
{
id: string, // 分組 ID(目前實作為 pg-<timestamp>-<random>)
name: string, // 分組名稱
presets: string[] // 成員預設名稱列表
}分組資料按 API 類型儲存在 power_user.preset_groups[apiId],透過 getPresetGroups() 讀取,並由 createPresetGroup()、renamePresetGroup()、deletePresetGroup()、addPresetToGroup()、removePresetFromGroup() 等方法修改,最後隨設定儲存持久化。
每個 API 類型獨立維護
預設分組按 API 類型(如 Chat Completion、Text Completion 等)獨立維護。不同 API 類型的預設分組互不影響,切換 API 類型時會載入對應的分組設定。
分組展示
分組 Header 可折疊
在預設下拉選擇器中,每個分組顯示為一個可折疊的 header。點擊 header 可以展開或收起該分組下的所有預設,方便在大量預設中快速定位。
成員縮排展示
分組內的預設成員以縮排的方式展示在 header 下方,形成清晰的層級視覺結構。
未分組預設保持頂層
未歸入任何分組的預設保持在下拉列表的頂層位置,不受分組結構的影響。
分組管理
右鍵選單
預設分組的管理操作透過右鍵選單完成:
- 建立分組:新建一個命名分組
- 重新命名分組:修改已有分組的名稱
- 刪除分組:移除分組,組內預設回到未分組狀態
- 移入/移出分組:將預設新增到分組或從分組中移除
預設生命週期同步
分組系統會自動回應預設的生命週期事件:
- 預設重新命名:分組中的成員名稱自動同步更新
- 預設刪除:自動從所屬分組中移除
Select2 適配器
Luker 實作了自訂的 Select2 適配器,用於在下拉選擇器中渲染分組結構和操作按鈕:
- 收集所有真實 option 元素(跳過分組 header)
- 保留自訂屬性(如
data-luker-char-bound) - 清空 select 後先新增未分組預設
- 按分組順序新增 header 和成員