emacs-diffs
[Top][All Lists]
Advanced

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

master 98e3ee2 08/12: Make `C-h m' list unbound commands applicable for


From: Lars Ingebrigtsen
Subject: master 98e3ee2 08/12: Make `C-h m' list unbound commands applicable for the mode
Date: Sun, 14 Feb 2021 08:15:04 -0500 (EST)

branch: master
commit 98e3ee27472d071c353743dcfc0eaef7c2f21059
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Make `C-h m' list unbound commands applicable for the mode
    
    * lisp/help-fns.el (help-fns--list-local-commands): New function.
    (describe-mode): Use it.
---
 lisp/help-fns.el | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index b03a440..0e2c682 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -1827,9 +1827,30 @@ documentation for the major and minor modes of that 
buffer."
                                     nil t)
                (help-xref-button 1 'help-function-def mode file-name)))))
        (princ ":\n")
-       (princ (help-split-fundoc (documentation major-mode) nil 'doc)))))
+       (princ (help-split-fundoc (documentation major-mode) nil 'doc))
+        (princ (help-fns--list-local-commands)))))
   ;; For the sake of IELM and maybe others
   nil)
+
+(defun help-fns--list-local-commands ()
+  (let ((functions nil))
+    (mapatoms
+     (lambda (sym)
+       (when (and (commandp sym)
+                  ;; Ignore aliases.
+                  (not (symbolp (symbol-function sym)))
+                  ;; Ignore everything bound.
+                  (not (where-is-internal sym))
+                  (apply #'derived-mode-p (command-modes sym)))
+         (push sym functions))))
+    (with-temp-buffer
+      (when functions
+        (setq functions (sort functions #'string<))
+        (insert "\n\nOther commands for this mode, not bound to any keys:\n\n")
+        (dolist (function functions)
+          (insert (format "`%s'\n" function))))
+      (buffer-string))))
+
 
 ;; Widgets.
 



reply via email to

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