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

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

[elpa] externals/dtache b28711936d 1/2: Add hidden source to dtache-cons


From: ELPA Syncer
Subject: [elpa] externals/dtache b28711936d 1/2: Add hidden source to dtache-consult
Date: Thu, 10 Feb 2022 15:57:34 -0500 (EST)

branch: externals/dtache
commit b28711936dbde272d0d41ca403be6d0ff506d163
Author: Niklas Eklund <niklas.eklund@posteo.net>
Commit: Niklas Eklund <niklas.eklund@posteo.net>

    Add hidden source to dtache-consult
---
 dtache-consult.el | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/dtache-consult.el b/dtache-consult.el
index f70017cd8b..95b3d99957 100644
--- a/dtache-consult.el
+++ b/dtache-consult.el
@@ -34,6 +34,11 @@
 
 ;;;; Variables
 
+(defcustom dtache-consult-hidden-predicates nil
+  "Predicates for sessions that should be hidden."
+  :type '(repeat function)
+  :group 'dtache)
+
 (defcustom dtache-consult-sources
   '(dtache-consult--source-session
     dtache-consult--source-active-session
@@ -55,9 +60,32 @@ See `consult-multi' for a description of the source values."
     :action (lambda (x) (dtache-open-session (dtache--decode-session x)))
     :items
     ,(lambda ()
-       (seq-map #'car (dtache-session-candidates (dtache-get-sessions)))))
+       (mapcar #'car
+               (seq-remove
+                (lambda (x)
+                  (seq-find (lambda (predicate)
+                              (apply predicate `(,(cdr x))))
+                         dtache-consult-hidden-predicates))
+                (dtache-session-candidates (dtache-get-sessions))))))
   "All `dtache' sessions as a source for `consult'.")
 
+(defvar dtache-consult--source-hidden-session
+  `(:narrow (?\s . "Hidden")
+    :hidden t
+    :category dtache
+    :annotate dtache-session-annotation
+    :action (lambda (x) (dtache-open-session (dtache--decode-session x)))
+    :items
+    ,(lambda ()
+       (mapcar #'car
+               (seq-filter
+                (lambda (x)
+                  (seq-find (lambda (predicate)
+                              (apply predicate `(,(cdr x))))
+                         dtache-consult-hidden-predicates))
+                (dtache-session-candidates (dtache-get-sessions))))))
+  "Active `dtache' sessions as a source for `consult'.")
+
 (defvar dtache-consult--source-active-session
   `(:narrow (?a . "Active")
     :hidden t



reply via email to

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