diff --git a/README.org b/README.org index 719c7a1..d72776a 100644 --- a/README.org +++ b/README.org @@ -408,6 +408,11 @@ Expands into a call to ~org-ql-select~ with the same arguments. For convenience *Changed* + Binding to refresh search/view buffers changed to =r=. +** 0.4.1 + +*Fixed* ++ =level= predicate used with arguments in plain queries. (Thanks to [[https://github.com/akirak][Akira Komamura]] for reporting.) + ** 0.4 /Note:/ The next release, 0.5, may include changes which will require minor updates to written queries (e.g. a few predicates may be renamed). Users who wish to avoid those changes happening unexpectedly in their configs should avoid upgrading =org-ql= beyond 0.4 automatically, as they will be pushed to the =master= branch when ready. diff --git a/org-ql.el b/org-ql.el index ce574aa..0af9c5f 100644 --- a/org-ql.el +++ b/org-ql.el @@ -583,6 +583,16 @@ Replaces bare strings with (regexp) selectors, and appropriate ;; "h" alias. `(heading ,@args)) + ;; Outline level. + (`(level . ,args) + ;; Arguments could be given as strings (e.g. from a non-Lisp query). + `(level ,@(--map (pcase it + ((or "<" "<=" ">" ">=" "=") + (intern it)) + ((pred stringp) (string-to-number it)) + (_ it)) + args))) + ;; Regexps. (`(r . ,args) ;; "r" alias. diff --git a/org-ql.info b/org-ql.info index 2f9951d..d20b262 100644 --- a/org-ql.info +++ b/org-ql.info @@ -64,6 +64,7 @@ Functions / Macros Changelog * 0.5-pre: 05-pre. +* 0.4.1: 041. * 0.4: 04. * 0.3.2: 032. * 0.3.1: 031. @@ -711,6 +712,7 @@ releases. * Menu: * 0.5-pre: 05-pre. +* 0.4.1: 041. * 0.4: 04. * 0.3.2: 032. * 0.3.1: 031. @@ -722,7 +724,7 @@ releases. * 0.1: 01.  -File: README.info, Node: 05-pre, Next: 04, Up: Changelog +File: README.info, Node: 05-pre, Next: 041, Up: Changelog 5.1 0.5-pre =========== @@ -735,9 +737,19 @@ File: README.info, Node: 05-pre, Next: 04, Up: Changelog • Binding to refresh search/view buffers changed to r.  -File: README.info, Node: 04, Next: 032, Prev: 05-pre, Up: Changelog +File: README.info, Node: 041, Next: 04, Prev: 05-pre, Up: Changelog -5.2 0.4 +5.2 0.4.1 +========= + +*Fixed* + • level predicate used with arguments in plain queries. (Thanks to + Akira Komamura (https://github.com/akirak) for reporting.) + + +File: README.info, Node: 04, Next: 032, Prev: 041, Up: Changelog + +5.3 0.4 ======= _Note:_ The next release, 0.5, may include changes which will require @@ -818,7 +830,7 @@ as they will be pushed to the master branch when ready.  File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog -5.3 0.3.2 +5.4 0.3.2 ========= *Fixed* @@ -831,7 +843,7 @@ File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog  File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog -5.4 0.3.1 +5.5 0.3.1 ========= *Fixed* @@ -841,7 +853,7 @@ File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog  File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog -5.5 0.3 +5.6 0.3 ======= *Added* @@ -906,7 +918,7 @@ File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog  File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog -5.6 0.2.3 +5.7 0.2.3 ========= *Fixed* @@ -916,7 +928,7 @@ File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog  File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog -5.7 0.2.2 +5.8 0.2.2 ========= *Fixed* @@ -927,7 +939,7 @@ File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog  File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog -5.8 0.2.1 +5.9 0.2.1 ========= *Fixed* @@ -937,8 +949,8 @@ File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog  File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog -5.9 0.2 -======= +5.10 0.2 +======== *Added* • Function ‘org-ql-query’, like ‘org-ql-select’ but with arguments @@ -1020,7 +1032,7 @@ File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog  File: README.info, Node: 01, Prev: 02, Up: Changelog -5.10 0.1 +5.11 0.1 ======== First tagged release. @@ -1078,41 +1090,42 @@ GPLv3  Tag Table: Node: Top225 -Node: Contents1422 -Node: Screenshots1545 -Node: Installation1663 -Node: Quelpa2301 -Node: Usage2744 -Node: Commands3093 -Node: org-ql-search3566 -Node: helm-org-ql5280 -Node: org-ql-view5692 -Node: org-ql-view-sidebar6189 -Node: org-ql-view-recent-items6545 -Node: org-ql-sparse-tree7029 -Node: Queries7829 -Node: Non-sexp query syntax8737 -Node: General predicates10444 -Node: Ancestor/descendant predicates15251 -Node: Date/time predicates16379 -Node: Functions / Macros19034 -Node: Agenda-like views19267 -Node: Listing / acting-on results20672 -Node: Changelog25274 -Node: 05-pre25823 -Node: 0426090 -Node: 03230024 -Node: 03130401 -Node: 0330596 -Node: 02333569 -Node: 02233795 -Node: 02134061 -Node: 0234258 -Node: 0138291 -Node: Notes38392 -Node: Comparison with Org Agenda searches38554 -Node: org-sidebar39426 -Node: License39705 +Node: Contents1437 +Node: Screenshots1560 +Node: Installation1678 +Node: Quelpa2316 +Node: Usage2759 +Node: Commands3108 +Node: org-ql-search3581 +Node: helm-org-ql5295 +Node: org-ql-view5707 +Node: org-ql-view-sidebar6204 +Node: org-ql-view-recent-items6560 +Node: org-ql-sparse-tree7044 +Node: Queries7844 +Node: Non-sexp query syntax8752 +Node: General predicates10459 +Node: Ancestor/descendant predicates15266 +Node: Date/time predicates16394 +Node: Functions / Macros19049 +Node: Agenda-like views19282 +Node: Listing / acting-on results20687 +Node: Changelog25289 +Node: 05-pre25853 +Node: 04126121 +Node: 0426363 +Node: 03230294 +Node: 03130671 +Node: 0330866 +Node: 02333839 +Node: 02234065 +Node: 02134331 +Node: 0234528 +Node: 0138563 +Node: Notes38664 +Node: Comparison with Org Agenda searches38826 +Node: org-sidebar39698 +Node: License39977  End Tag Table diff --git a/tests/test-org-ql.el b/tests/test-org-ql.el index 982e226..bf2340f 100644 --- a/tests/test-org-ql.el +++ b/tests/test-org-ql.el @@ -216,7 +216,15 @@ RESULTS should be a list of strings as returned by :order-by 'date)) :to-equal org-ql-test-num-headings))) - (it "Query pre-processing" + (describe "Query pre-processing" + (it "level:" + (expect (org-ql--pre-process-query '(level "1")) + :to-equal '(level 1)) + (expect (org-ql--pre-process-query '(level "1" "2")) + :to-equal '(level 1 2)) + (expect (org-ql--pre-process-query '(level ">" "1")) + :to-equal '(level > 1))) + (expect (org-ql--pre-process-query '(and "string1" "string2")) :to-equal '(and (regexp "string1") (regexp "string2"))) (expect (org-ql--pre-process-query '(or "string1" "string2"))