one of the primary things i want to add to 21.5 is "behaviors". some support is
already there but i want to generalize it and get all packages encompassed in
it. the basic idea is that it provides a uniform interface onto enabling and
disabling a behavior (usually a package), setting the associated variables,
getting help as to how the behavior works, etc. this would be done through a
simple menu-oriented system. this makes is very easy for users to try out
what's out there, which now is just utter chaos.
i'm in the process of adding `define-behavior' statements [bracketed with if
fboundp, don't worry] for all the packages in `edit-utils'. there's a snafu,
though: many of the packages are enabled merely by loading, and can't be
disabled. even for those that provide an explicit enable function, there's
often no disable function. i need help modifying these packages to provide
these enable and disable functions. it doesn't matter exactly what they're
called, just that they do the work. you might consider synching up to the
latest released version while you're at it, to see if those functions got
written for you already. also, you should use `advice' whenever possible to
advise functions rather than homegrown hacks like just changing the functions
and storing the old value in a variable.
anyone willing to help? any contributions would be greatly appreciated and
would go a long way towards making XEmacs a far more useful and user-friendly
program.
another possible project, for someone with more energy: create an advice-like
system for key bindings. it should simplify and stabilize the process of
packages modifying key bindings. just like for the regular advice, they should
be able to call the original binding from their modified routine, and all the
nastiness of de-installation should be taken care of. [e.g. if package a advises
a key, and then package b advises the same key, then b will have advised a's
advising of the key. if package a then uninstalls, the key should be left with
b advising the original definition.]