From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 13:53:17 2021 Received: (at submit) by debbugs.gnu.org; 14 Feb 2021 18:53:17 +0000 Received: from localhost ([127.0.0.1]:36696 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lBMWD-0003n1-A4 for submit@debbugs.gnu.org; Sun, 14 Feb 2021 13:53:17 -0500 Received: from lists.gnu.org ([209.51.188.17]:53586) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lBMWB-0003mm-FG for submit@debbugs.gnu.org; Sun, 14 Feb 2021 13:53:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45126) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lBMW7-0005Kf-RY for bug-gnu-emacs@gnu.org; Sun, 14 Feb 2021 13:53:13 -0500 Received: from relay10.mail.gandi.net ([217.70.178.230]:41513) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lBMW5-0007G0-E5 for bug-gnu-emacs@gnu.org; Sun, 14 Feb 2021 13:53:11 -0500 Received: from mail.gandi.net (m91-129-108-204.cust.tele2.ee [91.129.108.204]) (Authenticated sender: juri@linkov.net) by relay10.mail.gandi.net (Postfix) with ESMTPSA id 10422240005 for ; Sun, 14 Feb 2021 18:53:04 +0000 (UTC) From: Juri Linkov To: bug-gnu-emacs@gnu.org Subject: Repeat mode Organization: LINKOV.NET Date: Sun, 14 Feb 2021 20:27:08 +0200 Message-ID: <87pn12o74z.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=217.70.178.230; envelope-from=juri@linkov.net; helo=relay10.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) --=-=-= Content-Type: text/plain Tags: patch Like discussed in bug#12572, bug#15234 and recently in https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg00139.html here is a patch that provides an opt-in feature for easy-to-repeat key sequences: C-x u u u - undo sequences C-x o o o - switch windows C-x right left right left - next/previous buffer switching M-g n n n p p p - next-error navigation C-x { { { } } } - window resizing ... --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=repeat-mode.patch diff --git a/lisp/repeat.el b/lisp/repeat.el index 795577c93f..1b31963d22 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el @@ -329,6 +329,39 @@ repeat-message ;;;;; ************************* EMACS CONTROL ************************* ;;;;; + +;;; repeat-mode + +(defcustom repeat-exit-key [return] ; like `isearch-exit' + "Key that stops the modal repeating of keys in sequence." + :type '(choice (const :tag "No special key to exit repeat sequence" nil) + (key-sequence :tag "Key that exits repeat sequence")) + :group 'convenience + :version "28.1") + +;;;###autoload +(define-minor-mode repeat-mode + "Toggle Repeat mode. +When Repeat mode is enabled, and the command symbol has the property named +`repeat-map', this map is activated temporarily for the next command." + :global t :group 'convenience + (if (not repeat-mode) + (remove-hook 'post-command-hook 'repeat-post-hook) + (add-hook 'post-command-hook 'repeat-post-hook))) + +(defun repeat-post-hook () + "Function run after commands to set transient keymap." + (when repeat-mode + (let ((repeat-map (and (symbolp this-command) + (get this-command 'repeat-map)))) + (when repeat-map + (when (boundp repeat-map) + (setq repeat-map (symbol-value repeat-map))) + (let ((map (copy-keymap repeat-map))) + (when repeat-exit-key + (define-key map repeat-exit-key 'ignore)) + (set-transient-map map)))))) + (provide 'repeat) ;;; repeat.el ends here diff --git a/lisp/bindings.el b/lisp/bindings.el index 2f4bab11cf..70ddd9d9ba 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -950,6 +950,12 @@ global-map ;; Richard said that we should not use C-x and I have ;; no idea whereas to bind it. Any suggestion welcome. -stef ;; (define-key ctl-x-map "U" 'undo-only) +(defvar undo-repeat-map + (let ((map (make-sparse-keymap))) + (define-key map "u" 'undo) + map) + "Keymap to repeat undo `C-x u u' sequences. Used in `repeat-mode'.") +(put 'undo 'repeat-map 'undo-repeat-map) (define-key esc-map "!" 'shell-command) (define-key esc-map "|" 'shell-command-on-region) @@ -964,6 +970,17 @@ ctl-x-map (define-key global-map [XF86Back] 'previous-buffer) (put 'previous-buffer :advertised-binding [?\C-x left]) +(defvar next-buffer-repeat-map + (let ((map (make-sparse-keymap))) + (define-key map [right] 'next-buffer) + (define-key map [C-right] 'next-buffer) + (define-key map [left] 'previous-buffer) + (define-key map [C-left] 'previous-buffer) + map) + "Keymap to repeat next-buffer key sequences. Used in `repeat-mode'.") +(put 'next-buffer 'repeat-map 'next-buffer-repeat-map) +(put 'previous-buffer 'repeat-map 'next-buffer-repeat-map) + (let ((map minibuffer-local-map)) (define-key map "\en" 'next-history-element) (define-key map [next] 'next-history-element) @@ -1036,6 +1053,17 @@ global-map (define-key ctl-x-map "`" 'next-error) +(defvar next-error-repeat-map + (let ((map (make-sparse-keymap))) + (define-key map "n" 'next-error) + (define-key map "\M-n" 'next-error) + (define-key map "p" 'previous-error) + (define-key map "\M-p" 'previous-error) + map) + "Keymap to repeat next-error key sequences. Used in `repeat-mode'.") +(put 'next-error 'repeat-map 'next-error-repeat-map) +(put 'previous-error 'repeat-map 'next-error-repeat-map) + (defvar goto-map (make-sparse-keymap) "Keymap for navigation commands.") (define-key esc-map "g" goto-map) diff --git a/lisp/window.el b/lisp/window.el index 2d0a73b426..d1a0f80da9 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -10252,6 +10252,30 @@ ctl-x-4-map (define-key ctl-x-4-map "1" 'same-window-prefix) (define-key ctl-x-4-map "4" 'other-window-prefix) +(defvar other-window-repeat-map + (let ((map (make-sparse-keymap))) + (define-key map "o" 'other-window) + map) + "Keymap to repeat other-window key sequences. Used in `repeat-mode'.") + +(put 'other-window 'repeat-map 'other-window-repeat-map) + +(defvar resize-window-repeat-map + (let ((map (make-sparse-keymap))) + ;; Standard keys: + (define-key map "^" 'enlarge-window) + (define-key map "}" 'enlarge-window-horizontally) + (define-key map "{" 'shrink-window-horizontally) + ;; Additional keys: + (define-key map "v" 'shrink-window) + map) + "Keymap to repeat window resizing commands. Used in `repeat-mode'.") + +(put 'enlarge-window 'repeat-map 'resize-window-repeat-map) +(put 'enlarge-window-horizontally 'repeat-map 'resize-window-repeat-map) +(put 'shrink-window-horizontally 'repeat-map 'resize-window-repeat-map) +(put 'shrink-window 'repeat-map 'resize-window-repeat-map) + (provide 'window) ;;; window.el ends here --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 14 18:59:46 2021 Received: (at 46515) by debbugs.gnu.org; 14 Feb 2021 23:59:46 +0000 Received: from localhost ([127.0.0.1]:37007 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lBRIo-0007Jw-Lf for submit@debbugs.gnu.org; Sun, 14 Feb 2021 18:59:46 -0500 Received: from relay7-d.mail.gandi.net ([217.70.183.200]:54993) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lBRIl-0007Jf-KX for 46515@debbugs.gnu.org; Sun, 14 Feb 2021 18:59:45 -0500 X-Originating-IP: 24.113.169.116 Received: from matts-mbp-2016.lan (24-113-169-116.wavecable.com [24.113.169.116]) (Authenticated sender: matt@rfc20.org) by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id DAF8020004; Sun, 14 Feb 2021 23:59:35 +0000 (UTC) From: Matt Armstrong To: Juri Linkov , 46515@debbugs.gnu.org Subject: Re: bug#46515: Repeat mode In-Reply-To: <87pn12o74z.fsf@mail.linkov.net> References: <87pn12o74z.fsf@mail.linkov.net> Date: Sun, 14 Feb 2021 15:59:32 -0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 46515 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) First thing: neat idea, and don't listen to me. :-) Have you thought about making it more clear to the user that their keys are now doing different things? Most successful "modal" interfaces I have seen have clear indicators. One idea is to look at the other places in Emacs that already use `set-transient-map' in this way and try to be "at least as good" as those. `kmacro' and `indent-rigidly' are two reasonable examples. They print messages when active that describe the newly active key bindings. repeat.el doesn't describe the key binding, but it does say a repeat mode is active. Kmacro is so smart that it aranges for the repeat key to be based on whatever key the command was invoked with. As far as this general approach for creating small transient modes, I can't help but think it is too low level. An approach that had a bit more scafolding to it would let Emacs' help system describe it, and it might allow for a consistent way for Emacs to indicade they are active --- similar to how the conventions under major and minor work for "heavier" modes. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 15 04:50:39 2021 Received: (at 46515) by debbugs.gnu.org; 15 Feb 2021 09:50:39 +0000 Received: from localhost ([127.0.0.1]:37276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lBaWd-0000lu-9t for submit@debbugs.gnu.org; Mon, 15 Feb 2021 04:50:39 -0500 Received: from relay12.mail.gandi.net ([217.70.178.232]:56669) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lBaWZ-0000lS-ND for 46515@debbugs.gnu.org; Mon, 15 Feb 2021 04:50:36 -0500 Received: from mail.gandi.net (m91-129-108-204.cust.tele2.ee [91.129.108.204]) (Authenticated sender: juri@linkov.net) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 80889200009; Mon, 15 Feb 2021 09:50:28 +0000 (UTC) From: Juri Linkov To: Matt Armstrong Subject: Re: bug#46515: Repeat mode Organization: LINKOV.NET References: <87pn12o74z.fsf@mail.linkov.net> Date: Mon, 15 Feb 2021 11:17:31 +0200 In-Reply-To: (Matt Armstrong's message of "Sun, 14 Feb 2021 15:59:32 -0800") Message-ID: <87sg5xy85o.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 46515 Cc: 46515@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain > First thing: neat idea, and don't listen to me. :-) Thanks, I really appreciate your help. > Have you thought about making it more clear to the user that their keys > are now doing different things? Most successful "modal" interfaces I > have seen have clear indicators. I have already thought about using prefix-command-echo-keystrokes-functions, but failed to do this, so abandoned this attempt. I did not realize it's possible to do this simply with messages like you pointed out here :-) > One idea is to look at the other places in Emacs that already use > `set-transient-map' in this way and try to be "at least as good" as > those. `kmacro' and `indent-rigidly' are two reasonable examples. They > print messages when active that describe the newly active key bindings. I use `indent-rigidly' many times every day, but never noticed that it prints the message Indent region with , , S-, or S-. It goes unnoticed maybe because it's displayed only once at its activation. > repeat.el doesn't describe the key binding, but it does say a repeat > mode is active. Kmacro is so smart that it aranges for the repeat key to > be based on whatever key the command was invoked with. Unlike `indent-rigidly', `kmacro' message (Type e to repeat macro) is displayed on every keypress, so it's a good example. Now added in the following patch applied over the previous patch. > As far as this general approach for creating small transient modes, I > can't help but think it is too low level. An approach that had a bit > more scafolding to it would let Emacs' help system describe it, and it > might allow for a consistent way for Emacs to indicade they are active > --- similar to how the conventions under major and minor work for > "heavier" modes. Currently I have no idea how this could be generalized. But simply describing it in the help system should be quite easy to do, so e.g. 'C-h k C-x o' could check for the command's repeat keymap and add a help string about its repeatability. --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=repeat-message.patch diff --git a/lisp/repeat.el b/lisp/repeat.el index 896a95197a..3c8be63c84 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el @@ -360,6 +360,9 @@ repeat-post-hook (when (boundp repeat-map) (setq repeat-map (symbol-value repeat-map))) (let ((map (copy-keymap repeat-map))) + (let (keys) + (map-keymap (lambda (key _) (push (key-description (vector key)) keys)) map) + (message "To repeat type %s" (mapconcat #'identity keys ", "))) (when repeat-exit-key (define-key map repeat-exit-key 'ignore)) (set-transient-map map)))))) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 15 12:07:44 2021 Received: (at 46515) by debbugs.gnu.org; 15 Feb 2021 17:07:44 +0000 Received: from localhost ([127.0.0.1]:38623 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lBhLc-0005rm-KR for submit@debbugs.gnu.org; Mon, 15 Feb 2021 12:07:44 -0500 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:43681) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lBhLX-0005rJ-MA for 46515@debbugs.gnu.org; Mon, 15 Feb 2021 12:07:40 -0500 X-Originating-IP: 91.129.108.204 Received: from mail.gandi.net (m91-129-108-204.cust.tele2.ee [91.129.108.204]) (Authenticated sender: juri@linkov.net) by relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 6CF014000D; Mon, 15 Feb 2021 17:07:31 +0000 (UTC) From: Juri Linkov To: Matt Armstrong Subject: Re: bug#46515: Repeat mode Organization: LINKOV.NET References: <87pn12o74z.fsf@mail.linkov.net> <87sg5xy85o.fsf@mail.linkov.net> Date: Mon, 15 Feb 2021 19:04:12 +0200 In-Reply-To: <87sg5xy85o.fsf@mail.linkov.net> (Juri Linkov's message of "Mon, 15 Feb 2021 11:17:31 +0200") Message-ID: <87czx1z2ib.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 46515 Cc: 46515@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain >> repeat.el doesn't describe the key binding, but it does say a repeat >> mode is active. Kmacro is so smart that it aranges for the repeat key to >> be based on whatever key the command was invoked with. > > Unlike `indent-rigidly', `kmacro' message > > (Type e to repeat macro) > > is displayed on every keypress, so it's a good example. > Now added in the following patch applied over the previous patch. Here is another incremental patch that adds more messaging: --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=repeat-message-2.patch diff --git a/lisp/repeat.el b/lisp/repeat.el index 3c8be63c84..a322afed1d 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el @@ -349,7 +349,16 @@ repeat-mode :global t :group 'convenience (if (not repeat-mode) (remove-hook 'post-command-hook 'repeat-post-hook) - (add-hook 'post-command-hook 'repeat-post-hook))) + (add-hook 'post-command-hook 'repeat-post-hook) + (let* ((keymaps nil) + (commands (all-completions + "" obarray (lambda (s) + (and (commandp s) + (get s 'repeat-map) + (push (get s 'repeat-map) keymaps)))))) + (message "Repeat mode is enabled for %d commands and %d keymaps" + (length commands) + (length (delete-dups keymaps)))))) (defun repeat-post-hook () "Function run after commands to set transient keymap." @@ -362,7 +371,10 @@ repeat-post-hook (let ((map (copy-keymap repeat-map))) (let (keys) (map-keymap (lambda (key _) (push (key-description (vector key)) keys)) map) - (message "To repeat type %s" (mapconcat #'identity keys ", "))) + (message "To repeat type %s%s" + (mapconcat #'identity keys ", ") + (when repeat-exit-key + (format ", or %s to exit" (key-description repeat-exit-key))))) (when repeat-exit-key (define-key map repeat-exit-key 'ignore)) (set-transient-map map)))))) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 16 11:49:42 2021 Received: (at 46515) by debbugs.gnu.org; 16 Feb 2021 16:49:42 +0000 Received: from localhost ([127.0.0.1]:41393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lC3Xi-0004IP-Ka for submit@debbugs.gnu.org; Tue, 16 Feb 2021 11:49:42 -0500 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:54111) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lC3Xg-0004I8-Or for 46515@debbugs.gnu.org; Tue, 16 Feb 2021 11:49:41 -0500 X-Originating-IP: 24.113.169.116 Received: from matts-mbp-2016.lan (24-113-169-116.wavecable.com [24.113.169.116]) (Authenticated sender: matt@rfc20.org) by relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 5464040010; Tue, 16 Feb 2021 16:49:32 +0000 (UTC) From: Matt Armstrong To: Juri Linkov Subject: Re: bug#46515: Repeat mode In-Reply-To: <87czx1z2ib.fsf@mail.linkov.net> References: <87pn12o74z.fsf@mail.linkov.net> <87sg5xy85o.fsf@mail.linkov.net> <87czx1z2ib.fsf@mail.linkov.net> Date: Tue, 16 Feb 2021 08:49:29 -0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 46515 Cc: 46515@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Juri Linkov writes: > Here is another incremental patch that adds more messaging... Hey Juri, I like these ideas but don't feel qualified to review them beyond what I've already said. I have about three lines of edits in Emacs code to my credit. ;-) Perhaps discuss this idea on emacs-devel? Thinking long term, I think it would be interesting to consider a future where all of the various third party "modal" packages (evil, hydra, etc.) could use higher level facilities provided by the Emacs core. This patch is a step in that direction. I'm interested to see how it progresses. Another interesting question: how do we surface how to use these transient modes in Emacs help, if at all? From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 17 13:06:39 2021 Received: (at 46515) by debbugs.gnu.org; 17 Feb 2021 18:06:39 +0000 Received: from localhost ([127.0.0.1]:44862 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lCRDi-0000En-Q9 for submit@debbugs.gnu.org; Wed, 17 Feb 2021 13:06:39 -0500 Received: from relay10.mail.gandi.net ([217.70.178.230]:35867) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lCRDg-0000EW-98; Wed, 17 Feb 2021 13:06:37 -0500 Received: from mail.gandi.net (m91-129-96-116.cust.tele2.ee [91.129.96.116]) (Authenticated sender: juri@linkov.net) by relay10.mail.gandi.net (Postfix) with ESMTPSA id 8860624000A; Wed, 17 Feb 2021 18:06:28 +0000 (UTC) From: Juri Linkov To: Matt Armstrong Subject: Re: bug#46515: Repeat mode Organization: LINKOV.NET References: <87pn12o74z.fsf@mail.linkov.net> <87sg5xy85o.fsf@mail.linkov.net> <87czx1z2ib.fsf@mail.linkov.net> Date: Wed, 17 Feb 2021 20:05:30 +0200 In-Reply-To: (Matt Armstrong's message of "Tue, 16 Feb 2021 08:49:29 -0800") Message-ID: <87a6s2lgd1.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 46515 Cc: 46515@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) tags 46515 fixed close 46515 28.0.50 quit > Perhaps discuss this idea on emacs-devel? Actually, this have been already discussed recently at great length in https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg01120.html And no objections were raised against adding this feature as long as it's opt-in. So now it's pushed to master. > Thinking long term, I think it would be interesting to consider a future > where all of the various third party "modal" packages (evil, hydra, > etc.) could use higher level facilities provided by the Emacs core. > This patch is a step in that direction. I'm interested to see how it > progresses. It would be interesting to try using this feature in external packages. > Another interesting question: how do we surface how to use these > transient modes in Emacs help, if at all? I wonder why the Help system currently doesn't show symbol properties? Maybe because there are too many properties, and most of them are uninteresting to most users? I tried: (require 'data-debug) (data-debug-eval-expression ''(other-window)) and it shows: > #'other-window > repeat-map : 'other-window-repeat-map > event-symbol-element-mask : # > event-symbol-elements : # > modifier-cache : # where the relevant property is only `repeat-map', whereas the remaining 3 are some low-level properties. Maybe the Help could show the values only of such properties that have a special property on it? For example, when the symbol `repeat-map' has a property `show-help', then show its value in Help? From unknown Tue Aug 19 09:59:46 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 18 Mar 2021 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator