【发布时间】:2013-11-19 23:12:56
【问题描述】:
我维护了一个比较流行的 Emacs 包 (ido-ubiquitous),我想将 ;;;###autoload cmets 添加到我的包中,以便在激活其模式之前不需要加载它。前段时间我用同一个包尝试过这个,它导致了一些只在包被自动加载时发生的神秘错误,所以我删除了所有自动加载的东西,问题就消失了。我想再试一次,但前提是我能找到有关如何操作的权威文档,这样我就不会再次引入相同的错误。
那么有没有明确的指南来将自动加载 cookie 添加到 Emacs Lisp 包中?
编辑:查看我的包的 Git 日志,我看到几个提交涉及自动加载:
这些提交表明我真的不确定要添加自动加载到什么。特别是,f6086e5 和 66b782f 表明我认为我应该自动加载自定义变量,并得出结论我还需要自动加载定义其默认值的 defconst 表单。如果我没记错的话,这是对 void-variable 错误的响应,因为自动加载的 defcustom 无法访问非自动加载的默认值 (issue link)。最后,在 283f9e9 中,我看到了未来,并采纳了 Stefan 的建议,移除了所有自动加载,除了次要模式定义中的自动加载。
【问题讨论】: