diff options
| author | Daniel Mendler <mail@daniel-mendler.de> | 2024-03-05 18:38:03 +0100 |
|---|---|---|
| committer | Daniel Mendler <mail@daniel-mendler.de> | 2024-03-05 18:38:03 +0100 |
| commit | e015ac24ef6ad89615590df924d5c4c853bb7c11 (patch) | |
| tree | 97d951ff9c644b9705c2d69ce5a6d4ea9d8b7305 /orderless-kwd.el | |
| parent | 52b533329d39c1d4f520a47e477d7bc0242325b2 (diff) | |
Add orderless-kwd--orig-buffer helper
Diffstat (limited to 'orderless-kwd.el')
| -rw-r--r-- | orderless-kwd.el | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/orderless-kwd.el b/orderless-kwd.el index f6c1c72..312a0ba 100644 --- a/orderless-kwd.el +++ b/orderless-kwd.el @@ -70,12 +70,16 @@ :value-type (choice (list function) (list function (const t)))) :group 'orderless) -(defsubst orderless-kwd--buffer (str) - "Return buffer from candidate STR." +(defsubst orderless-kwd--get-buffer (str) + "Return buffer from candidate STR taking `multi-category' into account." (when-let ((cat (get-text-property 0 'multi-category str))) (setq str (and (eq (car cat) 'buffer) (cdr cat)))) (and str (get-buffer str))) +(defsubst orderless-kwd--orig-buffer () + "Return the original buffer before miniwindow selection." + (or (window-buffer (minibuffer-selected-window)) (current-buffer))) + (defun orderless-kwd-category (pred regexp) "Match candidate category against PRED and REGEXP." (lambda (str) @@ -91,7 +95,7 @@ (defun orderless-kwd-content (_pred regexp) "Match buffer content against REGEXP." (lambda (str) - (when-let ((buf (orderless-kwd--buffer str))) + (when-let ((buf (orderless-kwd--get-buffer str))) (with-current-buffer buf (save-excursion (save-restriction @@ -114,7 +118,7 @@ (defun orderless-kwd-key (pred regexp) "Match command key binding against PRED and REGEXP." - (let ((buf (or (window-buffer (minibuffer-selected-window)) (current-buffer)))) + (let ((buf (orderless-kwd--orig-buffer))) (lambda (str) (when-let ((sym (intern-soft str)) ((fboundp sym)) @@ -124,7 +128,7 @@ (defun orderless-kwd-value (pred regexp) "Match variable value against PRED and REGEXP." - (let ((buf (or (window-buffer (minibuffer-selected-window)) (current-buffer)))) + (let ((buf (orderless-kwd--orig-buffer))) (lambda (str) (when-let ((sym (intern-soft str)) ((boundp sym))) @@ -135,7 +139,7 @@ (defun orderless-kwd-off (_) "Match disabled minor modes." - (let ((buf (or (window-buffer (minibuffer-selected-window)) (current-buffer)))) + (let ((buf (orderless-kwd--orig-buffer))) (lambda (str) (when-let ((sym (intern-soft str))) (and (boundp sym) @@ -144,7 +148,7 @@ (defun orderless-kwd-on (_) "Match enabled minor modes." - (let ((buf (or (window-buffer (minibuffer-selected-window)) (current-buffer)))) + (let ((buf (orderless-kwd--orig-buffer))) (lambda (str) (when-let ((sym (intern-soft str))) (and (boundp sym) @@ -154,13 +158,13 @@ (defun orderless-kwd-modified (_) "Match modified buffers." (lambda (str) - (when-let ((buf (orderless-kwd--buffer str))) + (when-let ((buf (orderless-kwd--get-buffer str))) (buffer-modified-p buf)))) (defun orderless-kwd-mode (pred regexp) "Match buffer mode name against PRED and REGEXP." (lambda (str) - (when-let ((buf (orderless-kwd--buffer str)) + (when-let ((buf (orderless-kwd--get-buffer str)) (mode (buffer-local-value 'major-mode buf))) (or (orderless--match-p pred regexp (symbol-name mode)) (orderless--match-p pred regexp (format-mode-line @@ -169,7 +173,7 @@ (defun orderless-kwd-directory (pred regexp) "Match `default-directory' against PRED and REGEXP." (lambda (str) - (when-let ((buf (orderless-kwd--buffer str))) + (when-let ((buf (orderless-kwd--get-buffer str))) (orderless--match-p pred regexp (buffer-local-value 'default-directory buf))))) |
