[Top][All Lists]

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

RE: Getting more info on a variable in Customize buffers

From: Drew Adams
Subject: RE: Getting more info on a variable in Customize buffers
Date: Tue, 4 Jan 2005 11:50:32 -0800

           That is apparently not what it does.  If you set, say,
           auto-revert-interval, which is 5 by default, to 10 and save for
           future sessions, then set it to 20 for this session only, "show
           initial Lisp expression" will show 10, not 5.

       I think you mean "will show 10, not (if window-system 'x 2)".

    No, I was talking about auto-revert-interval, which is an actual
    option you can experiment with.  The defcustom gives it value 5, which
    is a Lisp expression, an integer.

Right. Sorry.

But that example doesn't demonstrate the difference between uneval'd
expression and eval'd value (because 5 evaluates to 5). (It does demonstrate
that it is the last-saved value or expression that is displayed.)

I just tried the example that Per gave:

 (defcustom foo (if window-system 'x 2)
     :type 'sexp)

Using Customize, I did "show initial Lisp expression", to see (if
window-system 'x 2). I changed that sexp to (if window-system 'y 5) and did
"set for current session".

I clicked "don't show as Lisp expression", then "show initial Lisp" and it
showed (if window-system 'x 2). So, turning off, then on again, the "show
initial Lisp" changed the displayed value back to what it was before the
value was changed. The current value (via "don't show" again) always
reflects the lates value, of course.

I changed the Lisp expression again, but this time did "save for future
sessions". Clicking "don't show" followed by "show initial" then showed the
new Lisp expression, (if window-system 'y 5).

Summary: "Show initial Lisp expression" shows the uneval'd Lisp expression
(not value) that was last saved. It doesn't show the last Lisp expression
used to set the variable (unless the value was saved).

Perhaps there is some good in putting together the display of the last
defining sexp used in Customize with the defining library source code. A
single menu item, "Show Lisp definition" could display the last-defining
code, whether it is in the user's custom file (.emacs) or the last-defining
Lisp library. Opinions?

I think that there should be a menu item that takes you to the last-defining
Lisp-library definition, regardless of whether or not there is a later
definition in your .emacs. The library source code is more informative than
a simple sexp. However, there is a risk that the user will get confused,
because in that case the source library code did not actually define the
latest value. Are both needed?

In any case:

- A link to the library source code is needed, as in `C-h v'.
- If the defining Lisp sexp in the custom file is also
  shown (or linked), then the same should be done for `C-h v'.
- The current _value_ should also be displayable as a sexp,
  as in `C-h v'.

reply via email to

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