Subject: bug#36826: 26.1; request: add variable value editing feature to the *Help* buffer

From: ndame <[email-masked]>
Date: Mon, 29 Jul 2019 04:38:25 +0000 (GMT)

> - It is no fun for variables with complicated values, like large lists
of lists. Just a minibuffer prompt would not be nice.

That's why I mentioned popup buffers for complicated values. It could
be especially useful for variables with complicated values like nested 
lists. You just press e, a buffer pops up with the value, so you don't have
to manually copy it to scratch, etc. you can tweak it in place quickly and
set it with C-c C-c

> Here you probably still would use scratch or so. And even in the situation you
> described, I would prefer having an expression in scratch, edit and eval
> it, compared to clicking a button in the help buffer and edit in the mb
>or a popup buffer.

A related idea is that we could have the key c bound to copy as elisp. So you 
want to tweak a variable. You press c and the lisp form of setting the 
variable (setq varname ....current value...) is copied to the kill ring which you can tweak in 
scratch.

This could trivially do the tedious work of copying the variable's name and 
value manually.

> - There are nitpicks which may complicate doing what at first sounds
> simple, e.g. what if the value includes things were printing and reading
> comes into play?  E.g. buffers: they have a print syntax, but it's not a
> read syntax.

We are talking about variables which the user sets from lisp. Variables
containing buffer objects are not such. For these the feature could 
throw an error saying the variable cannot be changed manually.

> But my main point is the question if we should really invite the typical
user, which is not an Emacs developer (ok, here I'm not really sure if
I'm right) to change variables on the fly,

I don't know what you mean by emacs developer (core developer?), but
the typical emacs user tends to learn lisp, so he can extend and mold
the editor to his needs. Such a user inspects variables, changes them,
copies code to the init file etc. This feature targets those users who 
are beyond customize, able to use lisp and tweak variables and other
things often in emacs.