[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 93136169cb: Try to speed up extended command shorthand computatio
From: |
Michael Heerdegen |
Subject: |
master 93136169cb: Try to speed up extended command shorthand computation |
Date: |
Sun, 9 Oct 2022 14:49:25 -0400 (EDT) |
branch: master
commit 93136169cba9c7c8f827dbc2f579b95a75d15fad
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>
Try to speed up extended command shorthand computation
Discussed in Bug#51143.
* lisp/simple.el (execute-extended-command--shorter): Compute a
complete list of `commandp' symbols once. This significantly speeds
up complicated cases while the slowdown of simple cases is still
accetable.
---
lisp/simple.el | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/lisp/simple.el b/lisp/simple.el
index d2dcbe27a0..e804f717b0 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2465,9 +2465,13 @@ Also see `suggest-key-bindings'."
(defun execute-extended-command--shorter (name typed)
(let ((candidates '())
+ commands
(max (length typed))
(len 1)
binding)
+ ;; Precompute a list of commands once to avoid repeated `commandp' testing
+ ;; of symbols in the `completion-try-completion' call inside the loop below
+ (mapatoms (lambda (s) (when (commandp s) (push s commands))))
(while (and (not binding)
(progn
(unless candidates
@@ -2480,8 +2484,8 @@ Also see `suggest-key-bindings'."
(input-pending-p) ;Dummy call to trigger input-processing, bug#23002.
(let ((candidate (pop candidates)))
(when (equal name
- (car-safe (completion-try-completion
- candidate obarray 'commandp len)))
+ (car-safe (completion-try-completion
+ candidate commands nil len)))
(setq binding candidate))))
binding))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 93136169cb: Try to speed up extended command shorthand computation,
Michael Heerdegen <=