Subject: bug#70212: Customize Group buffer: add button to reveal underlying variable names

From: Drew Adams <[email-masked]>
Date: Fri, 5 Apr 2024 16:32:48 +0000

> tags 70212 notabug
> close 70212
> thanks
> 
> > The user is in buffer *Customize Group: Compilation*
> >
> > The user sees:
> > Show Value Compilation Max Output Line Length
> >    Output lines that are longer than this value will be hidden. Hide
> >    If nil, don’t hide anything.
> >
> > Try as the user might, there is no way for him to discover the
> > underlying variable there in the interface.
> 
> That's not how users are supposed to find out variable names.  The
> Customize user interface is for users who don't need to know the Lisp
> name of a variable.  You can customize this (and any other) variable
> without knowing its Lisp name; forf all practical purposes its name is
> "Compilation Max Output Line Length", which is written right there.
> Which is why this UI doesn't mention the Lisp names of variables: they
> might confuse users who don't know Lisp.
> 
> > All he can do is do C-h v and start guessing its name. Finally
> > arriving at
> 
> The most efficient way of finding out the Lisp name of the variable is
> to type:
> 
>   M-x apropos-variable RET Compilation Max Output Line Length RET
> 
> So I'm closing this bug as it is not a bug at all: Emacs behaves as
> intended here.

If the point of view is "that's not how users are
supposed to find out variable names", then Emacs
isn't being as helpful as it could be.

Emacs could easily be more helpful by bridging the
discovery gap that you expose by saying, correctly:

> forf all practical purposes its name is
> "Compilation Max Output Line Length",
> which is written right there.

Yes, it's written right there.  But it's not obvious
that it's written right there.  So it's not the case
for all practical purposes.

`M-x apropos variable' is fine, but it shouldn't be
necessary to know about that command, and use it
here, to get the variable name in its usual form
(Lisp): `compilation-max-output-line-length'.

It would be helpful if Emacs made that UI name,
`Compilation Max Output Line Length' a button that
toggled option `custom-unlispify-tag-names', thus
immediately changing what's shown to the variable
name as expected by Emacs's help commands etc.:
`compilation-max-output-line-length'.  A button's
quite discoverable, and would be tried.

It would help further if the colon were removed
after `compilation-max-output-line-length'.  Then
you could just use `C-h v', and the default value
would be `compilation-max-output-line-length'.
(That suggestion was made in bug #3395, but it was
rejected summarily.)

At least users can use `C-h S' on the option name,
whether it's shown as `Compilation Max Output Line
Length' or `compilation-max-output-line-length'.
But users need to know they can do that...  Again,
not obvious.

Helping users discover _how to ask Emacs_ has
been, and should always be, one of Emacs's highest
priorities.

In this case, it would be easy to make things
easier for users.  Just saying "The most efficient
way of finding out the Lisp name" doesn't help
users who haven't a clue about that command.

Throughout the manual, and elsewhere, users can
use apropos commands to find more info about
something they come across.  But we could also
make it easier to find such info when what they
want to know about is in fact "written right
there" but they might not be aware of that.

(Just one opinion.)
___

Related:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3395

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=1478