Merge: v0.8.9

This commit is contained in:
Adam Porter 2024-09-05 18:58:13 -05:00
commit c3519fb4a0
5 changed files with 227 additions and 153 deletions

View file

@ -560,13 +560,20 @@ Simple links may also be written manually in either sexp or non-sexp form, like:
+ Command ~org-ql-find~ respects narrowing of the current buffer by default, allowing searching within the narrowed region. (Using one ~C-u~ argument widens the current buffer, and using two ~C-u~ arguments prompts for the buffers to search.) + Command ~org-ql-find~ respects narrowing of the current buffer by default, allowing searching within the narrowed region. (Using one ~C-u~ argument widens the current buffer, and using two ~C-u~ arguments prompts for the buffers to search.)
+ Function ~org-ql-completing-read~ accepts a new ~NARROWP~ argument, which is passed to ~org-ql-select~. + Function ~org-ql-completing-read~ accepts a new ~NARROWP~ argument, which is passed to ~org-ql-select~.
*Compatibility*
+ Fix compilation error on Emacs 30. ([[https://github.com/alphapapa/org-ql/issues/433][#433]]. Thanks to [[https://github.com/akirak][Akira Komamura]] and [[https://github.com/monnier][Stefan Monnier]].)
*** helm-org-ql *** helm-org-ql
Tagged v0.6.2, fixing a compilation warning. Tagged v0.6.2, fixing a compilation warning.
** 0.8.9
*Fixes*
+ Predicate ~property~ when called with argument form ~(property "PROPERTY-NAME" :inherit t)~. ([[https://github.com/alphapapa/org-ql/issues/460][#460]]. Thanks to [[https://github.com/Stewmath][Stewmath]] for reporting.)
+ Predicate ~level~'s preamble optimizer allows expressions in place of the numeric argument. (See [[https://github.com/alphapapa/org-ql/issues/460][#460]]. Thanks to [[https://github.com/Stewmath][Stewmath]] for reporting.)
+ Reading of view settings from Org links in upcoming Emacs version. ([[https://github.com/alphapapa/org-ql/issues/461][#461]]. Thanks to [[https://github.com/snogge][Ola Nilsson]] for help debugging, and for maintaining [[https://github.com/jorgenschaefer/emacs-buttercup][Buttercup]].)
*Compatibility*
+ Fix compilation error on Emacs 30. ([[https://github.com/alphapapa/org-ql/issues/433][#433]]. Thanks to [[https://github.com/akirak][Akira Komamura]] and [[https://github.com/monnier][Stefan Monnier]].)
** 0.8.8 ** 0.8.8
*Fixes* *Fixes*

View file

@ -626,7 +626,7 @@ purposes of compatibility with changes in Org 9.4."
(query (url-unhex-string query)) (query (url-unhex-string query))
(params (when params (url-parse-query-string params))) (params (when params (url-parse-query-string params)))
;; `url-parse-query-string' returns "improper" alists, which makes this awkward. ;; `url-parse-query-string' returns "improper" alists, which makes this awkward.
(sort (when-let* ((stored-string (alist-get "sort" params nil nil #'string=)) (sort (when-let* ((stored-string (car (alist-get "sort" params nil nil #'string=)))
(read-value (read stored-string))) (read-value (read stored-string)))
;; Ensure the value is either a symbol or list of symbols (which excludes lambdas). ;; Ensure the value is either a symbol or list of symbols (which excludes lambdas).
(unless (or (symbolp read-value) (cl-every #'symbolp read-value)) (unless (or (symbolp read-value) (cl-every #'symbolp read-value))
@ -634,11 +634,11 @@ purposes of compatibility with changes in Org 9.4."
read-value)) read-value))
read-value)) read-value))
(org-super-agenda-allow-unsafe-groups nil) ; Disallow unsafe group selectors. (org-super-agenda-allow-unsafe-groups nil) ; Disallow unsafe group selectors.
(groups (--when-let (alist-get "super-groups" params nil nil #'string=) (groups (--when-let (car (alist-get "super-groups" params nil nil #'string=))
(read it))) (read it)))
(title (--when-let (alist-get "title" params nil nil #'string=) (title (--when-let (car (alist-get "title" params nil nil #'string=))
(read it))) (read it)))
(buffers-files (--if-let (alist-get "buffers-files" params nil nil #'string=) (buffers-files (--if-let (car (alist-get "buffers-files" params nil nil #'string=))
(org-ql-view--expand-buffers-files (read it)) (org-ql-view--expand-buffers-files (read it))
(current-buffer)))) (current-buffer))))
(unless (or (bufferp buffers-files) (unless (or (bufferp buffers-files)

View file

@ -1537,7 +1537,8 @@ COMPARATOR may be `<', `<=', `>', or `>='."
;; is "h:" while the user is typing. ;; is "h:" while the user is typing.
(list :regexp (rx bol (1+ "*") " ") (list :regexp (rx bol (1+ "*") " ")
:case-fold t)) :case-fold t))
(`(,predicate-names ,comparator-or-num ,num) ((and `(,predicate-names ,comparator-or-num ,num)
(guard (numberp num)))
(let ((repeat (pcase comparator-or-num (let ((repeat (pcase comparator-or-num
('< `(repeat 1 ,(1- num) "*")) ('< `(repeat 1 ,(1- num) "*"))
('<= `(repeat 1 ,num "*")) ('<= `(repeat 1 ,num "*"))
@ -1546,7 +1547,8 @@ COMPARATOR may be `<', `<=', `>', or `>='."
((pred integerp) `(repeat ,comparator-or-num ,num "*"))))) ((pred integerp) `(repeat ,comparator-or-num ,num "*")))))
(list :regexp (rx-to-string `(seq bol ,repeat " ") t) (list :regexp (rx-to-string `(seq bol ,repeat " ") t)
:case-fold t))) :case-fold t)))
(`(,predicate-names ,num) ((and `(,predicate-names ,num)
(guard (numberp num)))
(list :regexp (rx-to-string `(seq bol (repeat ,num "*") " ") t) (list :regexp (rx-to-string `(seq bol (repeat ,num "*") " ") t)
:case-fold t))) :case-fold t)))
;; NOTE: It might be necessary to take into account `org-odd-levels'; see docstring for ;; NOTE: It might be necessary to take into account `org-odd-levels'; see docstring for
@ -1802,7 +1804,24 @@ interpreted as nil or non-nil)."
;; predicate test for whether an entry has local ;; predicate test for whether an entry has local
;; properties when no arguments are given. ;; properties when no arguments are given.
(list 'property "")) (list 'property ""))
(`(,predicate-names ,property ,value . ,plist) (`(,predicate-names ,property)
;; Convert keyword property arguments to strings. Non-sexp
;; queries result in keyword property arguments (because to do
;; otherwise would require ugly special-casing in the parsing).
(when (keywordp property)
(setf property (substring (symbol-name property) 1)))
(list 'property property))
(`(,predicate-names ,property . ,rest)
(pcase rest
(`(,value)
;; Convert keyword property arguments to strings. Non-sexp
;; queries result in keyword property arguments (because to do
;; otherwise would require ugly special-casing in the parsing).
(when (keywordp property)
(setf property (substring (symbol-name property) 1)))
(list 'property property value))
((and `(,value . ,plist)
(guard (not (keywordp value))))
;; Convert keyword property arguments to strings. Non-sexp ;; Convert keyword property arguments to strings. Non-sexp
;; queries result in keyword property arguments (because to do ;; queries result in keyword property arguments (because to do
;; otherwise would require ugly special-casing in the parsing). ;; otherwise would require ugly special-casing in the parsing).
@ -1811,25 +1830,36 @@ interpreted as nil or non-nil)."
(list 'property property value (list 'property property value
:inherit (cond ((plist-member plist :inherit) (plist-get plist :inherit)) :inherit (cond ((plist-member plist :inherit) (plist-get plist :inherit))
((listp org-use-property-inheritance) ''selective) ((listp org-use-property-inheritance) ''selective)
(t org-use-property-inheritance))))) (t org-use-property-inheritance))))
((and plist (guard (keywordp (car rest))))
;; Convert keyword property arguments to strings. Non-sexp
;; queries result in keyword property arguments (because to do
;; otherwise would require ugly special-casing in the parsing).
(when (keywordp property)
(setf property (substring (symbol-name property) 1)))
(list 'property property nil
:inherit (cond ((plist-member plist :inherit) (plist-get plist :inherit))
((listp org-use-property-inheritance) ''selective)
(t org-use-property-inheritance)))))))
;; MAYBE: Should case folding be disabled for properties? What about values? ;; MAYBE: Should case folding be disabled for properties? What about values?
;; MAYBE: Support (property) without args. ;; MAYBE: Support (property) without args.
;; NOTE: When inheritance is enabled, the preamble can't be used, ;; NOTE: When inheritance is enabled, the preamble can't be used,
;; which will make the search slower. ;; which will make the search slower.
:preambles ((`(,predicate-names ,property ,value . ,(map :inherit)) :preambles (((and `(,predicate-names ,property ,value)
(guard (atom value)))
;; We do NOT return nil, because the predicate still needs to be tested, ;; We do NOT return nil, because the predicate still needs to be tested,
;; because the regexp could match a string not inside a property drawer. ;; because the regexp could match a string not inside a property drawer.
(list :regexp (unless inherit (list :regexp (rx-to-string `(seq bol (0+ space) ":" ,property ":"
(rx-to-string `(seq bol (0+ space) ":" ,property ":" (1+ space) ,value (0+ space) eol))
(1+ space) ,value (0+ space) eol)))
:query query)) :query query))
(`(,predicate-names ,property . ,(map :inherit)) ((and `(,predicate-names ,property ,value . ,plist)
;; We do NOT return nil, because the predicate still needs to be tested, (guard (keywordp (car plist))))
;; WE do NOT return nil, because the predicate still needs to be tested,
;; because the regexp could match a string not inside a property drawer. ;; because the regexp could match a string not inside a property drawer.
;; NOTE: The preamble only matches if there appears to be a value. ;; NOTE: The preamble only matches if there appears to be a value.
;; A line like ":ID: " without any other text does not match. ;; A line like ":ID: " without any other text does not match.
(list :regexp (unless inherit (list :regexp (unless (plist-get plist :inherit)
(rx-to-string `(seq bol (0+ space) ":" ,property ":" (1+ space) (rx-to-string `(seq bol (0+ space) ":" ,property ":" (1+ space)
(minimal-match (1+ not-newline)) eol))) (minimal-match (1+ not-newline)) eol)))
:query query))) :query query)))
@ -1841,7 +1871,7 @@ interpreted as nil or non-nil)."
;; Check that PROPERTY exists ;; Check that PROPERTY exists
(org-ql--value-at (org-ql--value-at
(point) (lambda () (point) (lambda ()
(org-entry-get (point) property)))) (org-entry-get (point) property inherit))))
(_ (_
;; Check that PROPERTY has VALUE. ;; Check that PROPERTY has VALUE.

View file

@ -74,6 +74,7 @@ Functions / Macros
Changelog Changelog
* 0.9-pre: 09-pre. * 0.9-pre: 09-pre.
* 0.8.9: 089.
* 0.8.8: 088. * 0.8.8: 088.
* 0.8.7: 087. * 0.8.7: 087.
* 0.8.6: 086. * 0.8.6: 086.
@ -1047,6 +1048,7 @@ releases.
* Menu: * Menu:
* 0.9-pre: 09-pre. * 0.9-pre: 09-pre.
* 0.8.9: 089.
* 0.8.8: 088. * 0.8.8: 088.
* 0.8.7: 087. * 0.8.7: 087.
* 0.8.6: 086. * 0.8.6: 086.
@ -1088,7 +1090,7 @@ releases.
* 0.1: 01. * 0.1: 01.
 
File: README.info, Node: 09-pre, Next: 088, Up: Changelog File: README.info, Node: 09-pre, Next: 089, Up: Changelog
5.1 0.9-pre 5.1 0.9-pre
=========== ===========
@ -1101,12 +1103,6 @@ File: README.info, Node: 09-pre, Next: 088, Up: Changelog
• Function org-ql-completing-read accepts a new NARROWP argument, • Function org-ql-completing-read accepts a new NARROWP argument,
which is passed to org-ql-select. which is passed to org-ql-select.
*Compatibility*
• Fix compilation error on Emacs 30. (#433
(https://github.com/alphapapa/org-ql/issues/433). Thanks to Akira
Komamura (https://github.com/akirak) and Stefan Monnier
(https://github.com/monnier).)
* Menu: * Menu:
* helm-org-ql: helm-org-ql (1). * helm-org-ql: helm-org-ql (1).
@ -1120,9 +1116,36 @@ File: README.info, Node: helm-org-ql (1), Up: 09-pre
Tagged v0.6.2, fixing a compilation warning. Tagged v0.6.2, fixing a compilation warning.
 
File: README.info, Node: 088, Next: 087, Prev: 09-pre, Up: Changelog File: README.info, Node: 089, Next: 088, Prev: 09-pre, Up: Changelog
5.2 0.8.8 5.2 0.8.9
=========
*Fixes*
• Predicate property when called with argument form (property
"PROPERTY-NAME" :inherit t). (#460
(https://github.com/alphapapa/org-ql/issues/460). Thanks to
Stewmath (https://github.com/Stewmath) for reporting.)
• Predicate levels preamble optimizer allows expressions in place
of the numeric argument. (See #460
(https://github.com/alphapapa/org-ql/issues/460). Thanks to
Stewmath (https://github.com/Stewmath) for reporting.)
• Reading of view settings from Org links in upcoming Emacs version.
(#461 (https://github.com/alphapapa/org-ql/issues/461). Thanks to
Ola Nilsson (https://github.com/snogge) for help debugging, and for
maintaining Buttercup
(https://github.com/jorgenschaefer/emacs-buttercup).)
*Compatibility*
• Fix compilation error on Emacs 30. (#433
(https://github.com/alphapapa/org-ql/issues/433). Thanks to Akira
Komamura (https://github.com/akirak) and Stefan Monnier
(https://github.com/monnier).)

File: README.info, Node: 088, Next: 087, Prev: 089, Up: Changelog
5.3 0.8.8
========= =========
*Fixes* *Fixes*
@ -1144,7 +1167,7 @@ File: README.info, Node: 088, Next: 087, Prev: 09-pre, Up: Changelog
 
File: README.info, Node: 087, Next: 086, Prev: 088, Up: Changelog File: README.info, Node: 087, Next: 086, Prev: 088, Up: Changelog
5.3 0.8.7 5.4 0.8.7
========= =========
*Fixes* *Fixes*
@ -1172,7 +1195,7 @@ File: README.info, Node: 087, Next: 086, Prev: 088, Up: Changelog
 
File: README.info, Node: 086, Next: 085, Prev: 087, Up: Changelog File: README.info, Node: 086, Next: 085, Prev: 087, Up: Changelog
5.4 0.8.6 5.5 0.8.6
========= =========
*Fixes* *Fixes*
@ -1182,7 +1205,7 @@ File: README.info, Node: 086, Next: 085, Prev: 087, Up: Changelog
 
File: README.info, Node: 085, Next: 084, Prev: 086, Up: Changelog File: README.info, Node: 085, Next: 084, Prev: 086, Up: Changelog
5.5 0.8.5 5.6 0.8.5
========= =========
*Fixes* *Fixes*
@ -1199,7 +1222,7 @@ File: README.info, Node: 085, Next: 084, Prev: 086, Up: Changelog
 
File: README.info, Node: 084, Next: 083, Prev: 085, Up: Changelog File: README.info, Node: 084, Next: 083, Prev: 085, Up: Changelog
5.6 0.8.4 5.7 0.8.4
========= =========
*Fixes* *Fixes*
@ -1213,7 +1236,7 @@ File: README.info, Node: 084, Next: 083, Prev: 085, Up: Changelog
 
File: README.info, Node: 083, Next: 082, Prev: 084, Up: Changelog File: README.info, Node: 083, Next: 082, Prev: 084, Up: Changelog
5.7 0.8.3 5.8 0.8.3
========= =========
*Fixes* *Fixes*
@ -1226,7 +1249,7 @@ File: README.info, Node: 083, Next: 082, Prev: 084, Up: Changelog
 
File: README.info, Node: 082, Next: 081, Prev: 083, Up: Changelog File: README.info, Node: 082, Next: 081, Prev: 083, Up: Changelog
5.8 0.8.2 5.9 0.8.2
========= =========
*Fixes* *Fixes*
@ -1240,8 +1263,8 @@ File: README.info, Node: 082, Next: 081, Prev: 083, Up: Changelog
 
File: README.info, Node: 081, Next: 08, Prev: 082, Up: Changelog File: README.info, Node: 081, Next: 08, Prev: 082, Up: Changelog
5.9 0.8.1 5.10 0.8.1
========= ==========
*Fixes* *Fixes*
@ -1255,7 +1278,7 @@ File: README.info, Node: 081, Next: 08, Prev: 082, Up: Changelog
 
File: README.info, Node: 08, Next: 074, Prev: 081, Up: Changelog File: README.info, Node: 08, Next: 074, Prev: 081, Up: Changelog
5.10 0.8 5.11 0.8
======== ========
*Additions* *Additions*
@ -1311,7 +1334,7 @@ File: README.info, Node: 08, Next: 074, Prev: 081, Up: Changelog
 
File: README.info, Node: 074, Next: 073, Prev: 08, Up: Changelog File: README.info, Node: 074, Next: 073, Prev: 08, Up: Changelog
5.11 0.7.4 5.12 0.7.4
========== ==========
*Fixes* *Fixes*
@ -1321,7 +1344,7 @@ File: README.info, Node: 074, Next: 073, Prev: 08, Up: Changelog
 
File: README.info, Node: 073, Next: 072, Prev: 074, Up: Changelog File: README.info, Node: 073, Next: 072, Prev: 074, Up: Changelog
5.12 0.7.3 5.13 0.7.3
========== ==========
*Fixes* *Fixes*
@ -1339,7 +1362,7 @@ File: README.info, Node: 073, Next: 072, Prev: 074, Up: Changelog
 
File: README.info, Node: 072, Next: 071, Prev: 073, Up: Changelog File: README.info, Node: 072, Next: 071, Prev: 073, Up: Changelog
5.13 0.7.2 5.14 0.7.2
========== ==========
*Fixes* *Fixes*
@ -1360,7 +1383,7 @@ File: README.info, Node: 072, Next: 071, Prev: 073, Up: Changelog
 
File: README.info, Node: 071, Next: 07, Prev: 072, Up: Changelog File: README.info, Node: 071, Next: 07, Prev: 072, Up: Changelog
5.14 0.7.1 5.15 0.7.1
========== ==========
*Fixes* *Fixes*
@ -1379,7 +1402,7 @@ File: README.info, Node: 071, Next: 07, Prev: 072, Up: Changelog
 
File: README.info, Node: 07, Next: 063, Prev: 071, Up: Changelog File: README.info, Node: 07, Next: 063, Prev: 071, Up: Changelog
5.15 0.7 5.16 0.7
======== ========
*Added* *Added*
@ -1438,7 +1461,7 @@ File: README.info, Node: 07, Next: 063, Prev: 071, Up: Changelog
 
File: README.info, Node: 063, Next: 062, Prev: 07, Up: Changelog File: README.info, Node: 063, Next: 062, Prev: 07, Up: Changelog
5.16 0.6.3 5.17 0.6.3
========== ==========
*Fixed* *Fixed*
@ -1454,7 +1477,7 @@ File: README.info, Node: 063, Next: 062, Prev: 07, Up: Changelog
 
File: README.info, Node: 062, Next: 061, Prev: 063, Up: Changelog File: README.info, Node: 062, Next: 061, Prev: 063, Up: Changelog
5.17 0.6.2 5.18 0.6.2
========== ==========
*Fixed* *Fixed*
@ -1465,7 +1488,7 @@ File: README.info, Node: 062, Next: 061, Prev: 063, Up: Changelog
 
File: README.info, Node: 061, Next: 06, Prev: 062, Up: Changelog File: README.info, Node: 061, Next: 06, Prev: 062, Up: Changelog
5.18 0.6.1 5.19 0.6.1
========== ==========
*Fixed* *Fixed*
@ -1483,7 +1506,7 @@ File: README.info, Node: 061, Next: 06, Prev: 062, Up: Changelog
 
File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog
5.19 0.6 5.20 0.6
======== ========
*Added* *Added*
@ -1550,7 +1573,7 @@ File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog
 
File: README.info, Node: 052, Next: 051, Prev: 06, Up: Changelog File: README.info, Node: 052, Next: 051, Prev: 06, Up: Changelog
5.20 0.5.2 5.21 0.5.2
========== ==========
*Fixed* *Fixed*
@ -1561,7 +1584,7 @@ File: README.info, Node: 052, Next: 051, Prev: 06, Up: Changelog
 
File: README.info, Node: 051, Next: 05, Prev: 052, Up: Changelog File: README.info, Node: 051, Next: 05, Prev: 052, Up: Changelog
5.21 0.5.1 5.22 0.5.1
========== ==========
*Fixed* *Fixed*
@ -1574,7 +1597,7 @@ File: README.info, Node: 051, Next: 05, Prev: 052, Up: Changelog
 
File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog
5.22 0.5 5.23 0.5
======== ========
*Added* *Added*
@ -1615,7 +1638,7 @@ File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog
 
File: README.info, Node: 049, Next: 048, Prev: 05, Up: Changelog File: README.info, Node: 049, Next: 048, Prev: 05, Up: Changelog
5.23 0.4.9 5.24 0.4.9
========== ==========
*Fixed* *Fixed*
@ -1626,7 +1649,7 @@ File: README.info, Node: 049, Next: 048, Prev: 05, Up: Changelog
 
File: README.info, Node: 048, Next: 047, Prev: 049, Up: Changelog File: README.info, Node: 048, Next: 047, Prev: 049, Up: Changelog
5.24 0.4.8 5.25 0.4.8
========== ==========
*Fixed* *Fixed*
@ -1638,7 +1661,7 @@ File: README.info, Node: 048, Next: 047, Prev: 049, Up: Changelog
 
File: README.info, Node: 047, Next: 046, Prev: 048, Up: Changelog File: README.info, Node: 047, Next: 046, Prev: 048, Up: Changelog
5.25 0.4.7 5.26 0.4.7
========== ==========
*Fixed* *Fixed*
@ -1651,7 +1674,7 @@ File: README.info, Node: 047, Next: 046, Prev: 048, Up: Changelog
 
File: README.info, Node: 046, Next: 045, Prev: 047, Up: Changelog File: README.info, Node: 046, Next: 045, Prev: 047, Up: Changelog
5.26 0.4.6 5.27 0.4.6
========== ==========
*Fixed* *Fixed*
@ -1664,7 +1687,7 @@ File: README.info, Node: 046, Next: 045, Prev: 047, Up: Changelog
 
File: README.info, Node: 045, Next: 044, Prev: 046, Up: Changelog File: README.info, Node: 045, Next: 044, Prev: 046, Up: Changelog
5.27 0.4.5 5.28 0.4.5
========== ==========
*Fixed* *Fixed*
@ -1676,7 +1699,7 @@ File: README.info, Node: 045, Next: 044, Prev: 046, Up: Changelog
 
File: README.info, Node: 044, Next: 043, Prev: 045, Up: Changelog File: README.info, Node: 044, Next: 043, Prev: 045, Up: Changelog
5.28 0.4.4 5.29 0.4.4
========== ==========
*Fixed* *Fixed*
@ -1688,7 +1711,7 @@ File: README.info, Node: 044, Next: 043, Prev: 045, Up: Changelog
 
File: README.info, Node: 043, Next: 042, Prev: 044, Up: Changelog File: README.info, Node: 043, Next: 042, Prev: 044, Up: Changelog
5.29 0.4.3 5.30 0.4.3
========== ==========
*Fixed* *Fixed*
@ -1698,7 +1721,7 @@ File: README.info, Node: 043, Next: 042, Prev: 044, Up: Changelog
 
File: README.info, Node: 042, Next: 041, Prev: 043, Up: Changelog File: README.info, Node: 042, Next: 041, Prev: 043, Up: Changelog
5.30 0.4.2 5.31 0.4.2
========== ==========
*Fixed* *Fixed*
@ -1707,7 +1730,7 @@ File: README.info, Node: 042, Next: 041, Prev: 043, Up: Changelog
 
File: README.info, Node: 041, Next: 04, Prev: 042, Up: Changelog File: README.info, Node: 041, Next: 04, Prev: 042, Up: Changelog
5.31 0.4.1 5.32 0.4.1
========== ==========
*Fixed* *Fixed*
@ -1717,7 +1740,7 @@ File: README.info, Node: 041, Next: 04, Prev: 042, Up: Changelog
 
File: README.info, Node: 04, Next: 032, Prev: 041, Up: Changelog File: README.info, Node: 04, Next: 032, Prev: 041, Up: Changelog
5.32 0.4 5.33 0.4
======== ========
_Note:_ The next release, 0.5, may include changes which will require _Note:_ The next release, 0.5, may include changes which will require
@ -1798,7 +1821,7 @@ automatically, as they will be pushed to the master branch when ready.
 
File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog
5.33 0.3.2 5.34 0.3.2
========== ==========
*Fixed* *Fixed*
@ -1811,7 +1834,7 @@ File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog
 
File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog
5.34 0.3.1 5.35 0.3.1
========== ==========
*Fixed* *Fixed*
@ -1821,7 +1844,7 @@ File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog
 
File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog
5.35 0.3 5.36 0.3
======== ========
*Added* *Added*
@ -1889,7 +1912,7 @@ File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog
 
File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog
5.36 0.2.3 5.37 0.2.3
========== ==========
*Fixed* *Fixed*
@ -1899,7 +1922,7 @@ File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog
 
File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog
5.37 0.2.2 5.38 0.2.2
========== ==========
*Fixed* *Fixed*
@ -1910,7 +1933,7 @@ File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog
 
File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog
5.38 0.2.1 5.39 0.2.1
========== ==========
*Fixed* *Fixed*
@ -1920,7 +1943,7 @@ File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog
 
File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog
5.39 0.2 5.40 0.2
======== ========
*Added* *Added*
@ -2003,7 +2026,7 @@ File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog
 
File: README.info, Node: 01, Prev: 02, Up: Changelog File: README.info, Node: 01, Prev: 02, Up: Changelog
5.40 0.1 5.41 0.1
======== ========
First tagged release. First tagged release.
@ -2088,88 +2111,89 @@ GPLv3
 
Tag Table: Tag Table:
Node: Top225 Node: Top225
Node: Contents2079 Node: Contents2093
Node: Screenshots2206 Node: Screenshots2220
Node: Installation2324 Node: Installation2338
Node: Quelpa2838 Node: Quelpa2852
Node: Helm support3366 Node: Helm support3380
Node: Usage3769 Node: Usage3783
Node: Commands4167 Node: Commands4181
Node: org-ql-find4632 Node: org-ql-find4646
Node: org-ql-open-link5540 Node: org-ql-open-link5554
Node: org-ql-refile6395 Node: org-ql-refile6409
Node: org-ql-search6723 Node: org-ql-search6737
Node: helm-org-ql8654 Node: helm-org-ql8668
Node: org-ql-view9032 Node: org-ql-view9046
Node: org-ql-view-sidebar9562 Node: org-ql-view-sidebar9576
Node: org-ql-view-recent-items9942 Node: org-ql-view-recent-items9956
Node: org-ql-sparse-tree10438 Node: org-ql-sparse-tree10452
Node: Queries11238 Node: Queries11252
Node: Non-sexp query syntax12355 Node: Non-sexp query syntax12369
Node: General predicates14114 Node: General predicates14128
Node: Ancestor/descendant predicates21039 Node: Ancestor/descendant predicates21053
Node: Date/time predicates22167 Node: Date/time predicates22181
Node: Functions / Macros25291 Node: Functions / Macros25305
Node: Agenda-like views25589 Node: Agenda-like views25603
Ref: Function org-ql-block25751 Ref: Function org-ql-block25765
Node: Listing / acting-on results27012 Node: Listing / acting-on results27026
Ref: Caching27220 Ref: Caching27234
Ref: Function org-ql-select28133 Ref: Function org-ql-select28147
Ref: Function org-ql-query30559 Ref: Function org-ql-query30573
Ref: Macro org-ql (deprecated)32333 Ref: Macro org-ql (deprecated)32347
Node: Custom predicates32648 Node: Custom predicates32662
Ref: Macro org-ql-defpred32872 Ref: Macro org-ql-defpred32886
Node: Dynamic block36313 Node: Dynamic block36327
Node: Links39037 Node: Links39051
Node: Tips39724 Node: Tips39738
Node: Changelog40048 Node: Changelog40062
Node: 09-pre41001 Node: 09-pre41029
Node: helm-org-ql (1)41785 Node: helm-org-ql (1)41575
Node: 08841926 Node: 08941716
Node: 08743005 Node: 08842858
Node: 08644233 Node: 08743934
Node: 08544467 Node: 08645162
Node: 08445123 Node: 08545396
Node: 08345575 Node: 08446052
Node: 08245916 Node: 08346504
Node: 08146309 Node: 08246845
Node: 0846730 Node: 08147238
Node: 07449456 Node: 0847661
Node: 07349681 Node: 07450387
Node: 07250415 Node: 07350612
Node: 07151336 Node: 07251346
Node: 0752147 Node: 07152267
Node: 06355013 Node: 0753078
Node: 06255546 Node: 06355944
Node: 06155853 Node: 06256477
Node: 0656423 Node: 06156784
Node: 05259479 Node: 0657354
Node: 05159781 Node: 05260410
Node: 0560206 Node: 05160712
Node: 04961737 Node: 0561137
Node: 04862019 Node: 04962668
Node: 04762368 Node: 04862950
Node: 04662777 Node: 04763299
Node: 04563185 Node: 04663708
Node: 04463546 Node: 04564116
Node: 04363905 Node: 04464477
Node: 04264108 Node: 04364836
Node: 04164269 Node: 04265039
Node: 0464516 Node: 04165200
Node: 03268617 Node: 0465447
Node: 03169020 Node: 03269548
Node: 0369217 Node: 03169951
Node: 02372517 Node: 0370148
Node: 02272751 Node: 02373448
Node: 02173031 Node: 02273682
Node: 0273236 Node: 02173962
Node: 0177314 Node: 0274167
Node: Development77415 Node: 0178245
Node: Copyright assignment77648 Node: Development78346
Node: Notes78238 Node: Copyright assignment78579
Node: Comparison with Org Agenda searches78402 Node: Notes79169
Node: org-sidebar79291 Node: Comparison with Org Agenda searches79333
Node: License79570 Node: org-sidebar80222
Node: License80501
 
End Tag Table End Tag Table

View file

@ -638,6 +638,11 @@ with keyword arg NOW in PLIST."
:to-equal (list :query t :to-equal (list :query t
:preamble (rx bol (repeat 2 4 "*") " ") :preamble (rx bol (repeat 2 4 "*") " ")
:preamble-case-fold t))) :preamble-case-fold t)))
(it "with an expression in level number's place"
(expect (org-ql--query-preamble '(level <= (string-to-number (property "PROPERTY"))))
:to-equal (list :query '(level <= (string-to-number (property "PROPERTY")))
:preamble nil
:preamble-case-fold t)))
(it "<" (it "<"
(expect (org-ql--query-preamble '(level < 3)) (expect (org-ql--query-preamble '(level < 3))
:to-equal (list :query t :to-equal (list :query t
@ -1339,7 +1344,15 @@ with keyword arg NOW in PLIST."
(org-ql-it "with a property and a value" (org-ql-it "with a property and a value"
(org-ql-expect ('(property "agenda-group" "plans")) (org-ql-expect ('(property "agenda-group" "plans"))
'("Take over the universe" "Write a symphony")))) '("Take over the universe" "Write a symphony")))
(org-ql-it "with a property and \"nil :inherit t\""
(org-ql-expect ('(property "agenda-group" nil :inherit t))
'("Take over the universe" "Take over the world" "Skype with president of Antarctica" "Take over Mars" "Visit Mars" "Take over the moon" "Visit the moon" "Practice leaping tall buildings in a single bound" "Renew membership in supervillain club" "Learn universal sign language" "Spaceship lease" "Recurring" "/r/emacs" "Shop for groceries" "Sunrise/sunset" "Write a symphony")))
(org-ql-it "with a property and \":inherit t\""
(org-ql-expect ('(property "agenda-group" :inherit t))
'("Take over the universe" "Take over the world" "Skype with president of Antarctica" "Take over Mars" "Visit Mars" "Take over the moon" "Visit the moon" "Practice leaping tall buildings in a single bound" "Renew membership in supervillain club" "Learn universal sign language" "Spaceship lease" "Recurring" "/r/emacs" "Shop for groceries" "Sunrise/sunset" "Write a symphony"))))
(describe "(regexp)" (describe "(regexp)"