[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ivy 027a449 2/2: Merge branch 'master' into externals/i
From: |
Basil L. Contovounesios |
Subject: |
[elpa] externals/ivy 027a449 2/2: Merge branch 'master' into externals/ivy |
Date: |
Sun, 2 May 2021 17:36:39 -0400 (EDT) |
branch: externals/ivy
commit 027a44959d4f11c6e6aa54f64466492375092d07
Merge: 875d4db fc89be7
Author: Basil L. Contovounesios <contovob@tcd.ie>
Commit: Basil L. Contovounesios <contovob@tcd.ie>
Merge branch 'master' into externals/ivy
---
ivy.el | 31 ++++++++++++++++++++++++-------
1 file changed, 24 insertions(+), 7 deletions(-)
diff --git a/ivy.el b/ivy.el
index 257cd14..8fc0e31 100644
--- a/ivy.el
+++ b/ivy.el
@@ -2509,6 +2509,12 @@ behavior."
(declare-function mc/all-fake-cursors "ext:multiple-cursors-core")
+;; Kludge: Try to retain original minibuffer completion data.
+(defvar ivy--minibuffer-table)
+(defvar ivy--minibuffer-pred)
+(defvar ivy--minibuffer-try nil
+ "Store original `try-completion' result for sole completions.")
+
(defun ivy-completion-in-region-action (str)
"Insert STR, erasing the previous one.
The previous string is between `ivy-completion-beg' and `ivy-completion-end'."
@@ -2524,9 +2530,15 @@ The previous string is between `ivy-completion-beg' and
`ivy-completion-end'."
(delete-region beg end))
(setq ivy-completion-beg (point))
(insert (substring-no-properties str))
- (completion--done str (if (eq ivy-exit 'done)
- 'finished
- 'exact))
+ (let ((minibuffer-completion-table (if (boundp 'ivy--minibuffer-table)
+ ivy--minibuffer-table
+ (ivy-state-collection ivy-last)))
+ (minibuffer-completion-predicate (if (boundp 'ivy--minibuffer-pred)
+ ivy--minibuffer-pred
+ (ivy-state-predicate
ivy-last))))
+ (completion--done str (cond ((eq ivy--minibuffer-try t) 'finished)
+ ((eq ivy-exit 'done) 'unknown)
+ ('exact))))
(setq ivy-completion-end (point))
(save-excursion
(dolist (cursor fake-cursors)
@@ -2566,8 +2578,12 @@ See `completion-in-region' for further information."
(let* ((enable-recursive-minibuffers t)
(str (buffer-substring-no-properties start end))
(completion-ignore-case (ivy--case-fold-p str))
- (comps
- (completion-all-completions str collection predicate (- end start))))
+ (md (completion-metadata str collection predicate))
+ (reg (- end start))
+ (comps (completion-all-completions str collection predicate reg md))
+ (try (completion-try-completion str collection predicate reg md))
+ (ivy--minibuffer-table collection)
+ (ivy--minibuffer-pred predicate))
(cond ((null comps)
(message "No matches"))
((progn
@@ -2594,8 +2610,9 @@ See `completion-in-region' for further information."
(progn
(unless (minibuffer-window-active-p (selected-window))
(setf (ivy-state-window ivy-last) (selected-window)))
- (ivy-completion-in-region-action
- (substring-no-properties (car comps))))
+ (let ((ivy--minibuffer-try try))
+ (ivy-completion-in-region-action
+ (substring-no-properties (car comps)))))
(dolist (s comps)
;; Remove face `completions-first-difference'.
(ivy--remove-props s 'face))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/ivy 027a449 2/2: Merge branch 'master' into externals/ivy,
Basil L. Contovounesios <=