私は関数のオートロードの機能を理解しています(そのような関数が呼び出されたとき、またはそのドキュメント文字列が取得されたときにロードするファイルを登録します)。ただし、変数やマクロと組み合わせてオートロード機能を使用する方法は明確ではありません。
2つの質問があります。
パッケージにパラメーターがあり、ユーザーが設定できる変数として実装されているが、自動ロードされない場合はどうなりますか?そのような変数はオートロードされるべきですか?そうでない場合、そのような変数は存在しないことがわかります。Lisp環境は、パッケージからオートロードされた関数が使用されるまで(通常は構成ファイルのロード後)、ユーザーが変数を設定するまで、デフォルト値を含め、それらについて何も知りません。 /彼女の設定ファイル、それは存在しない変数を設定するようなものです。変数の値が空でないリストであり、ユーザーがその値を使用
push
またはadd-to-list
変更する場合、正確にはどうなりますか?デフォルト値は失われますか?マクロがオートロードされるとどうなりますか?いつマクロをオートロードする必要がありますか?
setq
edするだけの変数(つまり、以前の値は関係ない)には、デフォルトで、defvar
またはdefcustom
フォームで指定できますが、ユーザーが拡張できるリストの場合は、eval-after-load
正しく使用するのが最善でしょうか。また、リストの形式をとっても、デフォルトが適切な場合もあります;-)