[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master fb81c8c: Make icomplete-forward-completions O(1) when icomplete-s
From: |
João Távora |
Subject: |
master fb81c8c: Make icomplete-forward-completions O(1) when icomplete-scroll is t |
Date: |
Thu, 19 Aug 2021 19:02:06 -0400 (EDT) |
branch: master
commit fb81c8c3adf8633f2f617c82f6019aef630860c7
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>
Make icomplete-forward-completions O(1) when icomplete-scroll is t
In particular, this makes the recently added
icomplete-vertical-goto-last (bug#49005) be O(n) instead of O(n^2).
That used to be almost unbearably slow for large n.
* lisp/icomplete.el (icomplete-forward-completions): don't call last
unless needed.
---
lisp/icomplete.el | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 8407393..03616f9 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -258,14 +258,14 @@ Return non-nil iff something was stepped."
(interactive)
(let* ((beg (icomplete--field-beg))
(end (icomplete--field-end))
- (comps (completion-all-sorted-completions beg end))
- (last (last comps)))
+ (comps (completion-all-sorted-completions beg end)))
(when (consp (cdr comps))
(cond (icomplete-scroll
(push (pop comps) icomplete--scrolled-past)
(setq icomplete--scrolled-completions comps))
(t
- (setcdr (last comps) (cons (pop comps) (cdr last)))))
+ (let ((last (last comps)))
+ (setcdr (last comps) (cons (pop comps) (cdr last))))))
(completion--cache-all-sorted-completions beg end comps))))
(defun icomplete-backward-completions ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master fb81c8c: Make icomplete-forward-completions O(1) when icomplete-scroll is t,
João Távora <=