emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/helm 6c2874b055 4/5: Cleanup helm-cr-default-transformer


From: ELPA Syncer
Subject: [nongnu] elpa/helm 6c2874b055 4/5: Cleanup helm-cr-default-transformer
Date: Fri, 13 May 2022 04:58:30 -0400 (EDT)

branch: elpa/helm
commit 6c2874b055c07e74f4468739f5df2e29e404b534
Author: Thierry Volpiatto <thievol@posteo.net>
Commit: Thierry Volpiatto <thievol@posteo.net>

    Cleanup helm-cr-default-transformer
---
 helm-mode.el | 70 +++++++++++++++++++++++++-----------------------------------
 1 file changed, 29 insertions(+), 41 deletions(-)

diff --git a/helm-mode.el b/helm-mode.el
index 14ddcc5a16..bcb4f2ad63 100644
--- a/helm-mode.el
+++ b/helm-mode.el
@@ -492,51 +492,39 @@ If COLLECTION is an `obarray', a TEST should be needed. 
See `obarray'."
                  (t (all-completions input collection test)))))
       (if sort-fn (sort cands sort-fn) cands))))
 
-(defun helm-cr--pattern-in-candidates-p (candidates)
-  (or (assoc helm-pattern candidates)
-      (assq (intern helm-pattern) candidates)
-      (member helm-pattern candidates)
-      (member (downcase helm-pattern) candidates)
-      (member (upcase helm-pattern) candidates)))
+(cl-defun helm-cr--pattern-in-candidates-p (candidates &optional (pattern 
helm-pattern))
+  (or (assoc pattern candidates)
+      (assq (intern pattern) candidates)
+      (member pattern candidates)
+      (member (downcase pattern) candidates)
+      (member (upcase pattern) candidates)))
 
 (defun helm-cr-default-transformer (candidates source)
   "Default filter candidate function for `helm-comp-read'."
-  (let ((must-match (helm-get-attr 'must-match source))
-        unknown-pattern)
-    (unless (or (eq must-match t)
-                (string= helm-pattern "")
-                ;; Check if pattern is already member of candidates.
-                (helm-cr--pattern-in-candidates-p candidates))
-      (setq candidates (append (list
-                                ;; Unquote helm-pattern
-                                ;; when it is added
-                                ;; as candidate: Why? (Bug#2015)
-                                ;; (replace-regexp-in-string
-                                ;;  "\\s\\" "" helm-pattern)
-                                helm-pattern)
-                               candidates))
-      ;; Notify pattern have been added to candidates.
-      (setq unknown-pattern t))
+  (let ((must-match (helm-get-attr 'must-match source)))
     (cl-loop for c in candidates
-             for cand = (if (stringp c)
-                            (replace-regexp-in-string "\\s\\" "" c)
-                          c)
-             for pat = (replace-regexp-in-string "\\s\\" "" helm-pattern)
-             if (and (or (equal c pat) (equal c helm-pattern))
-                     unknown-pattern)
-             collect
-             (cons (concat (propertize
-                            " " 'display
-                            (propertize "[?]" 'face 'helm-ff-prefix))
-                           c)
-                   c)
-             into lst
-             else collect (if (and (stringp cand)
-                                   (string-match "\n" cand))
-                              (cons (replace-regexp-in-string "\n" "->" c) c)
-                            c)
-             into lst
-             finally return (helm-fast-remove-dups lst :test 'equal))))
+             for cand = (let ((elm (if (stringp c)
+                                       (replace-regexp-in-string "\\s\\" "" c)
+                                     c)))
+                          (cond ((and (stringp elm)
+                                      (string-match "\n" elm))
+                                 (cons (replace-regexp-in-string "\n" "->" 
elm) c))
+                                (t c)))
+             collect cand into lst
+             finally return
+             ;; Unquote helm-pattern when it is added as candidate
+             ;; (Bug#2015).
+             (let ((pat (replace-regexp-in-string "\\s\\" "" helm-pattern)))
+               (if (or (string= pat "") (helm-cr--pattern-in-candidates-p lst 
pat))
+                   lst
+                 (append (list (cons (concat (propertize
+                                              " " 'display
+                                              (propertize "[?]"
+                                                          'face 'helm-ff-prefix
+                                                          'unknown t))
+                                             pat)
+                                     pat))
+                         lst))))))
 
 (defun helm-comp-read--move-to-first-real-candidate ()
   (helm-aif (helm-get-selection nil 'withprop)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]