From c8592e414b5dde18dcb4ded2c3ebe29333ca44b1 Mon Sep 17 00:00:00 2001
From: Vedang Manerikar <ved.manerikar@gmail.com>
Date: Sun, 17 Nov 2024 11:33:34 +0530
Subject: [PATCH] Use vertico-repeat and vertico-suspend to mimic helm-resume

---
 unravel-emacs.org                     | 19 +++++++++++++++++++
 unravel-modules/unravel-completion.el | 17 +++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/unravel-emacs.org b/unravel-emacs.org
index 88042dd..8155f31 100644
--- a/unravel-emacs.org
+++ b/unravel-emacs.org
@@ -1910,6 +1910,8 @@ vertical layout. Under the hood, it takes care to be responsive and to
 handle even massive completion tables gracefully.
 #+end_quote
 
+I use ~vertico-repeat~ to mimic the functionality that ~helm-resume~ would provide. The configuration for that is also part of this section.
+
 #+begin_src emacs-lisp :tangle "unravel-modules/unravel-completion.el"
   ;;; Vertical completion layout (vertico)
   (use-package vertico
@@ -1927,6 +1929,23 @@ handle even massive completion tables gracefully.
       ;; or root '/' directory, Vertico will clear the old path to keep
       ;; only your current input.
       (add-hook 'rfn-eshadow-update-overlay-hook #'vertico-directory-tidy)))
+
+  (use-package vertico-repeat
+    :after vertico
+    :bind ( :map global-map
+            ("M-R" . vertico-repeat)
+            :map vertico-map
+            ("M-N" . vertico-repeat-next)
+            ("M-P" . vertico-repeat-previous))
+    :hook (minibuffer-setup . vertico-repeat-save))
+
+  (use-package vertico-suspend
+    :after vertico
+    :init
+    (setq enable-recursive-minibuffers t)
+    :bind ( :map global-map
+            ("M-S" . vertico-suspend)
+            ("C-x c b" . vertico-suspend)))
 #+end_src
 
 ** Finally, we provide the ~unravel-completion.el~ module
diff --git a/unravel-modules/unravel-completion.el b/unravel-modules/unravel-completion.el
index 4235a12..0e94b78 100644
--- a/unravel-modules/unravel-completion.el
+++ b/unravel-modules/unravel-completion.el
@@ -351,4 +351,21 @@
     ;; only your current input.
     (add-hook 'rfn-eshadow-update-overlay-hook #'vertico-directory-tidy)))
 
+(use-package vertico-repeat
+  :after vertico
+  :bind ( :map global-map
+          ("M-R" . vertico-repeat)
+          :map vertico-map
+          ("M-N" . vertico-repeat-next)
+          ("M-P" . vertico-repeat-previous))
+  :hook (minibuffer-setup . vertico-repeat-save))
+
+(use-package vertico-suspend
+  :after vertico
+  :init
+  (setq enable-recursive-minibuffers t)
+  :bind ( :map global-map
+          ("M-S" . vertico-suspend)
+          ("C-x c b" . vertico-suspend)))
+
 (provide 'unravel-completion)