branch: externals/mct
commit b16f5822789e7e3a3575ee182250594ddcc4ea8a
Author: Protesilaos Stavrou <i...@protesilaos.com>
Commit: Protesilaos Stavrou <i...@protesilaos.com>

    Make completion metadata functions work everywhere
---
 mct.el | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/mct.el b/mct.el
index 0ff6c30..d92f813 100644
--- a/mct.el
+++ b/mct.el
@@ -157,28 +157,29 @@ NOTE that setting this option with `setq' requires a 
restart of
   :type '(choice (const horizontal) (const vertical) (const one-column))
   :group 'mct)
 
-;;;; Basic helper functions
+;;;; Completion metadata
 
-;; Copied from icomplete.el
 (defun mct--field-beg ()
   "Determine beginning of completion."
-  (if (window-minibuffer-p)
-      (minibuffer-prompt-end)
+  (if-let ((window (active-minibuffer-window)))
+      (with-current-buffer (window-buffer window)
+        (minibuffer-prompt-end))
     (nth 0 completion-in-region--data)))
 
-;; Copied from icomplete.el
 (defun mct--field-end ()
   "Determine end of completion."
-  (if (window-minibuffer-p)
-      (point-max)
+  (if-let ((window (active-minibuffer-window)))
+      (with-current-buffer (window-buffer window)
+        (point-max))
     (nth 1 completion-in-region--data)))
 
-;; Copied from icomplete.el
 (defun mct--completion-category ()
   "Return completion category."
-  (let* ((beg (mct--field-beg))
-         (md (when (window-minibuffer-p) (completion--field-metadata beg))))
-    (alist-get 'category (cdr md))))
+  (when-let ((window (active-minibuffer-window)))
+    (with-current-buffer (window-buffer window)
+      (let* ((beg (mct--field-beg))
+             (md (completion--field-metadata beg)))
+        (alist-get 'category (cdr md))))))
 
 ;;;; Basics of intersection between minibuffer and Completions' buffer
 

Reply via email to