Ben Wing <ben(a)666.com> writes:
OK, we need to create a design document for all of this, including:
PRINCIPLE #1: Whenever you have auto-generated stuff, *CLEARLY*
indicate this in comments around the stuff. These comments get
searched for, and used to locate the existing generated stuff to
replace. Custom currently doesn't do this.
Agreed.
PRINCIPLE #2: Currently, lots of functions want to add code to the
.emacs. (e.g. I get prompted for my mail address from
add-change-log-entry, and then prompted if I want to make this
permanent). There needs to be a Lisp API...
Actually, the ChangeLog question comes from the `user-mail-address'
function, which uses Custom as a mechanism for saving the settings.
So it doesn't violate the principle #2, because it doesn't attempt to
open the init file itself.
...
PRINCIPLE #5: Packages are encouraged, as much as possible, to work
within the customize model and store all their customizations there.
However, if they really need to have their own init files, these
files should be placed in .xemacs/, given normal names
(e.g. saved-abbrevs.el not .abbrevs), and there should be some magic
comment at the top of the file that causes it to get automatically
loaded while loading a user's init file. (Alternatively, the
above-named API could specify a function that lets a package specify
that they want such-and-such file loaded from the init file, and
have the specifics of this get handled correctly.)
I agree with this.
OVERARCHING GOAL: The overarching goal is to provide a unified
mechanism for packages to store state and setting information about
the user and what they were doing when XEmacs exited, so that the
same or a similar environment can be automatically set up the next
time. In general, we are working more and more towards being a
truly GUI app where users' settings are easy to change and get
remembered correctly and consistently from one session to the next,
rather than requiring nasty hacking in elisp.
That would be cool. Yes, I have interest in this -- notice the
minibuffer-history-saving hack that I wrote and that is now part of
XEmacs -- but I'm afraid I don't have much time to hack on it.
I agree with the directions you gave, and I'll likely help deal with
the startup issues when I have some more time. (Real Work, just like
Real Life, can sometimes suck.)