Skip to content

Commit

Permalink
ivy.el (ivy--update-minibuffer): allow to resumed using staled data f…
Browse files Browse the repository at this point in the history
…rom dynamic collection
  • Loading branch information
kiennq committed Dec 16, 2020
1 parent 1723799 commit c67b98a
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions ivy.el
Original file line number Diff line number Diff line change
Expand Up @@ -1178,6 +1178,10 @@ If the text hasn't changed as a result, forward to `ivy-alt-done'."
(setq ivy-exit 'done)
(exit-minibuffer))

(defcustom ivy-resume-with-staled-data nil
"Allow to use staled results when resuming from dynamic collection."
:type 'boolean)

(defun ivy--restore-session (&optional session)
"Resume a recorded completion SESSION, if any exists."
(when ivy--sessions
Expand All @@ -1196,14 +1200,16 @@ If the text hasn't changed as a result, forward to `ivy-alt-done'."
(setq ivy--all-candidates (plist-get data :all-candidates))
(setq ivy-text (plist-get data :text)))))


;;;###autoload
(defun ivy-resume (&optional session)
"Resume the last completion session, or SESSION if non-nil.
With a prefix arg, try to restore a recorded completion session,
if one exists."
(interactive)
(when (or current-prefix-arg session)
(ivy--restore-session session))
(ivy--restore-session session)
(setq this-command 'ivy-resume))

(if (or (null (ivy-state-action ivy-last))
(eq (ivy--get-action ivy-last) #'identity))
Expand Down Expand Up @@ -3300,7 +3306,10 @@ Should be run via minibuffer `post-command-hook'."
(unless (or (equal ivy--old-text ivy-text)
(eq this-command 'ivy-resume))
(while-no-input
(setq coll (ivy--dynamic-collection-cands ivy-text))
(setq coll (if (and ivy-resume-with-staled-data
ivy--trying-to-resume-dynamic-collection)
ivy--all-candidates
(ivy--dynamic-collection-cands ivy-text)))
(when (eq coll 0)
(setq coll nil)
(setq ivy--old-re nil)
Expand Down

0 comments on commit c67b98a

Please sign in to comment.