在 src/modules/ 下创建新的功能模块,遵循 ModuleRegistry 接口规范
用户通过 /new-module <module-name> 调用(如 /new-module keyboard_shortcuts)。
每个模块必须导出一个对象,实现以下接口:
export const XxxModule = {
id: 'kebab-case-id', // 唯一标识,用于存储和注册
name: NativeUI.t('中文名', 'English Name'),
description: NativeUI.t('中文描述', 'English description'),
icon: '🔧', // emoji 图标
defaultEnabled: false, // 是否默认启用
init() { }, // 模块启用时调用,注册事件/DOM watcher
destroy() { }, // 模块禁用时调用,清理所有副作用
onUserChange() { }, // 用户切换时调用(可选)
// tick() { }, // 主循环每 1500ms 调用一次(可选,仅轮询型模块需要)
};
src/modules/<name>.js,按上述模板生成src/main.js 中:
ModuleRegistry.register(XxxModule);(与其他注册放在一起)'../constants.js'、'../logger.js'、'../native_ui.js'destroy() 中移除src/constants.js 的 GLOBAL_KEYS 中注册Logger.info/warn/debug 记录关键操作NativeUI.t(zh, en) 实现双语DOMWatcher 注册而非自建参考 src/modules/quote_reply.js(最简模块,155 行)了解完整模式。