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