存储与设置
如何保存插件数据、暴露用户设置,并处理快捷键。
存储与设置
插件通常需要保存两类数据:
- 运行数据:历史记录、收藏项、缓存结果。
- 用户设置:开关、数字、文本、快捷键。
这两类数据应该分开思考。运行数据由插件自己管理,设置项应该通过 manifest 暴露给 DesKit,让用户能在插件页面修改。
持久化存储
插件可以通过上下文提供的 storage 能力保存 JSON 友好的数据。适合保存:
- 最近使用记录;
- 收藏 ID;
- 小型缓存;
- 插件内部状态。
建议保持数据小而明确。不要把大图片、文件二进制或大量远端数据直接塞进 storage。历史剪贴板插件同步时就采用了限制策略:只同步最近少量文本记录,避免占满设置同步文件。
设置项
设置项由 manifest 声明,DesKit 会在插件页面渲染对应 UI。
适合做成设置的内容:
- 是否启用某类采集;
- 最大历史数量;
- 同步方式;
- WebDAV 地址;
- 快捷键。
敏感信息要谨慎。当前如果某类 preference 只能以普通文本保存,就应在 README 或设置说明里提示用户。
快捷键
如果插件需要快捷键,优先使用 DesKit 的快捷键设置能力,而不是自己监听全局键盘。
例如历史剪贴板插件可以暴露一个快捷键设置,让用户按下快捷键时打开对应插件命令。这样快捷键冲突、展示和修改都由 DesKit 统一处理。
同步
设置同步可能会把插件设置一起同步出去,因此插件不要把大体积数据藏进设置项。若确实要同步插件数据,应明确控制大小:
- 限制条目数量;
- 限制总字节数;
- 超限时优先丢弃最大或最旧记录;
- 避免同步图片和文件内容。
我们希望同步设计宁可保守。用户更能接受“同步最近 5 条文本”,不太能接受“因为一张截图导致同步失败”。