all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: phillip.lord@newcastle.ac.uk (Phillip Lord)
To: Drew Adams <drew.adams@oracle.com>
Cc: Rusi <rustompmody@gmail.com>, help-gnu-emacs@gnu.org
Subject: Re: In defense of Customize [was: Trying to right-align my window on startup]
Date: Thu, 16 Jan 2014 10:06:37 +0000	[thread overview]
Message-ID: <87lhyg5jgy.fsf@newcastle.ac.uk> (raw)
In-Reply-To: <8a68f95d-4916-4a5d-a92c-b5de5f8f4d6e@default> (Drew Adams's message of "Wed, 15 Jan 2014 09:28:11 -0800")


Drew Adams <drew.adams@oracle.com> writes:

>> I would like to have a "custom-setq" which set a var, checked to see
>> whether the types were correct wrt customize, then crashed if not. It
>> would be nice to use the knowledge of customize from lisp.
>
> See commands `customize-set-variable' and `customize-set-value'.
>
> (IMHO, `set-variable', which is also for setting a user variable,
> should behave similarly, but it does not.)
>

These don't do quite what I want. As a random example, consider this:


(defcustom pulse-flag (pulse-available-p)
  "Whether to use pulsing for momentary highlighting.
Pulsing involves a bright highlight that slowly shifts to the
background color.

If the value is nil, highlight with an unchanging color until a
key is pressed.
If the value is `never', do no coloring at all.
Any other value means to do the default pulsing behavior.

If `pulse-flag' is non-nil, but `pulse-available-p' is nil, then
this flag is ignored."
  :group 'pulse
  :type 'boolean)


Now, this is type boolean. So we can do this..


(customize-set-value 'pulse-flag nil)

and all is good. We can also do this...

(customize-set-value 'pulse-flag "wrong")

Now we have pulse-flag set to an illegal value. Of course, in this case,
it won't matter because "wrong" will be interpreted as t. But it means I
can set the variable to something which the GUI will not. I want this to
throw an error.

In this case, the ability to set an "illegal" value is actually useful,
because the :type is wrong, as legal values are t, nil or 'never
(according to the documentation) not just 'boolean. Why has this never
been discovered? I would suggest two possibilities: a) the developers
have never, ever set 'pulse-flag or b) they just used setq in their
.emacs. If the latter is true, having a way of only setting legal values
according to customize would have been helpful, because this would have
crashed, and they would have fixed it.

Phil



  reply	other threads:[~2014-01-16 10:06 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <<B67C92F68785104E8816FEEE2B44C9346F33C8FD@TEMCAS01.peinet.peinc.com>
     [not found] ` <<83r48idw6z.fsf@gnu.org>
     [not found]   ` <<B67C92F68785104E8816FEEE2B44C9346F33C978@TEMCAS01.peinet.peinc.com>
     [not found]     ` <<83mwj5ekrs.fsf@gnu.org>
     [not found]       ` <<B67C92F68785104E8816FEEE2B44C9346F33D269@TEMCAS01.peinet.peinc.com>
     [not found]         ` <<28ab7799-fdc5-47c4-9ac0-f7db66771e7e@default>
     [not found]           ` <<83iotsdh9n.fsf@gnu.org>
2014-01-09 21:02             ` Trying to right-align my window on startup Drew Adams
2014-01-11 14:45               ` Juanma Barranquero
2014-01-11 17:35                 ` poor Customize [was: Trying to right-align my window on startup] Drew Adams
     [not found]                 ` <mailman.11630.1389461775.10748.help-gnu-emacs@gnu.org>
2014-01-13 15:11                   ` jack-mac
2014-01-13 17:06                     ` Drew Adams
     [not found]               ` <mailman.11626.1389451551.10748.help-gnu-emacs@gnu.org>
2014-01-14  9:24                 ` Trying to right-align my window on startup Rusi
2014-01-14 17:37                   ` In defense of Customize [was: Trying to right-align my window on startup] Drew Adams
2014-01-14 19:32                     ` session.* files (was: In defense of Customize) gottlieb
2014-01-14 19:52                       ` Peter Dyballa
2014-01-15 10:29                     ` In defense of Customize [was: Trying to right-align my window on startup] Phillip Lord
2014-01-15 17:28                       ` Drew Adams
2014-01-16 10:06                         ` Phillip Lord [this message]
2014-01-16 15:33                           ` Drew Adams
2014-01-14 17:53                   ` Trying to right-align my window on startup Emanuel Berg
2014-01-14 17:57                   ` Marcin Borkowski
     [not found]                   ` <mailman.11925.1389722262.10748.help-gnu-emacs@gnu.org>
2014-01-14 18:15                     ` Rusi
2014-01-14 18:19                     ` Emanuel Berg
2014-01-15  4:44                     ` Rusi
     [not found]                   ` <mailman.11921.1389721075.10748.help-gnu-emacs@gnu.org>
2014-01-18  2:59                     ` In defense of Customize [was: Trying to right-align my window on startup] Rusi
2014-01-18  4:42                       ` Emanuel Berg
2014-01-18 15:31                         ` Rusi
2014-01-28 15:17                     ` Christoph Wedler
2014-01-28 18:35                       ` Emanuel Berg
2014-01-29 10:57                         ` Phillip Lord
2014-01-29 13:23                           ` Stefan Monnier
2014-01-29 16:54                             ` Phillip Lord
2014-01-29 18:26                               ` Stefan Monnier
2014-01-30  9:59                                 ` Phillip Lord
     [not found]                         ` <mailman.13090.1390993048.10748.help-gnu-emacs@gnu.org>
2014-01-29 16:52                           ` Emanuel Berg
2014-01-29 17:19                             ` Phillip Lord
     [not found]                             ` <mailman.13107.1391015968.10748.help-gnu-emacs@gnu.org>
2014-01-29 18:21                               ` Emanuel Berg
2014-01-29  0:47                       ` Drew Adams
     [not found]                       ` <mailman.13068.1390956492.10748.help-gnu-emacs@gnu.org>
2014-01-30 10:14                         ` Christoph Wedler
2014-01-30 13:23                           ` Stefan Monnier
2014-01-30 16:06                           ` Drew Adams
     [not found]                           ` <mailman.13194.1391088219.10748.help-gnu-emacs@gnu.org>
2014-01-30 16:15                             ` Rusi
2014-01-30 18:44                               ` Emanuel Berg
2014-01-31  9:56                                 ` Phillip Lord
     [not found]                                 ` <mailman.13338.1391162177.10748.help-gnu-emacs@gnu.org>
2014-01-31 12:08                                   ` Rusi
2014-01-31 20:41                                     ` Emanuel Berg
2014-01-31 20:39                                   ` Emanuel Berg
     [not found]                           ` <mailman.13229.1391098001.10748.help-gnu-emacs@gnu.org>
2014-01-31  6:54                             ` Rusi
2014-01-31 17:50                             ` Christoph Wedler
2014-01-08 20:11 Trying to right-align my window on startup Mickey Ferguson
2014-01-08 21:01 ` Eli Zaretskii
     [not found]   ` <B67C92F68785104E8816FEEE2B44C9346F33C978@TEMCAS01.peinet.peinc.com>
2014-01-09  6:23     ` Eli Zaretskii
2014-01-09 20:16       ` Mickey Ferguson
2014-01-09 20:30         ` Eli Zaretskii
2014-01-09 20:32         ` Drew Adams
2014-01-09 20:36           ` Eli Zaretskii
2014-01-09 20:41             ` Marcin Borkowski
2014-01-09 21:04               ` Drew Adams
     [not found]             ` <mailman.11466.1389300108.10748.help-gnu-emacs@gnu.org>
2014-01-09 21:43               ` Sebastien Vauban
2014-01-09 22:23                 ` Drew Adams
2014-01-10 22:31           ` Mickey Ferguson
2014-01-10 23:09             ` Drew Adams
2014-01-11  1:17               ` Mickey Ferguson
2014-01-11  3:07                 ` Drew Adams
2014-01-13 23:14                   ` Mickey Ferguson
2014-01-14  4:55                     ` Eli Zaretskii
     [not found]         ` <<83k3e8dhj9.fsf@gnu.org>
2014-01-09 21:02           ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lhyg5jgy.fsf@newcastle.ac.uk \
    --to=phillip.lord@newcastle.ac.uk \
    --cc=drew.adams@oracle.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=rustompmody@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.