Merge: 0.3.2

This commit is contained in:
Adam Porter 2019-10-19 02:01:13 -05:00
commit d5c26b7f60
5 changed files with 26 additions and 6 deletions

View file

@ -388,6 +388,13 @@ Expands into a call to ~org-ql-select~ with the same arguments. For convenience
*Internal* *Internal*
+ Added generic node data cache to speed up recursive, tree-based queries. + Added generic node data cache to speed up recursive, tree-based queries.
** 0.3.2
*Fixed*
+ In =org-ql-search=, accept symbol as ~:super-groups~ argument.
+ In the =This week= and =Next week= default =org-ql-views= views, set timestamps for beginning-of-week to 00:00:00 and end-of-week to 23:59:59.
+ Plain quoted-phrases in non-sexp queries.
** 0.3.1 ** 0.3.1
*Fixed* *Fixed*

View file

@ -212,7 +212,9 @@ necessary."
(org-ql-view-super-groups super-groups) (org-ql-view-super-groups super-groups)
(org-ql-view-title title)) (org-ql-view-title title))
(when super-groups (when super-groups
(let ((org-super-agenda-groups super-groups)) (let ((org-super-agenda-groups (cl-etypecase super-groups
(symbol (symbol-value super-groups))
(list super-groups))))
(setf strings (org-super-agenda--group-items strings)))) (setf strings (org-super-agenda--group-items strings))))
(org-ql-view--display :buffer buffer :header header (org-ql-view--display :buffer buffer :header header
:string (s-join "\n" strings))))) :string (s-join "\n" strings)))))

View file

@ -147,8 +147,13 @@ See info node `(elisp)Cyclic Window Ordering'."
(cons "This week" (lambda () (cons "This week" (lambda ()
"Show items with an active timestamp during this calendar week." "Show items with an active timestamp during this calendar week."
(interactive) (interactive)
(let* ((beg-of-week (ts-adjust 'day (- (ts-dow (ts-now))) (ts-now))) (let* ((ts (ts-now))
(end-of-week (ts-adjust 'day (- 6 (ts-dow (ts-now))) (ts-now)))) (beg-of-week (->> ts
(ts-adjust 'day (- (ts-dow (ts-now))))
(ts-apply :hour 0 :minute 0 :second 0)))
(end-of-week (->> ts
(ts-adjust 'day (- 6 (ts-dow (ts-now))))
(ts-apply :hour 23 :minute 59 :second 59))))
(org-ql-search (org-agenda-files) (org-ql-search (org-agenda-files)
`(ts-active :from ,beg-of-week `(ts-active :from ,beg-of-week
:to ,end-of-week) :to ,end-of-week)
@ -159,8 +164,12 @@ See info node `(elisp)Cyclic Window Ordering'."
"Show items with an active timestamp during the next calendar week." "Show items with an active timestamp during the next calendar week."
(interactive) (interactive)
(let* ((ts (ts-adjust 'day 7 (ts-now))) (let* ((ts (ts-adjust 'day 7 (ts-now)))
(beg-of-week (ts-adjust 'day (- (ts-dow (ts-now))) ts)) (beg-of-week (->> ts
(end-of-week (ts-adjust 'day (- 6 (ts-dow (ts-now))) ts))) (ts-adjust 'day (- (ts-dow (ts-now))))
(ts-apply :hour 0 :minute 0 :second 0)))
(end-of-week (->> ts
(ts-adjust 'day (- 6 (ts-dow (ts-now))))
(ts-apply :hour 23 :minute 59 :second 59))))
(org-ql-search (org-agenda-files) (org-ql-search (org-agenda-files)
`(ts-active :from ,beg-of-week `(ts-active :from ,beg-of-week
:to ,end-of-week) :to ,end-of-week)

View file

@ -1496,7 +1496,7 @@ Multiple predicates are combined with BOOLEAN."
(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 'regexp s)))))
(plain-string (substring (+ (not (syntax-class whitespace)) (any)))) (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) ":")
(predicate (or ,@predicates)) (predicate (or ,@predicates))

View file

@ -246,6 +246,8 @@ RESULTS should be a list of strings as returned by
(expect (org-ql--plain-query "scheduled") (expect (org-ql--plain-query "scheduled")
;; No colon after keyword, so not a predicate query. ;; No colon after keyword, so not a predicate query.
:to-equal '(regexp "scheduled")) :to-equal '(regexp "scheduled"))
(expect (org-ql--plain-query "\"quoted phrase\"")
:to-equal '(regexp "quoted phrase"))
(expect (org-ql--plain-query "regexp:word") (expect (org-ql--plain-query "regexp:word")
:to-equal '(regexp "word")) :to-equal '(regexp "word"))
(expect (org-ql--plain-query "regexp:\"quoted phrase\"") (expect (org-ql--plain-query "regexp:\"quoted phrase\"")