用途:在 LobeHub 项目中新增与管理键盘快捷键,覆盖快捷键注册、组合键、作用域(scope)、冲突检查以及快捷键提示展示。 主要能力与步骤:
- 更新热键常量:在 packages/types/src/hotkey.ts 的 HotkeyId 联合类型中加入新 id(HotkeyEnum 以此为类型来源)。
- 注册默认热键:在 packages/const/src/hotkeys.ts 中把条目加入 HotkeyEnum 与 HOTKEYS_REGISTRATION,指定 group、id、keys(用 combineKeys 组合)与 scopes。
- 添加国际化文案:在 packages/locales/src/default/hotkey.ts 中提供 title 与 desc。
- 创建并注册 Hook:在 src/hooks/useHotkeys/chatScope.ts 中通过 useHotkeyById 绑定热键与处理函数,并在 useRegisterChatHotkeys 中注册。
- 添加快捷键提示(可选):通过 settingsSelectors.getHotkeyById 获取配置,传给 Tooltip 的 hotkey 属性展示。 最佳实践:按功能选择 global 或 chat 作用域;归入合适的组(System/Layout/Conversation);避免与系统或浏览器快捷键冲突;平台相关按键使用 KeyEnum.Mod 而非硬编码 Ctrl 或 Cmd;为热键提供清晰的标题与描述。 排查:热键无效时检查作用域与 RegisterHotkeys hook;设置中不显示时检查 HOTKEYS_REGISTRATION 配置;冲突时 HotkeyInput 组件会给出警告;页面级热键需确保对应作用域已激活。 限制:具体分组、按键与作用域取值依项目既有定义而定,资料未列出完整枚举;未提供安装命令与版本兼容信息。