WIP
This commit is contained in:
parent
049485b813
commit
919f7fc010
1 changed files with 18 additions and 17 deletions
35
org-ql.el
35
org-ql.el
|
|
@ -826,25 +826,26 @@ PREDICATES should be the value of `org-ql-predicates'."
|
||||||
(--map (plist-get (cdr it) :normalizers))
|
(--map (plist-get (cdr it) :normalizers))
|
||||||
(-flatten-n 1))))
|
(-flatten-n 1))))
|
||||||
(fset 'org-ql--normalize-query
|
(fset 'org-ql--normalize-query
|
||||||
`(lambda (query)
|
(byte-compile
|
||||||
"FIXME"
|
`(lambda (query)
|
||||||
(cl-labels ((rec (element)
|
"FIXME"
|
||||||
(pcase element
|
(cl-labels ((rec (element)
|
||||||
(`(or . ,clauses) `(or ,@(mapcar #'rec clauses)))
|
(pcase element
|
||||||
(`(and . ,clauses) `(and ,@(mapcar #'rec clauses)))
|
(`(or . ,clauses) `(or ,@(mapcar #'rec clauses)))
|
||||||
(`(not . ,clauses) `(not ,@(mapcar #'rec clauses)))
|
(`(and . ,clauses) `(and ,@(mapcar #'rec clauses)))
|
||||||
(`(when ,condition . ,clauses) `(when ,(rec condition)
|
(`(not . ,clauses) `(not ,@(mapcar #'rec clauses)))
|
||||||
,@(mapcar #'rec clauses)))
|
(`(when ,condition . ,clauses) `(when ,(rec condition)
|
||||||
(`(unless ,condition . ,clauses) `(unless ,(rec condition)
|
,@(mapcar #'rec clauses)))
|
||||||
,@(mapcar #'rec clauses)))
|
(`(unless ,condition . ,clauses) `(unless ,(rec condition)
|
||||||
;; TODO: Combine (regexp) when appropriate (i.e. inside an OR, not an AND).
|
,@(mapcar #'rec clauses)))
|
||||||
((pred stringp) `(regexp ,element))
|
;; 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.
|
;; Any other form: passed through unchanged.
|
||||||
(_ element))))
|
(_ element))))
|
||||||
(rec query))))))
|
(rec query)))))))
|
||||||
|
|
||||||
(defun org-ql--define-preamble-fn (predicates)
|
(defun org-ql--define-preamble-fn (predicates)
|
||||||
"Define function `org-ql--query-preamble' for PREDICATES.
|
"Define function `org-ql--query-preamble' for PREDICATES.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue