GNU logs - #70576, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: JD Smith <jdtsmith@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 25 Apr 2024 22:33:05 +0000
Resent-Message-ID: <handler.70576.B.171408434514078 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: 70576 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.171408434514078
          (code B ref -1); Thu, 25 Apr 2024 22:33:05 +0000
Received: (at submit) by debbugs.gnu.org; 25 Apr 2024 22:32:25 +0000
Received: from localhost ([127.0.0.1]:33448 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s07dZ-0003eK-Iz
	for submit <at> debbugs.gnu.org; Thu, 25 Apr 2024 18:32:24 -0400
Received: from lists.gnu.org ([2001:470:142::17]:35292)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jdtsmith@HIDDEN>) id 1s07dG-0003aI-Ek
 for submit <at> debbugs.gnu.org; Thu, 25 Apr 2024 18:32:09 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <jdtsmith@HIDDEN>)
 id 1s07cs-0007dK-HE
 for bug-gnu-emacs@HIDDEN; Thu, 25 Apr 2024 18:31:34 -0400
Received: from mail-il1-x131.google.com ([2607:f8b0:4864:20::131])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <jdtsmith@HIDDEN>)
 id 1s07cq-0004pk-9a
 for bug-gnu-emacs@HIDDEN; Thu, 25 Apr 2024 18:31:34 -0400
Received: by mail-il1-x131.google.com with SMTP id
 e9e14a558f8ab-36b1774e453so5620835ab.1
 for <bug-gnu-emacs@HIDDEN>; Thu, 25 Apr 2024 15:31:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1714084289; x=1714689089; darn=gnu.org;
 h=to:date:message-id:subject:mime-version:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=0oOh1iZjh3BRUZv8Su+wl/j9+9vRwCaQIdvTS3ii3IY=;
 b=hnOygL3MKmYB80LxGqNiL82OJZmJ9iMj4brJoIeiFviXBT5jbLaSJn9BN7ea8k+rVk
 HY/e8ELWPdPrXBjFEstytT2pyGdBanWGpTcXFYUWM0vUa6nGCn0Inp0qK02yKKs9Zns/
 +Rqoj7PdjmwMEkDcdgDknuqKXyuhsI9erWDqCAv1Sc5ZYYN0qM+aO7JAgYjQ2BOrJiHX
 sUAhMbi9B2jZsY+83NX0ibaMiLLXUVp6pc6e/eYSqO1wZCI0iLyXDMXx9aDC3e9mojEi
 F1H/efl+FAZyHQmjYCHi3Z4+1zs6PgYe4AzWW46XTSz5a8si5+T06d3upcOEGDfzcx8h
 SxHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714084289; x=1714689089;
 h=to:date:message-id:subject:mime-version:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=0oOh1iZjh3BRUZv8Su+wl/j9+9vRwCaQIdvTS3ii3IY=;
 b=tngLpcHCUEvYSb36TztRswkIXW8MiEp5753x7g6mERtzWhEMiGuu70KkLaWxUtblCg
 Rgbqtu9nth0IfY/tdyaKaQzO0YAKsE7Ei4JlL77tq3E5hnVlkL1xNQqbRrXGjOX5Q8ai
 46RIn5Pci147ye0lTy3prtueOmGz8jRYZasAb51bB7RmmWtkB6/UHaBtng66RaQfHfzd
 HEj0e9p40RkhT5/T75MoQCdCAQzmPZh9JtlGzAh7TfqSG9e2XHQGohRYnGK8QFdswesA
 OgV9cabYHLgYy0+qlVEMQ1xDOmYbBjyueWKouX9r5AtUO06kJejSzLsIMhjSIzSmE6xq
 hVjQ==
X-Gm-Message-State: AOJu0YzJRYmdCpah8bkArtz5xwk5uXxxM6j6CVdiY/nUVBjrVBwaJMui
 PaYyV0ziiCBNajND80A67JkpYjdCbHumbzYR/D/3PQVyMkvmW8m/sHVrPA==
X-Google-Smtp-Source: AGHT+IFIS3E05/+TAi8NPhrklWTV1JRLlTfvXT6qtariDq5jJMeJ2DUU8MNXbnMqn9FmOb10jSknig==
X-Received: by 2002:a05:6e02:160f:b0:36c:f61:7648 with SMTP id
 t15-20020a056e02160f00b0036c0f617648mr1374635ilu.13.1714084289025; 
 Thu, 25 Apr 2024 15:31:29 -0700 (PDT)
Received: from smtpclient.apple (cm-24-53-187-34.buckeyecom.net.
 [24.53.187.34]) by smtp.gmail.com with ESMTPSA id
 x3-20020a92cc83000000b0036c03b1ee38sm2845306ilo.37.2024.04.25.15.31.27
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 25 Apr 2024 15:31:28 -0700 (PDT)
From: JD Smith <jdtsmith@HIDDEN>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_6D883527-1EA0-4AB0-8546-FDB9C04B9D91"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
Message-Id: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
Date: Thu, 25 Apr 2024 18:31:17 -0400
X-Mailer: Apple Mail (2.3774.500.171.1.1)
Received-SPF: pass client-ip=2607:f8b0:4864:20::131;
 envelope-from=jdtsmith@HIDDEN; helo=mail-il1-x131.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)


--Apple-Mail=_6D883527-1EA0-4AB0-8546-FDB9C04B9D91
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

