* bug#70209: 30.0.50; describe key + lambda too poetic
@ 2024-04-05 4:47 No Wayman
2024-04-05 5:07 ` No Wayman
0 siblings, 1 reply; 6+ messages in thread
From: No Wayman @ 2024-04-05 4:47 UTC (permalink / raw)
To: 70209
GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.41, cairo version 1.18.0) of 2024-04-02
emacs -Q –batch
–eval ‘(global-set-key (kbd “c”) (lambda () (interactive) t))’
–eval ‘(describe-key “c”)’
–eval ‘(with-current-buffer “*Help*” (print
(buffer-substring-no-properties (point-min) (point-max))))’
Outputs the following poetry:
“c runs the command # (found in global-map), which is
.
It is bound to c.
(anonymous)
”
“which is…”?
What is describe-key trying to tell us?
Is it respecting the function’s wish to remain anonymous?
Is it commentary on the limits of descriptive language?
I can only respond with the output of M-x describe-feelings:
“It is bound to c, yet I see a bind:
Though closure mentioned, none I’ve yet to find.”
~ Anonymous
^ permalink raw reply [flat|nested] 6+ messages in thread* bug#70209: 30.0.50; describe key + lambda too poetic
2024-04-05 4:47 bug#70209: 30.0.50; describe key + lambda too poetic No Wayman
@ 2024-04-05 5:07 ` No Wayman
2024-04-05 5:43 ` Eli Zaretskii
2024-04-05 11:44 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 2 replies; 6+ messages in thread
From: No Wayman @ 2024-04-05 5:07 UTC (permalink / raw)
To: 70209
[– Attachment #1: Type: text/plain, Size: 32 bytes –]
See attached patch, which is.
[– Warning: decoded text below may be mangled, UTF-8 assumed –]
[– Attachment #2: 0001-Include-lambda-type-in-describe-key-output.patch –]
[– Type: text/x-patch, Size: 903 bytes –]
From 65f0f2fa251a7b18c15698460c499394b931d09d Mon Sep 17 00:00:00 2001
From: Nicholas Vollmer
Date: Thu, 4 Apr 2024 23:54:42 -0400
Subject: [PATCH] Include lambda type in describe-key output
* lisp/help-fns.el (help-fns-function-description-header):
Add case to describe lambda forms (Bug#70209).
—
lisp/help-fns.el | 2 ++
1 file changed, 2 insertions(+)
diff –git a/lisp/help-fns.el b/lisp/help-fns.el
index a291893e9a2..3a5984d5b84 100644
— a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -1102,6 +1102,8 @@ help-fns-function-description-header
elts nil))
(setq elts (cdr-safe elts)))
(concat beg (if is-full “keymap” “sparse keymap”))))
+ ((eq (car-safe def) ‘lambda)
+ (concat beg “anonymous Lisp function”))
(t “”))))
(with-current-buffer standard-output
(insert description))
—
2.44.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* bug#70209: 30.0.50; describe key + lambda too poetic
2024-04-05 5:07 ` No Wayman
@ 2024-04-05 5:43 ` Eli Zaretskii
2024-04-05 11:44 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
1 sibling, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2024-04-05 5:43 UTC (permalink / raw)
To: No Wayman, Stefan Monnier; +Cc: 70209
> From: No Wayman
> Date: Fri, 05 Apr 2024 01:07:39 -0400
>
> See attached patch, which is.
Thanks. Stefan, any comments?
^ permalink raw reply [flat|nested] 6+ messages in thread* bug#70209: 30.0.50; describe key + lambda too poetic
2024-04-05 5:07 ` No Wayman
2024-04-05 5:43 ` Eli Zaretskii
@ 2024-04-05 11:44 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-05 20:58 ` No Wayman
1 sibling, 1 reply; 6+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-05 11:44 UTC (permalink / raw)
To: No Wayman; +Cc: 70209
Thank you for your enjoyable bug report and the suggested patch.
> @@ -1102,6 +1102,8 @@ help-fns-function-description-header
> elts nil))
> (setq elts (cdr-safe elts)))
> (concat beg (if is-full “keymap” “sparse keymap”))))
> + ((eq (car-safe def) ‘lambda)
> + (concat beg “anonymous Lisp function”))
> (t “”))))
> (with-current-buffer standard-output
> (insert description))
Actually, I think this won’t help because in my test the `car` of `def`
is `closure` rather than `lambda`.
I installed the patch below instead.
Stefan
diff –git a/lisp/help-fns.el b/lisp/help-fns.el
index a291893e9a2..27011575333 100644
— a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -1086,13 +1086,6 @@ help-fns-function-description-header
;; need to check macros before functions.
(macrop function))
(concat beg “Lisp macro”))
– ((atom def)
– (let ((type (or (oclosure-type def) (cl-type-of def))))
– (concat beg (format “%s”
– (make-text-button
– (symbol-name type) nil
– ‘type ‘help-type
– ‘help-args (list type))))))
((keymapp def)
(let ((is-full nil)
(elts (cdr-safe def)))
@@ -1102,7 +1095,16 @@ help-fns-function-description-header
elts nil))
(setq elts (cdr-safe elts)))
(concat beg (if is-full “keymap” “sparse keymap”))))
– (t “”))))
+ (t
+ (let ((type
+ (if (and (consp def) (symbolp (car def)))
+ (car def)
+ (or (oclosure-type def) (cl-type-of def)))))
+ (concat beg (format “%s”
+ (make-text-button
+ (symbol-name type) nil
+ ‘type ‘help-type
+ ‘help-args (list type)))))))))
(with-current-buffer standard-output
(insert description))
^ permalink raw reply related [flat|nested] 6+ messages in thread* bug#70209: 30.0.50; describe key + lambda too poetic
2024-04-05 11:44 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-04-05 20:58 ` No Wayman
2024-04-05 22:32 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 6+ messages in thread
From: No Wayman @ 2024-04-05 20:58 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 70209
Stefan Monnier writes:
> Thank you for your enjoyable bug report and the suggested patch.
🙂
> Actually, I think this won’t help because in my test the `car`
> of `def`
> is `closure` rather than `lambda`.
>
> I installed the patch below instead.
> diff –git a/lisp/help-fns.el b/lisp/help-fns.el
> index a291893e9a2..27011575333 100644
With patch applied, thy *scratch* prepared to itch which I bemoan,
*Help* link replied, its ink ensnared, with “lambda, type
Unknown.”[1]
Apostrophized: “Be tossed, repaired, my user-error thrown!”
With paren pride, I then declared a test which I have shown.[2]
Test now revised as thou compared. Composure hath no throne
when teary-eyed, in fear I blared, “My closure! Type Unknown?”
[1]:
emacs -Q –batch
–eval ‘(global-set-key (kbd “c”) `(lambda () (interactive) t)))’
–eval ‘(describe-key “c”)’
–eval ‘(with-current-buffer “*Help*”
(forward-button 2)
(push-button)
(print (buffer-substring-no-properties (point-min)
(point-max))))’
Unknown type lambda
[2]:
emacs -Q –batch
–eval ‘(global-set-key (kbd “c”) (lambda () (interactive) t)))’
–eval ‘(describe-key “c”)’
–eval ‘(with-current-buffer “*Help*”
(forward-button 2)
(push-button)
(print (buffer-substring-no-properties (point-min)
(point-max))))’
Unknown type closure
^ permalink raw reply [flat|nested] 6+ messages in thread* bug#70209: 30.0.50; describe key + lambda too poetic
2024-04-05 20:58 ` No Wayman
@ 2024-04-05 22:32 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 0 replies; 6+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-05 22:32 UTC (permalink / raw)
To: No Wayman; +Cc: 70209
> [1]:
> emacs -Q –batch
> –eval ‘(global-set-key (kbd “c”) `(lambda () (interactive) t)))’
> –eval ‘(describe-key “c”)’
> –eval ‘(with-current-buffer “*Help*”
> (forward-button 2)
> (push-button)
> (print (buffer-substring-no-properties (point-min)
> (point-max))))’
>
> Unknown type lambda
That’s mild punishment for quoting a lambda.
> [2]:
> emacs -Q –batch
> –eval ‘(global-set-key (kbd “c”) (lambda () (interactive) t)))’
> –eval ‘(describe-key “c”)’
> –eval ‘(with-current-buffer “*Help*”
> (forward-button 2)
> (push-button)
> (print (buffer-substring-no-properties (point-min)
> (point-max))))’
>
> Unknown type closure
OK, OK, I relent, it shouldn’t be button.
Should be fixed now on `master`, thanks to the handy patch below.
Stefan
diff –git a/lisp/help-fns.el b/lisp/help-fns.el
index 27011575333..cfe27077055 100644
— a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -1096,15 +1096,15 @@ help-fns-function-description-header
(setq elts (cdr-safe elts)))
(concat beg (if is-full “keymap” “sparse keymap”))))
(t
– (let ((type
– (if (and (consp def) (symbolp (car def)))
– (car def)
– (or (oclosure-type def) (cl-type-of def)))))
– (concat beg (format “%s”
– (make-text-button
– (symbol-name type) nil
– ‘type ‘help-type
– ‘help-args (list type)))))))))
+ (concat beg (format “%s”
+ (if (and (consp def) (symbolp (car def)))
+ (car def)
+ (let ((type (or (oclosure-type def)
+ (cl-type-of def))))
+ (make-text-button
+ (symbol-name type) nil
+ ‘type ‘help-type
+ ‘help-args (list type))))))))))
(with-current-buffer standard-output
(insert description))
^ permalink raw reply related [flat|nested] 6+ messages in threadend of thread, other threads:[~2024-04-05 22:32 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
— links below jump to the message on this page —
2024-04-05 4:47 bug#70209: 30.0.50; describe key + lambda too poetic No Wayman
2024-04-05 5:07 ` No Wayman
2024-04-05 5:43 ` Eli Zaretskii
2024-04-05 11:44 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-05 20:58 ` No Wayman
2024-04-05 22:32 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).
>>> Read full article>>>
Copyright for syndicated content belongs to the linked Source : Hacker News – https://yhetil.org/emacs-bugs/[email protected]/T/#u