Change: (--query-preamble) Use pcase for clarity
This commit is contained in:
parent
0fdfa65bef
commit
a56d173eb5
1 changed files with 38 additions and 38 deletions
76
org-ql.el
76
org-ql.el
|
|
@ -261,44 +261,44 @@ a list of defined `org-ql' sorting methods: `date', `deadline',
|
||||||
When QUERY has a clause with a corresponding preamble, and it's
|
When QUERY has a clause with a corresponding preamble, and it's
|
||||||
appropriate to use one (i.e. the clause is not in an `or'),
|
appropriate to use one (i.e. the clause is not in an `or'),
|
||||||
replace the clause with a preamble."
|
replace the clause with a preamble."
|
||||||
(if org-ql-use-preamble
|
(pcase org-ql-use-preamble
|
||||||
(let (org-ql-preamble)
|
('nil (list query nil))
|
||||||
(cl-labels ((rec (element)
|
(_ (let (org-ql-preamble)
|
||||||
(or (when org-ql-preamble
|
(cl-labels ((rec (element)
|
||||||
;; Only one preamble is allowed
|
(or (when org-ql-preamble
|
||||||
element)
|
;; Only one preamble is allowed
|
||||||
(pcase element
|
element)
|
||||||
(`(or _) element)
|
(pcase element
|
||||||
(`(regexp . ,regexps)
|
(`(or _) element)
|
||||||
(let* ((regexp (rx-to-string `(or ,@regexps))))
|
(`(regexp . ,regexps)
|
||||||
(setq org-ql-preamble regexp)
|
(let* ((regexp (rx-to-string `(or ,@regexps))))
|
||||||
;; Return nil
|
(setq org-ql-preamble regexp)
|
||||||
nil))
|
;; Return nil
|
||||||
(`(todo . ,(and todo-keywords (guard todo-keywords)))
|
nil))
|
||||||
(let* ((regexps (--map (list 'regexp
|
(`(todo . ,(and todo-keywords (guard todo-keywords)))
|
||||||
(format org-heading-keyword-regexp-format it))
|
(let* ((regexps (--map (list 'regexp
|
||||||
todo-keywords))
|
(format org-heading-keyword-regexp-format it))
|
||||||
(regexp (rx-to-string `(or ,@regexps))))
|
todo-keywords))
|
||||||
(setq org-ql-preamble regexp)
|
(regexp (rx-to-string `(or ,@regexps))))
|
||||||
;; Return nil
|
(setq org-ql-preamble regexp)
|
||||||
nil))
|
;; Return nil
|
||||||
(`(level ,num)
|
nil))
|
||||||
(let* ((regexp (rx-to-string `(seq bol (repeat ,num "*") " "))))
|
(`(level ,num)
|
||||||
(setq org-ql-preamble regexp)
|
(let* ((regexp (rx-to-string `(seq bol (repeat ,num "*") " "))))
|
||||||
nil))
|
(setq org-ql-preamble regexp)
|
||||||
(`(and . ,rest)
|
nil))
|
||||||
(let ((clauses (mapcar #'rec rest)))
|
(`(and . ,rest)
|
||||||
`(and ,@(-non-nil clauses))))
|
(let ((clauses (mapcar #'rec rest)))
|
||||||
(_ element)))))
|
`(and ,@(-non-nil clauses))))
|
||||||
(setq query (pcase (mapcar #'rec (list query))
|
(_ element)))))
|
||||||
((or `(nil)
|
(setq query (pcase (mapcar #'rec (list query))
|
||||||
`((nil))
|
((or `(nil)
|
||||||
`((and))
|
`((nil))
|
||||||
`((or)))
|
`((and))
|
||||||
t)
|
`((or)))
|
||||||
(query (-flatten-n 1 query))))
|
t)
|
||||||
(list query org-ql-preamble)))
|
(query (-flatten-n 1 query))))
|
||||||
(list query nil)))
|
(list query org-ql-preamble))))))
|
||||||
|
|
||||||
(defun org-ql--select-cached (&rest args)
|
(defun org-ql--select-cached (&rest args)
|
||||||
"Return results for ARGS and current buffer using cache."
|
"Return results for ARGS and current buffer using cache."
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue