branch: externals/orderless
commit fb338f771f1693436da0472a8a4d230b28af14f3
Author: Daniel Mendler <[email protected]>
Commit: Daniel Mendler <[email protected]>

    Use when-let*
---
 orderless-kwd.el | 76 +++++++++++++++++++++++++++++---------------------------
 orderless.el     | 18 +++++++-------
 2 files changed, 48 insertions(+), 46 deletions(-)

diff --git a/orderless-kwd.el b/orderless-kwd.el
index 634181900a..9624080b2c 100644
--- a/orderless-kwd.el
+++ b/orderless-kwd.el
@@ -39,7 +39,9 @@
 ;;; Code:
 
 (require 'orderless)
-(eval-when-compile (require 'cl-lib))
+(eval-when-compile
+  (require 'cl-lib)
+  (require 'subr-x))
 
 (defcustom orderless-kwd-prefix ?:
   "Keyword dispatcher prefix character."
@@ -85,7 +87,7 @@ as a flag and does not require input."
 
 (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)))
+  (when-let* ((cat (get-text-property 0 'multi-category str)))
     (setq str (and (eq (car cat) 'buffer) (cdr cat))))
   (and str (get-buffer str)))
 
@@ -96,20 +98,20 @@ as a flag and does not require input."
 (defun orderless-kwd-category (pred regexp)
   "Match candidate category against PRED and REGEXP."
   (lambda (str)
-    (when-let ((cat (car (get-text-property 0 'multi-category str))))
+    (when-let* ((cat (car (get-text-property 0 'multi-category str))))
       (orderless--match-p pred regexp (symbol-name cat)))))
 
 (defun orderless-kwd-group (pred regexp)
   "Match candidate group title against PRED and REGEXP."
-  (when-let ((fun (compat-call completion-metadata-get
-                               (orderless--metadata) 'group-function)))
+  (when-let* ((fun (compat-call completion-metadata-get
+                                (orderless--metadata) 'group-function)))
     (lambda (str)
       (orderless--match-p pred regexp (funcall fun str nil)))))
 
 (defun orderless-kwd-content (_pred regexp)
   "Match buffer content against REGEXP."
   (lambda (str)
-    (when-let ((buf (orderless-kwd--get-buffer str)))
+    (when-let* ((buf (orderless-kwd--get-buffer str)))
       (with-current-buffer buf
         (save-excursion
           (save-restriction
@@ -120,7 +122,7 @@ as a flag and does not require input."
 (defun orderless-kwd-documentation (pred regexp)
   "Match documentation against PRED and REGEXP."
   (lambda (str)
-    (when-let ((sym (orderless-kwd--get-symbol str)))
+    (when-let* ((sym (orderless-kwd--get-symbol str)))
       (orderless--match-p
        pred regexp
        (or (ignore-errors (documentation sym))
@@ -134,9 +136,9 @@ as a flag and does not require input."
   "Match command key binding against PRED and REGEXP."
   (let ((buf (orderless-kwd--orig-buffer)))
     (lambda (str)
-      (when-let ((sym (orderless-kwd--get-symbol str))
-                 ((fboundp sym))
-                 (keys (with-current-buffer buf (where-is-internal sym))))
+      (when-let* ((sym (orderless-kwd--get-symbol str))
+                  ((fboundp sym))
+                  (keys (with-current-buffer buf (where-is-internal sym))))
         (cl-loop
          for key in keys
          thereis (orderless--match-p pred regexp (key-description key)))))))
@@ -145,18 +147,18 @@ as a flag and does not require input."
   "Match variable value against PRED and REGEXP."
   (let ((buf (orderless-kwd--orig-buffer)))
     (lambda (str)
-      (when-let ((sym (intern-soft str))
-                 ((boundp sym)))
-        (let ((print-level 10)
-              (print-length 1000))
-          (orderless--match-p
-           pred regexp (prin1-to-string (buffer-local-value sym buf))))))))
+      (when-let* ((sym (intern-soft str))
+                  ((boundp sym))
+                  (print-level 10)
+                  (print-length 1000))
+        (orderless--match-p
+         pred regexp (prin1-to-string (buffer-local-value sym buf)))))))
 
 (defun orderless-kwd-off (_)
   "Match disabled minor modes."
   (let ((buf (orderless-kwd--orig-buffer)))
     (lambda (str)
-      (when-let ((sym (orderless-kwd--get-symbol str)))
+      (when-let* ((sym (orderless-kwd--get-symbol str)))
         (and (boundp sym)
              (memq sym minor-mode-list)
              (not (buffer-local-value sym buf)))))))
@@ -165,7 +167,7 @@ as a flag and does not require input."
   "Match enabled minor modes."
   (let ((buf (orderless-kwd--orig-buffer)))
     (lambda (str)
-      (when-let ((sym (orderless-kwd--get-symbol str)))
+      (when-let* ((sym (orderless-kwd--get-symbol str)))
         (and (boundp sym)
              (memq sym minor-mode-list)
              (buffer-local-value sym buf))))))
@@ -173,32 +175,32 @@ as a flag and does not require input."
 (defun orderless-kwd-modified (_)
   "Match modified buffers."
   (lambda (str)
-    (when-let ((buf (orderless-kwd--get-buffer str)))
+    (when-let* ((buf (orderless-kwd--get-buffer str)))
       (buffer-modified-p buf))))
 
 (defun orderless-kwd-read-only (_)
   "Match read-only buffers."
   (lambda (str)
-    (when-let ((buf (orderless-kwd--get-buffer str)))
+    (when-let* ((buf (orderless-kwd--get-buffer str)))
       (buffer-local-value 'buffer-read-only buf))))
 
 (defun orderless-kwd-mode (pred regexp)
   "Match buffer mode or bookmark type against PRED and REGEXP."
   (declare-function bookmark-prop-get "bookmark")
   (lambda (str)
-    (if-let ((buf (orderless-kwd--get-buffer str)))
-        (when-let ((mode (buffer-local-value 'major-mode buf)))
+    (if-let* ((buf (orderless-kwd--get-buffer str)))
+        (when-let* ((mode (buffer-local-value 'major-mode buf)))
           (or (orderless--match-p pred regexp (symbol-name mode))
               (orderless--match-p pred regexp
                                   (format-mode-line
                                    (buffer-local-value 'mode-name buf)))))
-      (when-let ((name (if-let ((cat (get-text-property 0 'multi-category 
str)))
+      (when-let* ((name (if-let* ((cat (get-text-property 0 'multi-category 
str)))
                            (and (eq (car cat) 'bookmark) (cdr cat))
                          str))
-                 (bm (assoc name (bound-and-true-p bookmark-alist)))
-                 (handler (or (bookmark-prop-get bm 'handler)
-                              'bookmark-default-handler))
-                 ((symbolp handler)))
+                  (bm (assoc name (bound-and-true-p bookmark-alist)))
+                  (handler (or (bookmark-prop-get bm 'handler)
+                               'bookmark-default-handler))
+                  ((symbolp handler)))
         (orderless--match-p pred regexp
                             (or (get handler 'bookmark-handler-type)
                                 (symbol-name handler)))))))
@@ -206,14 +208,14 @@ as a flag and does not require input."
 (defun orderless-kwd-directory (pred regexp)
   "Match `default-directory' against PRED and REGEXP."
   (lambda (str)
-    (when-let ((buf (orderless-kwd--get-buffer str)))
+    (when-let* ((buf (orderless-kwd--get-buffer str)))
       (orderless--match-p pred regexp
                           (buffer-local-value 'default-directory buf)))))
 
 (defun orderless-kwd-file (pred regexp)
   "Match `buffer-file-truename' against PRED and REGEXP."
   (lambda (str)
-    (when-let ((buf (orderless-kwd--get-buffer str)))
+    (when-let* ((buf (orderless-kwd--get-buffer str)))
       (orderless--match-p pred regexp
                           (buffer-local-value 'buffer-file-truename buf)))))
 
@@ -222,14 +224,14 @@ as a flag and does not require input."
   "Match COMPONENT against the keywords in `orderless-kwd-alist'."
   (when (and (not (equal component ""))
              (= (aref component 0) orderless-kwd-prefix))
-    (if-let ((len (length component))
-             (pos (or (string-match-p
-                       (rx-to-string `(any ,orderless-kwd-separator))
-                       component 1)
-                      len))
-             (sym (intern-soft (substring component 1 pos)))
-             (style (alist-get sym orderless-kwd-alist))
-             ((or (< (1+ pos) len) (cadr style))))
+    (if-let* ((len (length component))
+              (pos (or (string-match-p
+                        (rx-to-string `(any ,orderless-kwd-separator))
+                        component 1)
+                       len))
+              (sym (intern-soft (substring component 1 pos)))
+              (style (alist-get sym orderless-kwd-alist))
+              ((or (< (1+ pos) len) (cadr style))))
         (cons (car style) (substring component (min (1+ pos) len)))
       #'ignore)))
 
diff --git a/orderless.el b/orderless.el
index 4cd03da274..fd72a61029 100644
--- a/orderless.el
+++ b/orderless.el
@@ -173,10 +173,10 @@ style associated to the character."
        ;; Ignore single dispatcher character
        ((and (= len 1) (alist-get (aref component 0) alist)) #'ignore)
        ;; Prefix
-       ((when-let ((style (alist-get (aref component 0) alist)))
+       ((when-let* ((style (alist-get (aref component 0) alist)))
           (cons style (substring component 1))))
        ;; Suffix
-       ((when-let ((style (alist-get (aref component (1- len)) alist)))
+       ((when-let* ((style (alist-get (aref component (1- len)) alist)))
           (cons style (substring component 0 -1))))))))
 
 (defcustom orderless-style-dispatchers (list #'orderless-affix-dispatch)
@@ -312,8 +312,8 @@ which can invert any predicate or regexp."
 
 (defun orderless--metadata ()
   "Return completion metadata iff inside minibuffer."
-  (when-let (((minibufferp))
-             (table minibuffer-completion-table))
+  (when-let* (((minibufferp))
+              (table minibuffer-completion-table))
     ;; Return non-nil metadata iff inside minibuffer
     (or (completion-metadata (buffer-substring-no-properties
                               (minibuffer-prompt-end) (point))
@@ -323,11 +323,11 @@ which can invert any predicate or regexp."
 (defun orderless-annotation (pred regexp)
   "Match candidates where the annotation matches PRED and REGEXP."
   (let ((md (orderless--metadata)))
-    (if-let ((fun (compat-call completion-metadata-get md 
'affixation-function)))
+    (if-let* ((fun (compat-call completion-metadata-get md 
'affixation-function)))
         (lambda (str)
           (cl-loop for s in (cdar (funcall fun (list str)))
                    thereis (orderless--match-p pred regexp s)))
-      (when-let ((fun (compat-call completion-metadata-get md 
'annotation-function)))
+      (when-let* ((fun (compat-call completion-metadata-get md 
'annotation-function)))
           (lambda (str) (orderless--match-p pred regexp (funcall fun str)))))))
 
 ;;; Highlighting matches
@@ -425,8 +425,8 @@ DEFAULT as the list of styles."
    for res = (condition-case nil
                  (funcall style newcomp)
                (wrong-number-of-arguments
-                (when-let ((res (orderless--compile-component
-                                 newcomp index total styles dispatchers)))
+                (when-let* ((res (orderless--compile-component
+                                  newcomp index total styles dispatchers)))
                   (funcall style (car res) (cdr res)))))
    if (functionp res) do (cl-callf orderless--predicate-and pred res)
    else if res collect (if (stringp res) `(regexp ,res) res) into regexps
@@ -553,7 +553,7 @@ matching portions of each candidate are highlighted.
 This function is part of the `orderless' completion style."
   (pcase-let ((`(,prefix ,regexps ,ignore-case ,pred)
                (orderless--compile string table pred)))
-    (when-let ((completions (orderless--filter prefix regexps ignore-case 
table pred)))
+    (when-let* ((completions (orderless--filter prefix regexps ignore-case 
table pred)))
       (if completion-lazy-hilit
           (setq completion-lazy-hilit-fn
                 (apply-partially #'orderless--highlight regexps ignore-case))

Reply via email to