repeat-mode is excellent for informal and very lightweight modal =
interfaces (great article =
<https://karthinks.com/software/it-bears-repeating/>).  One limitation =
it has compared to other such interfaces is it only mentions the keys =
which can be repeated, without providing hints about what they do. =20

A simple patch to `repeat-echo-message-strings' to support displaying a =
string for keymap definitions of form (STRING . DEFN) is below.  It =
works nicely to provide "hints" after each repeat key, if the keymap =
includes them.

Example usage:

(defvar-keymap expreg-repeat-map
    :doc "Repeat map for `expreg' actions."
    :repeat t
    :name "expreg"
    "\\" (cons "expand" 'expreg-expand)
    "|"  (cons "contract"  'expreg-contract))

Example prompt (after one invocation of `expreg-expand'):=20

 Repeat with \:expand, |:contract

It might also be useful to provide a custom variable by which a user can =
disable hint strings, for the experts/minimalists..

Patch:

--- repeat_old.el	2024-04-25 18:22:59
+++ repeat.el	2024-04-25 18:09:11
@@ -553,12 +553,20 @@
 (defun repeat-echo-message-string (keymap)
   "Return a string with the list of repeating keys in KEYMAP."
   (let (keys)
-    (map-keymap (lambda (key cmd) (and cmd (push key keys))) keymap)
+    (map-keymap (lambda (key cmd)
+		  (if (consp cmd)
+		      (push (cons (car cmd) key) keys)
+		    (when cmd (push key keys))))
+		keymap)
     (format-message "Repeat with %s%s"
                     (mapconcat (lambda (key)
-                                 (substitute-command-keys
-                                  (format "\\`%s'"
-                                          (key-description (vector =
key)))))
+				 (let* ((cmd (when (consp key) (format =
":%s" (car key)))))
+				   (if (consp key) (setq key (cdr key)))
+				   (concat
+				    (substitute-command-keys
+				     (format "\\`%s'"
+					     (key-description (vector =
key))))
+				    cmd)))
                                keys ", ")
                     (if repeat-exit-key
                         (substitute-command-keys


--Apple-Mail=_6D883527-1EA0-4AB0-8546-FDB9C04B9D91
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: =
after-white-space;"><div>repeat-mode is excellent for informal and very =
lightweight modal interfaces (<a =
href=3D"https://karthinks.com/software/it-bears-repeating/">great =
article</a>). &nbsp;One limitation it has compared to other such =
interfaces is it only mentions the keys which can be repeated, without =
providing hints about what they do. &nbsp;</div><div><br></div><div>A =
simple patch to `repeat-echo-message-strings' to support displaying a =
string for&nbsp;<span style=3D"caret-color: rgb(0, 0, 0); color: rgb(0, =
0, 0);">keymap definitions of form</span>&nbsp;(STRING . DEFN) is below. =
&nbsp;It works nicely to provide "hints" after each repeat key, if the =
keymap includes them.</div><div><br></div><div>Example =
usage:</div><div><br></div><blockquote style=3D"margin: 0 0 0 40px; =
border: none; padding: 0px;"><div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">(defvar-keymap =
expreg-repeat-map</span></font></p></div></div><div><p style=3D"margin: =
0px; font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; :doc "Repeat map for `expreg' =
actions."</span></font></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; :repeat t</span></font></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; :name =
"expreg"</span></font></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; "\\" (cons "expand" =
'expreg-expand)</span></font></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; "|" &nbsp;(cons "contract" =
&nbsp;'expreg-contract))</span></font></p></div></blockquote><div><br></di=
v><div>Example prompt (after one invocation of =
`expreg-expand'):&nbsp;</div><div><br></div><blockquote style=3D"margin: =
0 0 0 40px; border: none; padding: 0px;"><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: =
no-common-ligatures;">&nbsp;</span><span style=3D"caret-color: rgb(0, 0, =
0); color: rgb(0, 0, 0);">Repeat with \:expand, =
|:contract</span></p></div></blockquote><div><br></div><div><span =
style=3D"caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">It might also =
be useful to provide a custom variable by which a user can disable hint =
strings, for the =
experts/minimalists..</span></div><div><br></div><div>Patch:</div><div><br=
></div><blockquote style=3D"margin: 0 0 0 40px; border: none; padding: =
0px;"><div><div><div><p style=3D"margin: 0px; font-stretch: normal; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">--- =
repeat_old.el<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>2024-04-25 18:22:59</span></p></div></div></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+++ repeat.el<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>2024-04-25 18:09:11</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">@@ -553,12 +553,20 =
@@</span></p></div><div><p style=3D"margin: 0px; font-stretch: normal; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;(defun =
repeat-echo-message-string (keymap)</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
"Return a string with the list of repeating keys in =
KEYMAP."</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; (let =
(keys)</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">-&nbsp; &nbsp; =
(map-keymap (lambda (key cmd) (and cmd (push key keys))) =
keymap)</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+&nbsp; &nbsp; =
(map-keymap (lambda (key cmd)</span></p></div><div><p style=3D"margin: =
0px; font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>&nbsp; (if (consp cmd)</span></p></div><div><p style=3D"margin: =
0px; font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>&nbsp; &nbsp; &nbsp; (push (cons (car cmd) key) =
keys)</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>&nbsp; &nbsp; (when cmd (push key =
keys))))</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>keymap)</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
&nbsp; (format-message "Repeat with %s%s"</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
(mapconcat (lambda (key)</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">- &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
(substitute-command-keys</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">-&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (format =
"\\`%s'"</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">-&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
(key-description (vector key)))))</span></p></div><div><p style=3D"margin:=
 0px; font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span> (let* ((cmd (when (consp key) (format ":%s" (car =
key)))))</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span> &nbsp; (if (consp key) (setq key (cdr =
key)))</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span> &nbsp; (concat</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span>&nbsp; &nbsp; (substitute-command-keys</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span> &nbsp; &nbsp; (format "\\`%s'"</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
	</span> &nbsp; &nbsp; (key-description (vector =
key))))</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span>&nbsp; &nbsp; cmd)))</span></p></div><div><p style=3D"margin: =
0px; font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; keys ", ")</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (if =
repeat-exit-key</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; (substitute-command-keys</span></p></div></blockquote><div><span =
style=3D"font-variant-ligatures: =
no-common-ligatures"><br></span></div></body></html>=

--Apple-Mail=_6D883527-1EA0-4AB0-8546-FDB9C04B9D91--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: JD Smith <jdtsmith@HIDDEN>
Subject: bug#70576: Acknowledgement ([PATCH] `repeat-echo-message-string':
 support repeat keymap "hints")
Message-ID: <handler.70576.B.171408434514078.ack <at> debbugs.gnu.org>
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
X-Gnu-PR-Message: ack 70576
X-Gnu-PR-Package: emacs
X-Gnu-PR-Keywords: patch
Reply-To: 70576 <at> debbugs.gnu.org
Date: Thu, 25 Apr 2024 22:33:07 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 70576 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
70576: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D70576
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 26 Apr 2024 06:13:12 +0000
Resent-Message-ID: <handler.70576.B70576.171411193225489 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: JD Smith <jdtsmith@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.171411193225489
          (code B ref 70576); Fri, 26 Apr 2024 06:13:12 +0000
Received: (at 70576) by debbugs.gnu.org; 26 Apr 2024 06:12:12 +0000
Received: from localhost ([127.0.0.1]:33630 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s0EoZ-0006cN-4o
	for submit <at> debbugs.gnu.org; Fri, 26 Apr 2024 02:12:10 -0400
Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:35491)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s0EoO-0006Yu-Qm
 for 70576 <at> debbugs.gnu.org; Fri, 26 Apr 2024 02:12:01 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 64FF0E0007;
 Fri, 26 Apr 2024 06:11:29 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN> (JD Smith's
 message of "Thu, 25 Apr 2024 18:31:17 -0400")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
Date: Fri, 26 Apr 2024 09:06:29 +0300
Message-ID: <86h6fo3e7e.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> Example usage:
>
> (defvar-keymap expreg-repeat-map
>     :doc "Repeat map for `expreg' actions."
>     :repeat t
>     :name "expreg"
>     "\\" (cons "expand" 'expreg-expand)
>     "|"  (cons "contract"  'expreg-contract))

I feel uneasy about reusing the form (STRING . DEFN)
that has another meaning:

 a cons (STRING . DEFN), meaning that DEFN is the definition
    (DEFN should be a valid definition in its own right) and
    STRING is the menu item name (which is used only if the containing
    keymap has been created with a menu name, see make-keymap),

Can the same instead be achieved by using symbol properties?
For example:

(defvar-keymap expreg-repeat-map
    :doc "Repeat map for `expreg' actions."
    :repeat t
    :name "expreg"
    "\\" 'expreg-expand
    "|"  'expreg-contract)

(put 'expreg-expand 'repeat-hint "expand")
(put 'expreg-contract 'repeat-hint "contract")




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: JD Smith <jdtsmith@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 26 Apr 2024 14:39:04 +0000
Resent-Message-ID: <handler.70576.B70576.171414231631794 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Juri Linkov <juri@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.171414231631794
          (code B ref 70576); Fri, 26 Apr 2024 14:39:04 +0000
Received: (at 70576) by debbugs.gnu.org; 26 Apr 2024 14:38:36 +0000
Received: from localhost ([127.0.0.1]:38185 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s0Mif-0008GQ-PR
	for submit <at> debbugs.gnu.org; Fri, 26 Apr 2024 10:38:36 -0400
Received: from mail-io1-xd29.google.com ([2607:f8b0:4864:20::d29]:49248)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jdtsmith@HIDDEN>) id 1s0MiY-0008Dy-TL
 for 70576 <at> debbugs.gnu.org; Fri, 26 Apr 2024 10:38:30 -0400
Received: by mail-io1-xd29.google.com with SMTP id
 ca18e2360f4ac-7d9e70f388fso91464539f.2
 for <70576 <at> debbugs.gnu.org>; Fri, 26 Apr 2024 07:38:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1714142282; x=1714747082; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=AzlSI8cA4gY/voByQYhST5zEwzpeniQol+QJfrvWxkM=;
 b=OggZKRbTvqnQssQE0qpYzVMDaU+IZ2b6trJf5hOaz1HVf85LFMTesRdzwx8l+zoVeo
 k5AEsjz72HnAiTTOnqi81WxPOlBY9v47myGu2CMvzELYJ3PY1FEmX9cbjAJDyCmAL/hw
 pmhxxSbqUPjdHzNf0CLZTs3+uqnX058Zy8IzKKuJXcazsmh58FGMU805jskE4f5+ql52
 EyWBi0LD8k6DTIFn5o2Yifg9WG1KS8DQQwORNHGgNqMjXHeY5MF5fq8fVQm0aGIVo/zE
 nVYWJEvWnjRmpLFsX+ayXBg7TshChfpVPGlDB/phFE0VRfH5QV77/2zM+agBRqsvsUiJ
 2ynA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714142282; x=1714747082;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=AzlSI8cA4gY/voByQYhST5zEwzpeniQol+QJfrvWxkM=;
 b=FzOOGkdo1yar6wYNDd3WojWdBsUydIz+SQSh3whWvg9L05QLFEIjxAWbnijeBuL6SE
 GByCVAoQUtB1HqswglrH/yy4IECt/ZQPdh5CerAlPcXSIi7wIqsZN/GWs05jp7DuDVsw
 8T/RiqU0NrPj0IkhBBvfz3jVhjuaG0fm0DTHw4NhiskX6wN25pnZ2TZRjlmnE+2kFMzR
 wFDCDblHPgpPxhPLHHhB6mSPPtap52LXlmpFEEmUXRLS5LQi++u27n3E3CnWCEVtIn8H
 w2oXwsGPcK6hfdjoYWg1D16TZcvdEANPwc7mcJK6nTIvWFj+oaEtMDoPIE3b+0lM+crv
 3Hvw==
X-Gm-Message-State: AOJu0YxoeseH1LMd8mPNFL8yS5fqXtiZt0++yZ1iOOAuddZqvGnCZkbo
 QaPhJHJcZInnDmBAHVS5Z4PcXht6SJ7erEm0CcgWUoOebBQ2Rx7KqM/imw==
X-Google-Smtp-Source: AGHT+IGvXVCGIHAxNGYtHqfAO8HCl3gTfSsWM8z8dhTTtE1kNUkdjZZFDVGvUQ05mqi1a1hPnwbMjA==
X-Received: by 2002:a6b:7508:0:b0:7da:19a5:625a with SMTP id
 l8-20020a6b7508000000b007da19a5625amr2867511ioh.21.1714142282535; 
 Fri, 26 Apr 2024 07:38:02 -0700 (PDT)
Received: from smtpclient.apple (cm-24-53-187-34.buckeyecom.net.
 [24.53.187.34]) by smtp.gmail.com with ESMTPSA id
 l1-20020a056638144100b00484fbf1bea4sm4245842jad.176.2024.04.26.07.38.01
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 26 Apr 2024 07:38:02 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
From: JD Smith <jdtsmith@HIDDEN>
In-Reply-To: <86h6fo3e7e.fsf@HIDDEN>
Date: Fri, 26 Apr 2024 10:37:51 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3774.500.171.1.1)
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


> On Apr 26, 2024, at 2:06=E2=80=AFAM, Juri Linkov <juri@HIDDEN> =
wrote:
>=20
> I feel uneasy about reusing the form (STRING . DEFN)
> that has another meaning:
>=20
> a cons (STRING . DEFN), meaning that DEFN is the definition
>    (DEFN should be a valid definition in its own right) and
>    STRING is the menu item name (which is used only if the containing
>    keymap has been created with a menu name, see make-keymap),
>=20
> Can the same instead be achieved by using symbol properties?
> For example:

> (defvar-keymap expreg-repeat-map
>    :doc "Repeat map for `expreg' actions."
>    :repeat t
>    "\\" 'expreg-expand
>    "|"  'expreg-contract)
>=20
> (put 'expreg-expand 'repeat-hint "expand")
> (put 'expreg-contract 'repeat-hint "contract")


Thanks for taking a look.  A property on the command could work (and =
then you need no :name).  It would be somewhat harder to maintain the =
structure for long keymaps, e.g. if a command changes.  I do note that =
menu-item with :filter is commonly recommended for non-menu dynamic =
bindings, so there is some precedent of reusing menu functionality in =
other contexts.  Of course a new wrapper macro could also be developed =
to ease this.  Do you anticipate any specific issues?






Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 28 Apr 2024 07:18:02 +0000
Resent-Message-ID: <handler.70576.B70576.17142886588873 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: JD Smith <jdtsmith@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.17142886588873
          (code B ref 70576); Sun, 28 Apr 2024 07:18:02 +0000
Received: (at 70576) by debbugs.gnu.org; 28 Apr 2024 07:17:38 +0000
Received: from localhost ([127.0.0.1]:50018 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s0yn3-0002J3-KM
	for submit <at> debbugs.gnu.org; Sun, 28 Apr 2024 03:17:38 -0400
Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]:35735)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s0ymy-0002Iv-B9
 for 70576 <at> debbugs.gnu.org; Sun, 28 Apr 2024 03:17:36 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 69B65FF802;
 Sun, 28 Apr 2024 07:17:03 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN> (JD Smith's
 message of "Fri, 26 Apr 2024 10:37:51 -0400")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
Date: Sun, 28 Apr 2024 09:58:10 +0300
Message-ID: <86cyqaezhc.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> (defvar-keymap expreg-repeat-map
>>    :doc "Repeat map for `expreg' actions."
>>    :repeat t
>>    "\\" 'expreg-expand
>>    "|"  'expreg-contract)
>>
>> (put 'expreg-expand 'repeat-hint "expand")
>> (put 'expreg-contract 'repeat-hint "contract")
>
> Thanks for taking a look.  A property on the command could work (and then
> you need no :name).  It would be somewhat harder to maintain the structure
> for long keymaps, e.g. if a command changes.  I do note that menu-item with
> :filter is commonly recommended for non-menu dynamic bindings, so there is
> some precedent of reusing menu functionality in other contexts.

As a more complicated feature, usually :filter is added by developers for
specific functionality, it's not intended to be used by users in their normal
customization of keymaps, like users will configure hints.

> Of course a new wrapper macro could also be developed to ease this.
> Do you anticipate any specific issues?

Here is what I recommend to do to simplify the definition of hints for users.

Like there can be a list of enter and exit commands in 'defvar-keymap':

  :repeat ‘(:enter (commands ...) :exit (commands ...))’

the same list could be used for hints:

  :repeat ‘(:enter (commands ...) :exit (commands ...) :hints ((command . hint) ...))’

This should be easier to document and to understand by users than
a special syntax of cons for binding and the requirement to add :name.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: JD Smith <jdtsmith@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 28 Apr 2024 12:46:01 +0000
Resent-Message-ID: <handler.70576.B70576.17143083603281 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Juri Linkov <juri@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.17143083603281
          (code B ref 70576); Sun, 28 Apr 2024 12:46:01 +0000
Received: (at 70576) by debbugs.gnu.org; 28 Apr 2024 12:46:00 +0000
Received: from localhost ([127.0.0.1]:50252 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s13up-0000qr-RS
	for submit <at> debbugs.gnu.org; Sun, 28 Apr 2024 08:46:00 -0400
Received: from mail-il1-x12a.google.com ([2607:f8b0:4864:20::12a]:60498)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jdtsmith@HIDDEN>) id 1s13um-0000qh-WB
 for 70576 <at> debbugs.gnu.org; Sun, 28 Apr 2024 08:45:58 -0400
Received: by mail-il1-x12a.google.com with SMTP id
 e9e14a558f8ab-36a17999886so16280975ab.0
 for <70576 <at> debbugs.gnu.org>; Sun, 28 Apr 2024 05:45:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1714308332; x=1714913132; darn=debbugs.gnu.org;
 h=references:to:cc:in-reply-to:date:subject:mime-version:message-id
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=MSnF+pELIq3jWiHyvCpXIqvscNlVq6H37AqU8We/+Pk=;
 b=h5/BPzlu+2x/yl9Wrn89+9j/hpReP4KJAdqi/xXlXgvzYEZtIUMmjsi9okF8d7+5HN
 6vTrXYYGjJiJ03wbt9C2qmJBDh2N2uWPKHxTSInBkrDmNJY80C/VFHwMu2zDjzT/GwfP
 sU3Z2SS4hNjJD+EbD7ZPFUyWLsZqXCBHrBAniWbpePsYV8VQINnYCFuGFa74+Wh1aJ8P
 zPbqCrV9FjpoeE8gJuhV/folpTZNtvud96kochdibc2a79VNgRnBuZ43d1d5Ng0nD4uY
 XoLRB1UPT9ohJN1frtumZ9TxTkT7mF1PmfeRj0X74zOqBQbU4kWu3w8y9j4TsugliBR3
 9oqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714308332; x=1714913132;
 h=references:to:cc:in-reply-to:date:subject:mime-version:message-id
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=MSnF+pELIq3jWiHyvCpXIqvscNlVq6H37AqU8We/+Pk=;
 b=gvd6gIMcTY6itj3dszTsFySd2RjntT8Kvq8dJXcswsgTRT1s/2axNPkhm1ASGrhcGV
 +ohz4QntHKZkgStT/iGRujJq1SU02JRETvzchtgTZVS2n8t4i/EaRd418E5tb9sYdO0A
 0bicopaf9rnoxuyldXUKLqf8os8gtWRchA7PQhrSacQenpf6biJ9aomYT7n3a+QFI09V
 BICTeLsDiSl71gkj0w0PF1vPNOE0ilCX+zO8iXzAr1zyZJSmhvRvSHdR+x/rBdJfe5pF
 4j0c74v3n6MmHdafm5+n5hU6WvS3+ERz/AZwojQfmYBAlvF24HSjXQMd2xsuPQOBuKNp
 LrGg==
X-Gm-Message-State: AOJu0YzGTKjCDAgSEGSlRVwEHE7MCbTItfNMpHHGJfXjV1k9BO/+XdtD
 Y1zK/f1W09cZwmyi4NVu3Fqsb3YUfhXWDo9HMcceCys/Pt+TFU4n
X-Google-Smtp-Source: AGHT+IE6x3QojzIDUYrLvJ98SuwNzDDbcRyl6XviCHijDr0hwM8Y8oU7QvQEZeKWI9NOvgVBjkgyrA==
X-Received: by 2002:a05:6e02:214c:b0:36c:c9f:ccd0 with SMTP id
 d12-20020a056e02214c00b0036c0c9fccd0mr9478394ilv.17.1714308330586; 
 Sun, 28 Apr 2024 05:45:30 -0700 (PDT)
Received: from smtpclient.apple (cm-24-53-187-34.buckeyecom.net.
 [24.53.187.34]) by smtp.gmail.com with ESMTPSA id
 dk8-20020a0566384bc800b00484a3e77318sm6601978jab.58.2024.04.28.05.45.29
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sun, 28 Apr 2024 05:45:30 -0700 (PDT)
From: JD Smith <jdtsmith@HIDDEN>
Message-Id: <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_816F47B3-3BCE-41B4-9AB6-003C31D9EC95"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
Date: Sun, 28 Apr 2024 08:45:19 -0400
In-Reply-To: <86cyqaezhc.fsf@HIDDEN>
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3774.500.171.1.1)
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


--Apple-Mail=_816F47B3-3BCE-41B4-9AB6-003C31D9EC95
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8



> On Apr 28, 2024, at 2:58=E2=80=AFAM, Juri Linkov <juri@HIDDEN> =
wrote
>> Of course a new wrapper macro could also be developed to ease this.
>> Do you anticipate any specific issues?
>=20
> Here is what I recommend to do to simplify the definition of hints for =
users.
>=20
> Like there can be a list of enter and exit commands in =
'defvar-keymap':
>=20
>  :repeat =E2=80=98(:enter (commands ...) :exit (commands ...))=E2=80=99
>=20
> the same list could be used for hints:
>=20
>  :repeat =E2=80=98(:enter (commands ...) :exit (commands ...) :hints =
((command . hint) ...))=E2=80=99
>=20
> This should be easier to document and to understand by users than
> a special syntax of cons for binding and the requirement to add :name.

Though it will require repetition and thus be subject to =
changed-here-but-not-there errors, this does look good and nicely groups =
the information under :repeat.  So this should work for all commands in =
the keymap:

> (defvar-keymap expreg-repeat-map
>    :doc "Repeat map for `expreg' actions."
>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . =
"contract")))
>    "\\" 'expreg-expand
>    "|"  'expreg-contract)


If a hint is missing for a command, it should just have its key =
mentioned.  It looks like your idea would require changes to =
defvar-keymap.  Do you want to propose a patch?  We'd need some way to =
pass the hints in; perhaps the macro could set a property on the command =
symbol as you initially proposed.=

--Apple-Mail=_816F47B3-3BCE-41B4-9AB6-003C31D9EC95
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;"><br =
id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote =
type=3D"cite"><div>On Apr 28, 2024, at 2:58=E2=80=AFAM, Juri Linkov =
&lt;juri@HIDDEN&gt; wrote</div></blockquote><blockquote =
type=3D"cite"><div><blockquote type=3D"cite" style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;">Of course a new wrapper macro could also be =
developed to ease this.<br>Do you anticipate any specific =
issues?<br></blockquote><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">Here is =
what I recommend to do to simplify the definition of hints for =
users.</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;"><br style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;"><span style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;">Like there can be a list =
of enter and exit commands in 'defvar-keymap':</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">&nbsp;:repeat =E2=80=98(:enter (commands =
...) :exit (commands ...))=E2=80=99</span><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">the =
same list could be used for hints:</span><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline =
!important;">&nbsp;:repeat =E2=80=98(:enter (commands ...) :exit =
(commands ...) :hints ((command . hint) ...))=E2=80=99</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">This should be easier to document and to =
understand by users than</span><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">a =
special syntax of cons for binding and the requirement to add =
:name.</span></div></blockquote></div><br><div>Though it will require =
repetition and thus be subject to changed-here-but-not-there errors, =
this does look good and nicely groups the information under :repeat. =
&nbsp;So this should work for all commands in the =
keymap:</div><div><br></div><div><blockquote type=3D"cite" =
style=3D"caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">(defvar-keymap =
expreg-repeat-map<br>&nbsp;&nbsp;&nbsp;:doc "Repeat map for `expreg' =
actions."<br>&nbsp;&nbsp;&nbsp;:repeat '(:hints ((expreg-expand . =
"expand") (expreg-contract . "contract")))</blockquote><blockquote =
type=3D"cite" style=3D"caret-color: rgb(0, 0, 0); color: rgb(0, 0, =
0);">&nbsp;&nbsp;&nbsp;"\\" 'expreg-expand<br>&nbsp;&nbsp;&nbsp;"|" =
&nbsp;'expreg-contract)</blockquote></div><div><br></div><div>If a hint =
is missing for a command, it should just have its key mentioned. =
&nbsp;It looks like your idea would require changes to defvar-keymap. =
&nbsp;Do you want to propose a patch? &nbsp;We'd need some way to pass =
the hints in; perhaps the macro could set a property on the command =
symbol as you initially proposed.</div></body></html>=

