emacs-diffs
[Top][All Lists]
Advanced

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

master f444786e587: Mention 'C-h' in echo for unfinished commands


From: Dmitry Gutov
Subject: master f444786e587: Mention 'C-h' in echo for unfinished commands
Date: Wed, 7 Feb 2024 14:51:16 -0500 (EST)

branch: master
commit f444786e58737a4ae6071957dfc60075bbd96edc
Author: Dmitry Gutov <dmitry@gutov.dev>
Commit: Dmitry Gutov <dmitry@gutov.dev>

    Mention 'C-h' in echo for unfinished commands
    
    * etc/NEWS: Mention it here.
    
    * lisp/cus-start.el (standard): Add type and version for it.
    
    * src/keyboard.c (echo-keystrokes-help): New user option
    (https://lists.gnu.org/archive/html/emacs-devel/2024-02/msg00174.html).
    
    * src/keyboard.c (echo_dash): Use it.
---
 etc/NEWS          |  3 +++
 lisp/cus-start.el |  1 +
 src/keyboard.c    | 13 +++++++++++++
 3 files changed, 17 insertions(+)

diff --git a/etc/NEWS b/etc/NEWS
index 960ad2b95ac..f454b6d851c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -307,6 +307,9 @@ between the auto save file and the current file.
 ** 'ffap-lax-url' now defaults to nil.
 Previously, it was set to t but this broke remote file name detection.
 
+** Unfinished commands' echo now ends with a suggestion to use Help.
+Customize 'echo-keystrokes-help' to nil to prevent that.
+
 
 * Editing Changes in Emacs 30.1
 
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 7e0b64e9067..3fe62c8d0da 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -371,6 +371,7 @@ Leaving \"Default\" unchecked is equivalent with specifying 
a default of
             (auto-save-timeout auto-save (choice (const :tag "off" nil)
                                                  (integer :format "%v")))
             (echo-keystrokes minibuffer number)
+             (echo-keystrokes-help minibuffer boolean "30.1")
             (polling-period keyboard float)
             (double-click-time mouse (restricted-sexp
                                       :match-alternatives (integerp 'nil 't)))
diff --git a/src/keyboard.c b/src/keyboard.c
index 1f7253a7da1..6d3db5ab615 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -589,6 +589,15 @@ echo_dash (void)
   AUTO_STRING (dash, "-");
   kset_echo_string (current_kboard,
                    concat2 (KVAR (current_kboard, echo_string), dash));
+
+  if (echo_keystrokes_help)
+    {
+      AUTO_STRING (help, " (\\`C-h' for help)");
+      kset_echo_string (current_kboard,
+                       concat2 (KVAR (current_kboard, echo_string),
+                                calln (Qsubstitute_command_keys, help)));
+    }
+
   echo_now ();
 }
 
@@ -13228,6 +13237,10 @@ The value may be integer or floating point.
 If the value is zero, don't echo at all.  */);
   Vecho_keystrokes = make_fixnum (1);
 
+  DEFVAR_BOOL ("echo-keystrokes-help", echo_keystrokes_help,
+              doc: /* Non-nil means append small help text to the unfinished 
commands' echo. */);
+  echo_keystrokes_help = true;
+
   DEFVAR_LISP ("polling-period", Vpolling_period,
              doc: /* Interval between polling for input during Lisp execution.
 The reason for polling is to make C-g work to stop a running program.



reply via email to

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