org-ql--plain-query: using org-ql-default-predicate when no predicate is found

This commit is contained in:
Feng Shu 2019-12-08 13:45:29 +08:00
parent cc61045c3f
commit a8495829d2

View file

@ -109,6 +109,10 @@ the value returned by it at that node.")
"Plist of predicates, their corresponding functions, and their docstrings. "Plist of predicates, their corresponding functions, and their docstrings.
This list should not contain any duplicates.") This list should not contain any duplicates.")
(defvar org-ql-default-predicate 'regexp
"The default predicate used by `org-ql--plain-query'.")
;;;; Customization ;;;; Customization
(defgroup org-ql nil (defgroup org-ql nil
@ -1495,7 +1499,8 @@ Builds the PEG expression using predicates defined in
(-sort (-on #'> #'length))))) (-sort (-on #'> #'length)))))
`(cl-defun org-ql--plain-query (input &optional (boolean 'and)) `(cl-defun org-ql--plain-query (input &optional (boolean 'and))
"Return query parsed from plain query string INPUT. "Return query parsed from plain query string INPUT.
Multiple predicates are combined with BOOLEAN." Multiple predicates are combined with BOOLEAN.
If no predicates are found, `org-ql-default-predicate' will be used."
(unless (s-blank-str? input) (unless (s-blank-str? input)
(let* ((query (peg-parse-string (let* ((query (peg-parse-string
((query (+ term ((query (+ term
@ -1506,7 +1511,7 @@ Multiple predicates are combined with BOOLEAN."
positive-term)) positive-term))
(positive-term (or (and predicate-with-args `(pred args -- (cons (intern pred) args))) (positive-term (or (and predicate-with-args `(pred args -- (cons (intern pred) args)))
(and predicate-without-args `(pred -- (list (intern pred)))) (and predicate-without-args `(pred -- (list (intern pred))))
(and plain-string `(s -- (list 'regexp s))))) (and plain-string `(s -- (list org-ql-default-predicate s)))))
(plain-string (or quoted-arg unquoted-arg)) (plain-string (or quoted-arg unquoted-arg))
(predicate-with-args (substring predicate) ":" args) (predicate-with-args (substring predicate) ":" args)
(predicate-without-args (substring predicate) ":") (predicate-without-args (substring predicate) ":")