From 919f7fc01003ec0baab86b7a69ae736c418ff09d Mon Sep 17 00:00:00 2001 From: Adam Porter Date: Sun, 22 Nov 2020 13:55:03 -0600 Subject: [PATCH] WIP --- org-ql.el | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/org-ql.el b/org-ql.el index 96a23e7..fb13ad4 100644 --- a/org-ql.el +++ b/org-ql.el @@ -826,25 +826,26 @@ PREDICATES should be the value of `org-ql-predicates'." (--map (plist-get (cdr it) :normalizers)) (-flatten-n 1)))) (fset 'org-ql--normalize-query - `(lambda (query) - "FIXME" - (cl-labels ((rec (element) - (pcase element - (`(or . ,clauses) `(or ,@(mapcar #'rec clauses))) - (`(and . ,clauses) `(and ,@(mapcar #'rec clauses))) - (`(not . ,clauses) `(not ,@(mapcar #'rec clauses))) - (`(when ,condition . ,clauses) `(when ,(rec condition) - ,@(mapcar #'rec clauses))) - (`(unless ,condition . ,clauses) `(unless ,(rec condition) - ,@(mapcar #'rec clauses))) - ;; TODO: Combine (regexp) when appropriate (i.e. inside an OR, not an AND). - ((pred stringp) `(regexp ,element)) + (byte-compile + `(lambda (query) + "FIXME" + (cl-labels ((rec (element) + (pcase element + (`(or . ,clauses) `(or ,@(mapcar #'rec clauses))) + (`(and . ,clauses) `(and ,@(mapcar #'rec clauses))) + (`(not . ,clauses) `(not ,@(mapcar #'rec clauses))) + (`(when ,condition . ,clauses) `(when ,(rec condition) + ,@(mapcar #'rec clauses))) + (`(unless ,condition . ,clauses) `(unless ,(rec condition) + ,@(mapcar #'rec clauses))) + ;; TODO: Combine (regexp) when appropriate (i.e. inside an OR, not an AND). + ((pred stringp) `(regexp ,element)) - ,@normalizer-patterns + ,@normalizer-patterns - ;; Any other form: passed through unchanged. - (_ element)))) - (rec query)))))) + ;; Any other form: passed through unchanged. + (_ element)))) + (rec query))))))) (defun org-ql--define-preamble-fn (predicates) "Define function `org-ql--query-preamble' for PREDICATES.