--Apple-Mail=_816F47B3-3BCE-41B4-9AB6-003C31D9EC95--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 28 Apr 2024 17:08:02 +0000
Resent-Message-ID: <handler.70576.B70576.17143240765555 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: JD Smith <jdtsmith@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.17143240765555
          (code B ref 70576); Sun, 28 Apr 2024 17:08:02 +0000
Received: (at 70576) by debbugs.gnu.org; 28 Apr 2024 17:07:56 +0000
Received: from localhost ([127.0.0.1]:51266 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s180J-0001RX-V5
	for submit <at> debbugs.gnu.org; Sun, 28 Apr 2024 13:07:56 -0400
Received: from relay4-d.mail.gandi.net ([217.70.183.196]:44395)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s180H-0001RN-J9
 for 70576 <at> debbugs.gnu.org; Sun, 28 Apr 2024 13:07:54 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id CBCBAE0003;
 Sun, 28 Apr 2024 17:07:26 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN> (JD Smith's
 message of "Sun, 28 Apr 2024 08:45:19 -0400")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
Date: Sun, 28 Apr 2024 19:38:38 +0300
Message-ID: <86ttjle92p.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain

>> (defvar-keymap expreg-repeat-map
>>    :doc "Repeat map for `expreg' actions."
>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
>>    "\\" 'expreg-expand
>>    "|"  'expreg-contract)
>
> If a hint is missing for a command, it should just have its key mentioned.
> It looks like your idea would require changes to defvar-keymap.  Do you
> want to propose a patch?  We'd need some way to pass the hints in; perhaps
> the macro could set a property on the command symbol as you initially
> proposed.

Alright, let's add this to defvar-keymap.  Please try the following patch.

PS: Do you still think a new custom variable should be added to be able to
disable hint strings?


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=repeat-hint.patch

diff --git a/lisp/keymap.el b/lisp/keymap.el
index b2b475c7d71..cbd26f1060e 100644
--- a/lisp/keymap.el
+++ b/lisp/keymap.el
@@ -603,10 +603,11 @@ defvar-keymap
 symbol property.
 
 More control is available over which commands are repeatable; the
-value can also be a property list with properties `:enter' and
-`:exit', for example:
+value can also be a property list with properties `:enter',
+`:exit' and `:hints', for example:
 
-     :repeat (:enter (commands ...) :exit (commands ...))
+     :repeat (:enter (commands ...) :exit (commands ...)
+              :hints ((command . \"hint\") ...))
 
 `:enter' specifies the list of additional commands that only
 enter `repeat-mode'.  When the list is empty, then only the
@@ -621,6 +622,10 @@ defvar-keymap
 in this specific map, but should not have the `repeat-map' symbol
 property.
 
+`:hints' is a list of cons pairs where car is a command and
+cdr is a string that is displayed alongside of the repeatable key
+in the echo area.
+
 \(fn VARIABLE-NAME &key DOC FULL PARENT SUPPRESS NAME PREFIX KEYMAP REPEAT &rest [KEY DEFINITION]...)"
   (declare (indent 1))
   (let ((opts nil)
@@ -660,7 +665,9 @@ defvar-keymap
           (setq def (pop defs))
           (when (and (memq (car def) '(function quote))
                      (not (memq (cadr def) (plist-get repeat :exit))))
-            (push `(put ,def 'repeat-map ',variable-name) props)))))
+            (push `(put ,def 'repeat-map ',variable-name) props)))
+        (dolist (def (plist-get repeat :hints))
+          (push `(put ',(car def) 'repeat-hint ',(cdr def)) props))))
 
     (let ((defvar-form
            `(defvar ,variable-name
diff --git a/lisp/repeat.el b/lisp/repeat.el
index 0a59494c097..b9c96fa4e12 100644
--- a/lisp/repeat.el
+++ b/lisp/repeat.el
@@ -553,20 +553,27 @@ repeat--clear-prev
 (defun repeat-echo-message-string (keymap)
   "Return a string with the list of repeating keys in KEYMAP."
   (let (keys)
-    (map-keymap (lambda (key cmd) (and cmd (push key keys))) keymap)
-    (format-message "Repeat with %s%s"
-                    (mapconcat (lambda (key)
-                                 (substitute-command-keys
-                                  (format "\\`%s'"
-                                          (key-description (vector key)))))
-                               keys ", ")
-                    (if repeat-exit-key
-                        (substitute-command-keys
-                         (format ", or exit with \\`%s'"
-                                 (if (key-valid-p repeat-exit-key)
-                                     repeat-exit-key
-                                   (key-description repeat-exit-key))))
-                      ""))))
+    (map-keymap (lambda (key cmd) (and cmd (push (cons key cmd) keys)))
+                keymap)
+    (format-message
+     "Repeat with %s%s"
+     (mapconcat (lambda (key-cmd)
+                  (let* ((key (car key-cmd))
+                         (cmd (cdr key-cmd))
+                         (hint (when (symbolp cmd)
+                                 (get cmd 'repeat-hint))))
+                    (substitute-command-keys
+                     (format "\\`%s'%s"
+                             (key-description (vector key))
+                             (if hint (format "(%s)" hint) "")))))
+                keys ", ")
+     (if repeat-exit-key
+         (substitute-command-keys
+          (format ", or exit with \\`%s'"
+                  (if (key-valid-p repeat-exit-key)
+                      repeat-exit-key
+                    (key-description repeat-exit-key))))
+       ""))))
 
 (defun repeat-echo-message (keymap)
   "Display in the echo area the repeating keys defined by KEYMAP.

--=-=-=--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 02 May 2024 06:49:02 +0000
Resent-Message-ID: <handler.70576.B70576.171463253928239 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: JD Smith <jdtsmith@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.171463253928239
          (code B ref 70576); Thu, 02 May 2024 06:49:02 +0000
Received: (at 70576) by debbugs.gnu.org; 2 May 2024 06:48:59 +0000
Received: from localhost ([127.0.0.1]:41908 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2QFW-0007LP-SJ
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 02:48:59 -0400
Received: from relay5-d.mail.gandi.net ([217.70.183.197]:37817)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>)
 id 1s2QFU-0007LG-U2; Thu, 02 May 2024 02:48:57 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 103BE1C0005;
 Thu,  2 May 2024 06:48:27 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86ttjle92p.fsf@HIDDEN> (Juri Linkov's message of "Sun, 
 28 Apr 2024 19:38:38 +0300")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN>
Date: Thu, 02 May 2024 09:48:06 +0300
Message-ID: <86zft8676h.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

close 70576 30.0.50
thanks

>>> (defvar-keymap expreg-repeat-map
>>>    :doc "Repeat map for `expreg' actions."
>>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
>>>    "\\" 'expreg-expand
>>>    "|"  'expreg-contract)
>>
>> If a hint is missing for a command, it should just have its key mentioned.
>> It looks like your idea would require changes to defvar-keymap.  Do you
>> want to propose a patch?  We'd need some way to pass the hints in; perhaps
>> the macro could set a property on the command symbol as you initially
>> proposed.
>
> Alright, let's add this to defvar-keymap.  Please try the following patch.

Thanks for the feature request.  This is pushed now.




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 2 May 2024 06:48:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 02 02:48:59 2024
Received: from localhost ([127.0.0.1]:41910 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2QFX-0007LV-75
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 02:48:59 -0400
Received: from relay5-d.mail.gandi.net ([217.70.183.197]:37817)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>)
 id 1s2QFU-0007LG-U2; Thu, 02 May 2024 02:48:57 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 103BE1C0005;
 Thu,  2 May 2024 06:48:27 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: JD Smith <jdtsmith@HIDDEN>
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
In-Reply-To: <86ttjle92p.fsf@HIDDEN> (Juri Linkov's message of "Sun, 
 28 Apr 2024 19:38:38 +0300")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN>
Date: Thu, 02 May 2024 09:48:06 +0300
Message-ID: <86zft8676h.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: control
Cc: 70576 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

close 70576 30.0.50
thanks

>>> (defvar-keymap expreg-repeat-map
>>>    :doc "Repeat map for `expreg' actions."
>>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
>>>    "\\" 'expreg-expand
>>>    "|"  'expreg-contract)
>>
>> If a hint is missing for a command, it should just have its key mentioned.
>> It looks like your idea would require changes to defvar-keymap.  Do you
>> want to propose a patch?  We'd need some way to pass the hints in; perhaps
>> the macro could set a property on the command symbol as you initially
>> proposed.
>
> Alright, let's add this to defvar-keymap.  Please try the following patch.

Thanks for the feature request.  This is pushed now.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 02 May 2024 07:18:02 +0000
Resent-Message-ID: <handler.70576.B70576.17146342417395 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Juri Linkov <juri@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@HIDDEN
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.17146342417395
          (code B ref 70576); Thu, 02 May 2024 07:18:02 +0000
Received: (at 70576) by debbugs.gnu.org; 2 May 2024 07:17:21 +0000
Received: from localhost ([127.0.0.1]:42033 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2Qgy-0001vD-NO
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 03:17:21 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:40618)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s2Qgx-0001v7-Fc
 for 70576 <at> debbugs.gnu.org; Thu, 02 May 2024 03:17:20 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1s2QgV-0003n4-FV; Thu, 02 May 2024 03:16:51 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=u14/Dpnd3IOjArW40WtYhvmL4kosZY7jmh/zHqHnB5o=; b=pVF19R2Qh1Fi
 BCZuxc8oszRfQz8e5vMD3Js3tpWG5DHakWvhqp0/v3jUnCyIOK8CmSMpgU6qR1d5OIJgjFyPwnCbs
 3PIiX+E3qY8GZ2JKvsnH9QUJcZYEwc6TkwTcE5KhMbHv6L9Rke1ZlKJaJGWkeu0tu9dDY5SHWYSi6
 NBufeGGwMAMYohZ6bs7so75mEi19kGv5ZT9SCBnvIQTKygE9mCsaamHYwppKHv99Kn6nOorhqDHxR
 SOVHs/E3RWUD8Ch/qUEZFURMFlJ24CAk3vZHCgGC/5IZt9dw7khdG3FGjs+N4sAgAoUByYqx1/v85
 2l/W90ilBBufDhDaXlbOdA==;
Date: Thu, 02 May 2024 10:16:47 +0300
Message-Id: <86r0ekn0o0.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <86zft8676h.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 02 May 2024 09:48:06 +0300)
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: 70576 <at> debbugs.gnu.org
> From: Juri Linkov <juri@HIDDEN>
> Date: Thu, 02 May 2024 09:48:06 +0300
> 
> close 70576 30.0.50
> thanks
> 
> >>> (defvar-keymap expreg-repeat-map
> >>>    :doc "Repeat map for `expreg' actions."
> >>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
> >>>    "\\" 'expreg-expand
> >>>    "|"  'expreg-contract)
> >>
> >> If a hint is missing for a command, it should just have its key mentioned.
> >> It looks like your idea would require changes to defvar-keymap.  Do you
> >> want to propose a patch?  We'd need some way to pass the hints in; perhaps
> >> the macro could set a property on the command symbol as you initially
> >> proposed.
> >
> > Alright, let's add this to defvar-keymap.  Please try the following patch.
> 
> Thanks for the feature request.  This is pushed now.

Thanks, but please also update the ELisp manual and add an entry to
NEWS about this change.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: JD Smith <jdtsmith@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 02 May 2024 11:49:02 +0000
Resent-Message-ID: <handler.70576.B70576.17146504976782 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Juri Linkov <juri@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.17146504976782
          (code B ref 70576); Thu, 02 May 2024 11:49:02 +0000
Received: (at 70576) by debbugs.gnu.org; 2 May 2024 11:48:17 +0000
Received: from localhost ([127.0.0.1]:43291 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2UvA-0001lK-Rq
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 07:48:17 -0400
Received: from mail-il1-x12f.google.com ([2607:f8b0:4864:20::12f]:57551)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jdtsmith@HIDDEN>) id 1s2Uv6-0001l8-Lw
 for 70576 <at> debbugs.gnu.org; Thu, 02 May 2024 07:48:15 -0400
Received: by mail-il1-x12f.google.com with SMTP id
 e9e14a558f8ab-36c72d287f8so1811355ab.2
 for <70576 <at> debbugs.gnu.org>; Thu, 02 May 2024 04:47:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1714650465; x=1715255265; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=/7wVkSw34x+e5RumE0GpmaHdtTWYQPx0EhkJwwxkP5M=;
 b=JodsAXFZHA4ulI2+Arz+FUHe9UuFeWTqkwUwTzr0EP9XS9cWBuX/w1rK0M6ecmLIuy
 +owKIXX4tRZ2DAwX4iNh4nXVrvy5iR5qFfKHIWc3aAJSlRi3absMrupGGg1TYO0yqfJn
 WOQnhPGXhoSleRklnLTNA0CwkWpBudHWl8lGNcBD9tawhQ0goiNBE4A36xCGsh1ODa7Q
 mjKQyCOIPELbkrr84o65boADaA3P7nU6w+d6tN0LHt4lQRII1B2p79S6Wol6PL+yFlYy
 tEMkoRCOJpNmRic+1mmepIdTaEKfKcHyt6nxJG3i5cHycIS27VLtAIyYtspalOcF8UUa
 Q5Iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714650465; x=1715255265;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=/7wVkSw34x+e5RumE0GpmaHdtTWYQPx0EhkJwwxkP5M=;
 b=gwixLS3on0KXqLHbLKRaxtK6nP8P7w2GphbwcFkFPytl+7ViPadOyekyoX6dPKZu20
 HhrB4xgBf/iKAnZTHnv410qIc8ESsk+6cpXNeDuryLUOkXoPpSHXZG2RsatJH5u5N2fR
 npTuYi63g2mmqlS1v5kIIggD7U8ouSXbU8ag/EIdQ6KtxF8Xw4DSXfqtpE3HA61kinlt
 mEollffU+FhUfMUiDkm2FBA5nV1uSQuTds2mOmQYphugeYCZqTzgcvRC+wlGaokFZsll
 jD2D1OUy3QDYkdu090JzuB+n2Oz56FYllypN6h8AqYPkltSyLYIvkSRzrPWVaLxX4hQk
 TOlw==
X-Gm-Message-State: AOJu0Yyd4A3jO07X3+RJjh4FCDd/oOIeJsdd4jIHGdum1L7RhVkey7+N
 x1JAkM+mWKOtBtsZC9xXq1W3LgW98JT0upyton0vNGyIONQCp+5+
X-Google-Smtp-Source: AGHT+IFCraoV+jVZPgh/tMWZbI9loypbfhUPvHgbuhFbe/f5DDCEIeL4nrzR6LrMj+O/NjNyzAB+rQ==
X-Received: by 2002:a05:6e02:1fce:b0:36c:4aba:10be with SMTP id
 dj14-20020a056e021fce00b0036c4aba10bemr2443547ilb.10.1714650463052; 
 Thu, 02 May 2024 04:47:43 -0700 (PDT)
Received: from smtpclient.apple (cm-24-53-187-34.buckeyecom.net.
 [24.53.187.34]) by smtp.gmail.com with ESMTPSA id
 q7-20020a056e0220e700b003698fc3a541sm176619ilv.80.2024.05.02.04.47.41
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 02 May 2024 04:47:42 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
From: JD Smith <jdtsmith@HIDDEN>
In-Reply-To: <86r0ekn0o0.fsf@HIDDEN>
Date: Thu, 2 May 2024 07:47:31 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <B58177E1-4B1A-4D2E-A205-0D07F6BD1B83@HIDDEN>
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3774.500.171.1.1)
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Thanks for working on this.  I'm sorry I didn't have a chance to test =
the patch, it looks good.  I don't think a disable variable is necessary =
for now, since most repeat maps are self-defined.

> On May 2, 2024, at 3:16=E2=80=AFAM, Eli Zaretskii <eliz@HIDDEN> =
wrote:
>=20
>> Cc: 70576 <at> debbugs.gnu.org
>> From: Juri Linkov <juri@HIDDEN>
>> Date: Thu, 02 May 2024 09:48:06 +0300
>>=20
>> close 70576 30.0.50
>> thanks
>>=20
>>>>> (defvar-keymap expreg-repeat-map
>>>>>   :doc "Repeat map for `expreg' actions."
>>>>>   :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . =
"contract")))
>>>>>   "\\" 'expreg-expand
>>>>>   "|"  'expreg-contract)
>>>>=20
>>>> If a hint is missing for a command, it should just have its key =
mentioned.
>>>> It looks like your idea would require changes to defvar-keymap.  Do =
you
>>>> want to propose a patch?  We'd need some way to pass the hints in; =
perhaps
>>>> the macro could set a property on the command symbol as you =
initially
>>>> proposed.
>>>=20
>>> Alright, let's add this to defvar-keymap.  Please try the following =
patch.
>>=20
>> Thanks for the feature request.  This is pushed now.
>=20
> Thanks, but please also update the ELisp manual and add an entry to
> NEWS about this change.





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 02 May 2024 16:19:02 +0000
Resent-Message-ID: <handler.70576.B70576.171466668330207 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@HIDDEN
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.171466668330207
          (code B ref 70576); Thu, 02 May 2024 16:19:02 +0000
Received: (at 70576) by debbugs.gnu.org; 2 May 2024 16:18:03 +0000
Received: from localhost ([127.0.0.1]:44665 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2Z8F-0007r9-0t
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 12:18:03 -0400
Received: from relay2-d.mail.gandi.net ([217.70.183.194]:43959)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s2Z8C-0007qk-U5
 for 70576 <at> debbugs.gnu.org; Thu, 02 May 2024 12:18:01 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 7CB0140007;
 Thu,  2 May 2024 16:17:31 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86r0ekn0o0.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 02 May
 2024 10:16:47 +0300")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN>
Date: Thu, 02 May 2024 19:16:06 +0300
Message-ID: <86sez06w59.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> >>> (defvar-keymap expreg-repeat-map
>> >>>    :doc "Repeat map for `expreg' actions."
>> >>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
>> >>>    "\\" 'expreg-expand
>> >>>    "|"  'expreg-contract)
>> >>
>> >> If a hint is missing for a command, it should just have its key mentioned.
>> >> It looks like your idea would require changes to defvar-keymap.  Do you
>> >> want to propose a patch?  We'd need some way to pass the hints in; perhaps
>> >> the macro could set a property on the command symbol as you initially
>> >> proposed.
>> >
>> > Alright, let's add this to defvar-keymap.  Please try the following patch.
>>
>> Thanks for the feature request.  This is pushed now.
>
> Thanks, but please also update the ELisp manual and add an entry to
> NEWS about this change.

A NEWS entry was already added with "---" since I didn't expect that
such a small feature that is not used anywhere needs to grow
the size of the manual.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 02 May 2024 18:16:02 +0000
Resent-Message-ID: <handler.70576.B70576.171467373218033 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Juri Linkov <juri@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@HIDDEN
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.171467373218033
          (code B ref 70576); Thu, 02 May 2024 18:16:02 +0000
Received: (at 70576) by debbugs.gnu.org; 2 May 2024 18:15:32 +0000
Received: from localhost ([127.0.0.1]:45162 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2axw-0004fW-7v
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 14:15:32 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:41170)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s2axs-0004JO-RY
 for 70576 <at> debbugs.gnu.org; Thu, 02 May 2024 14:15:31 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1s2axP-0004Ol-GL; Thu, 02 May 2024 14:15:00 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=GMbArUQ+i0BpmQWcGWA6y1vKcF9ptjwN47Iuk0yklME=; b=lxCxt/CuUfsF
 amjo37A3hKjF/ITrgt4VRFt0dyU+iRfzWZKn7BWOJ65FW/91e+hF86wqH8v71x9nCJckKU5gTDKyE
 DEvyiGjRK2YC1wEm4AJUIQ3jy0ElezW/r5odrX6IWrzKyGXy/PPzVDYfsTQwlwWCPv/pbIhu82ALf
 hHmzEsFvN2h5c1Dxkfx8d4gQEp/5cewJSx2L6cs3fqIFUfByWp/+N4jEVWgQtxaV4G9f9SGAF3A9g
 PkfqwyspYcjMCyECJk/mLzXMKcBo9NIOyZg+mc9qYbWtfzrGNBxDKZ3DDLckWHdE3s3ep5EFv7t+x
 00NPjPE5CfDoDod/v0VlYw==;
Date: Thu, 02 May 2024 21:14:29 +0300
Message-Id: <86zft8jd2y.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <86sez06w59.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 02 May 2024 19:16:06 +0300)
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN> <86sez06w59.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: jdtsmith@HIDDEN,  70576 <at> debbugs.gnu.org
> Date: Thu, 02 May 2024 19:16:06 +0300
> 
> >> >>> (defvar-keymap expreg-repeat-map
> >> >>>    :doc "Repeat map for `expreg' actions."
> >> >>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
> >> >>>    "\\" 'expreg-expand
> >> >>>    "|"  'expreg-contract)
> >> >>
> >> >> If a hint is missing for a command, it should just have its key mentioned.
> >> >> It looks like your idea would require changes to defvar-keymap.  Do you
> >> >> want to propose a patch?  We'd need some way to pass the hints in; perhaps
> >> >> the macro could set a property on the command symbol as you initially
> >> >> proposed.
> >> >
> >> > Alright, let's add this to defvar-keymap.  Please try the following patch.
> >>
> >> Thanks for the feature request.  This is pushed now.
> >
> > Thanks, but please also update the ELisp manual and add an entry to
> > NEWS about this change.
> 
> A NEWS entry was already added with "---" since I didn't expect that
> such a small feature that is not used anywhere needs to grow
> the size of the manual.

I don't see how we can avoid updating the ELisp manual, when the other
values of :repeat are already documented there, see the node "Creating
Keymaps".

So please add the description of the new value to those already
documented there.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 03 May 2024 06:26:02 +0000
Resent-Message-ID: <handler.70576.B70576.171471750630953 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@HIDDEN
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.171471750630953
          (code B ref 70576); Fri, 03 May 2024 06:26:02 +0000
Received: (at 70576) by debbugs.gnu.org; 3 May 2024 06:25:06 +0000
Received: from localhost ([127.0.0.1]:46167 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2mLx-00083B-KB
	for submit <at> debbugs.gnu.org; Fri, 03 May 2024 02:25:05 -0400
Received: from relay2-d.mail.gandi.net ([217.70.183.194]:36249)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s2mLt-00081o-BJ
 for 70576 <at> debbugs.gnu.org; Fri, 03 May 2024 02:25:04 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id D60684000A;
 Fri,  3 May 2024 06:24:32 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86zft8jd2y.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 02 May
 2024 21:14:29 +0300")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN> <86sez06w59.fsf@HIDDEN>
 <86zft8jd2y.fsf@HIDDEN>
Date: Fri, 03 May 2024 09:23:01 +0300
Message-ID: <86msp7beii.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> > Thanks, but please also update the ELisp manual and add an entry to
>> > NEWS about this change.
>>
>> A NEWS entry was already added with "---" since I didn't expect that
>> such a small feature that is not used anywhere needs to grow
>> the size of the manual.
>
> I don't see how we can avoid updating the ELisp manual, when the other
> values of :repeat are already documented there, see the node "Creating
> Keymaps".
>
> So please add the description of the new value to those already
> documented there.

Indeed, without this the manual would be incomplete, so now added as well.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#70576: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 03 May 2024 07:16:01 +0000
Resent-Message-ID: <handler.70576.B70576.171472053811771 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 70576
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Juri Linkov <juri@HIDDEN>
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@HIDDEN
Received: via spool by 70576-submit <at> debbugs.gnu.org id=B70576.171472053811771
          (code B ref 70576); Fri, 03 May 2024 07:16:01 +0000
Received: (at 70576) by debbugs.gnu.org; 3 May 2024 07:15:38 +0000
Received: from localhost ([127.0.0.1]:46198 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2n8s-00033n-7R
	for submit <at> debbugs.gnu.org; Fri, 03 May 2024 03:15:38 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:58242)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s2n8o-00033f-Tz
 for 70576 <at> debbugs.gnu.org; Fri, 03 May 2024 03:15:36 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1s2n8M-00006W-Ne; Fri, 03 May 2024 03:15:06 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=jK/oTol6jhIQL7dYPd0seJrRX/enMZzbVJEoO6+Hx10=; b=CW5d67H3KsA0
 K6+A2NW/7HmjxKvtNQ7LfGPuGbqYHBYswvt06zbMHG1iIucJ7KDZwR3esGDPAQfRTqKQfvnIJyz8+
 ILbaiRWhzCtQkdghoJbvS3d+/si50FnGv4xtB5U3yrQR58123OFKIRELSXGKDSrdgpWyZXrh/fsGz
 2LvhqCn3yLVcPctEVoaS/ecTkFGd2lncoiHVKQ4jWRfotaefgI4IjudTnCQJHdWpILcH7dpine3D7
 meI6GejQo5tJlyBERRiZQfpLLnPeGfuMNv1/Otc9zDKKP1Krcd+Bg2Ryovh6NkIZt+c+po0/mjy6u
 mTztPLDE5Bj1HMiSqxjR3g==;
Date: Fri, 03 May 2024 10:15:01 +0300
Message-Id: <865xvvjrii.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <86msp7beii.fsf@HIDDEN> (message from Juri Linkov on
 Fri, 03 May 2024 09:23:01 +0300)
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN> <86sez06w59.fsf@HIDDEN>
 <86zft8jd2y.fsf@HIDDEN> <86msp7beii.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: jdtsmith@HIDDEN,  70576 <at> debbugs.gnu.org
> Date: Fri, 03 May 2024 09:23:01 +0300
> 
> >> > Thanks, but please also update the ELisp manual and add an entry to
> >> > NEWS about this change.
> >>
> >> A NEWS entry was already added with "---" since I didn't expect that
> >> such a small feature that is not used anywhere needs to grow
> >> the size of the manual.
> >
> > I don't see how we can avoid updating the ELisp manual, when the other
> > values of :repeat are already documented there, see the node "Creating
> > Keymaps".
> >
> > So please add the description of the new value to those already
> > documented there.
> 
> Indeed, without this the manual would be incomplete, so now added as well.

Thanks.




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 3 May 2024 10:12:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 03 06:12:41 2024
Received: from localhost ([127.0.0.1]:46322 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2puD-0004dH-6J
	for submit <at> debbugs.gnu.org; Fri, 03 May 2024 06:12:41 -0400
Received: from ledu-giraud.fr ([51.159.28.247]:21185)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1s2puB-0004dB-8z
 for control <at> debbugs.gnu.org; Fri, 03 May 2024 06:12:40 -0400
DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=+neYnvQV
 5/FX/RexnPN3pC3ank/yJFjLP8LGWaaQZVU=;
 h=date:references:in-reply-to:
 subject:to:from; d=ledu-giraud.fr; b=DMuqo2k4MiuA/G6RzqwCaaA8xPulYFjbq
 DDNy8pvLXBBSbDR2QtREaqX8CPCpo31mqC313hGKGLXLwLOPUplCg==
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=+neYnvQV5/FX/Rex
 nPN3pC3ank/yJFjLP8LGWaaQZVU=;
 h=date:references:in-reply-to:subject:
 to:from; d=ledu-giraud.fr; b=WE+0dgDZUMw7NEUaskCAI/nYOalSp0CJqetUXnxxB
 JTSnKEnyNUNmtmJ7a0XlPr1g+2HTiG7qID65/yL2NKTMFUL+MuePFLSobEgQKwCLEIlrY4
 krTLibXJS8W/5AKu066ZzxFGAPEhxnXXWFl0sgyqSpnLLnn02jwVcFmFIya8OUT/boaZZ+
 2McsGqKRp3iok1uM4BBrsQ5EpVT5ffgqD/k3K3THAQ7Gh7CYnyC0pFEqMQ8yYDMPfk8Rhf
 UXW5pZ+u/mssXgnfRNWtAKg0d2nFbOFCBJl7ZAx35csOneZQGQqwfpQozKJBj5KAq3o9N5
 5n/oA5gkkwFgh5QdNZmSg==
Received: from computer (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 8732543d
 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO)
 for <control <at> debbugs.gnu.org>; Fri, 3 May 2024 12:12:15 +0200 (CEST)
From: Manuel Giraud <manuel@HIDDEN>
To: control <at> debbugs.gnu.org
Subject: Re: bug#66971: 30.0.50; [PATCH] Invert for flashing
In-Reply-To: <871q8e7dvh.fsf@HIDDEN> (Manuel Giraud's message of "Wed, 
 13 Mar 2024 09:08:34 +0100")
References: <87msvqet8q.fsf@HIDDEN> <87edh2uoe0.fsf@HIDDEN>
 <87cywmdkk2.fsf@HIDDEN> <87a5rpvqqn.fsf@HIDDEN>
 <87h6lx8yxy.fsf@HIDDEN>
 <CADwFkmmjSJGGLseg3ScchAFtpUEXXJj=bDw9NWea0PEJL=7cmw@HIDDEN>
 <87wms6oj74.fsf@HIDDEN>
 <CADwFkmmc9hAiduYaGHocGmHPHcSOeSSoFDn+O8MMu_uC1Op+rw@HIDDEN>
 <87jzo6unsl.fsf@HIDDEN> <871q8e7dvh.fsf@HIDDEN>
Date: Fri, 03 May 2024 12:12:14 +0200
Message-ID: <87jzkbfblt.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: control
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

close 70576 30.0.50
thanks
-- 
Manuel Giraud




Message received at fakecontrol@fakecontrolmessage:


Received: (at fakecontrol) by fakecontrolmessage;
To: internal_control <at> debbugs.gnu.org
From: Debbugs Internal Request <help-debbugs@HIDDEN>
Subject: Internal Control
Message-Id: bug No longer marked as fixed in versions 30.0.50 and reopened.
Date: Fri, 03 May 2024 10:19:01 +0000
User-Agent: Fakemail v42.6.9

# This is a fake control message.
#
# The action:
# bug No longer marked as fixed in versions 30.0.50 and reopened.
thanks
# This fakemail brought to you by your local debbugs
# administrator


Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 3 May 2024 11:38:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 03 07:38:36 2024
Received: from localhost ([127.0.0.1]:46394 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2rFM-0005OE-Ek
	for submit <at> debbugs.gnu.org; Fri, 03 May 2024 07:38:36 -0400
Received: from ledu-giraud.fr ([51.159.28.247]:25676)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <manuel@HIDDEN>) id 1s2rFI-0005Nz-KM
 for control <at> debbugs.gnu.org; Fri, 03 May 2024 07:38:34 -0400
DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=KrhHfg4k
 btKqtr7cmDeyMbPXgWLWWfdNq4Rho2/YNSg=; h=date:subject:to:from; 
 d=ledu-giraud.fr;
 b=WDMWSmcFlbr0MsATMNllximhkycYsaiBahha/+O6fUe5cz/JPk
 MfFfeCNEsvSFKasEFjjBLjJVgbYBVybMAQBA==
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=KrhHfg4kbtKqtr7c
 mDeyMbPXgWLWWfdNq4Rho2/YNSg=; h=date:subject:to:from;
 d=ledu-giraud.fr; b=AMGN51iC5F746o3QfeB0a8dkTV1XSntJpMuTNHrAtzmmwV3F3R
 dzrEb4jaeXrpQ9FG+ELokbhWg/jnE4AYCAYnBB4dm9XpS2oDTI7guhjBgOCsq3EMb5wSLR
 zXjL7NNYk4JOql3D3NpLjyFKKiuSqEtcUgnTIBNcsfI9obv7aFINGNhzq3e9g5B8sWenYi
 49gaoigPtZTCHqf+5K8V3TC8Vqssvt1ujDXYD2Lx2OOb3k5m4S0AmC4O9mEl+hOKU5Vehh
 CVeVKcp+xYQprHNClKpFKX+22npf7Ls8B93RPRjQUELz7junej5OBP/XfRx3qTd+iyKUCe
 avKphYG3Id8Q==
Received: from computer (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 84f62b9e
 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO)
 for <control <at> debbugs.gnu.org>; Fri, 3 May 2024 13:38:07 +0200 (CEST)
From: Manuel Giraud <manuel@HIDDEN>
To: control <at> debbugs.gnu.org
Subject: reopen
Date: Fri, 03 May 2024 13:38:05 +0200
Message-ID: <87v83vdt2a.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: control
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

found 70576 30.0.5
-- 
Manuel Giraud





Last modified: Fri, 3 May 2024 11:45:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.