emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: address@hidden: Info on define-minor-mode - :init-valueor :initial-v


From: Richard M. Stallman
Subject: Re: address@hidden: Info on define-minor-mode - :init-valueor :initial-value?]
Date: Sun, 31 Jul 2005 20:45:43 -0400

       That seems like the right thing to me.  If the user set the variable,
       he probably wanted to control the mode.

    In the text you quoted, I was talking about defcustoms with a :set
    function that are _not_ minor modes.

I don't think this changes anything, but let's call it "behavior"
rather than "mode".

       So what?  One can't please everybody.

    I thought that we decided that use of Custom was optional, that people
    should be able to customize everything in their .emacs and completely
    ignore Custom, if that is what they wanted to do.

That is just a goal, not an unbreakable rule.  It seems irrelevant
to this issue anyway.  We're not talking about running Custom here.
We're talking about what happens when you load a defcustom and
the variable has already been set.

      If you try to customize things manually
    in your .emacs you subject yourself to Custom overriding you at random
    moments, without notice, when some file is loaded (for instance by Custom).

It's not Custom that's doing this, it is loading the defcustom.
Let's not complicate the issue unnecessarily.

    Prior cases that were known to give problems have been solved already
    in various ways, but people just keep writing new very intrusive :set
    functions.

We just have to fix them to be less intrusive.  Perhaps we could develop
a list of guidelines they should follow.

    For instance, suppose that setting a variable only takes
    effect if a timer is set.  People using Custom have come to expect
    that just setting a variable through Custom is sufficient.  So you
    have to provide a :set function that calls the timer.

Do you mean, that sets up the timer?

    Now somebody
    who wants the feature sometimes enabled and sometimes not might set a
    very complex value for the variable in his .emacs and then enable and
    disable the feature for that complex value by repeatedly setting and
    unsetting the (autoloadable) timer.

Do you mean activating and canceling the timer?  It seems like asking
for trouble.

      But every so often the feature
    will be mysteriously silently enabled, when some file is silently
    loaded, for instance by Custom.

The variable could have three states: an active timer, an inactive
timer, and nil meaning no timer has been set.  The set function could
create the timer only if the variable is nil.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]