Merge: v0.7.4
This commit is contained in:
commit
ace5e361af
4 changed files with 143 additions and 103 deletions
|
|
@ -566,6 +566,11 @@ Simple links may also be written manually in either sexp or non-sexp form, like:
|
|||
|
||||
+ Org v9.7's ~org-element~ API changes required some adjustments. ([[https://github.com/alphapapa/org-ql/issues/364][#364]]. Thanks to several users for reporting, and to [[https://github.com/yantar92][Ihor Radchenko]] for his feedback.)
|
||||
|
||||
** 0.7.4
|
||||
|
||||
*Fixes*
|
||||
+ Ignore empty quoted strings in plain-string queries ([[https://github.com/alphapapa/org-ql/issues/383][#383]]).
|
||||
|
||||
** 0.7.3
|
||||
|
||||
*Fixes*
|
||||
|
|
|
|||
18
org-ql.el
18
org-ql.el
|
|
@ -285,6 +285,11 @@ Matches with or without time.")
|
|||
:link '(custom-manual "(org-ql)Usage")
|
||||
:link '(url-link "https://github.com/alphapapa/org-ql"))
|
||||
|
||||
(defcustom org-ql-signal-peg-failure nil
|
||||
"Signal an error when parsing a plain-string query fails.
|
||||
This should only be enabled while debugging."
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-ql-ask-unsafe-queries t
|
||||
"Ask before running a query that could run arbitrary code.
|
||||
Org QL queries in sexp form can contain arbitrary expressions.
|
||||
|
|
@ -950,7 +955,7 @@ value of `org-ql-predicates')."
|
|||
(term (or (and negation (list positive-term)
|
||||
;; This is a bit confusing, but it seems to work. There's probably a better way.
|
||||
`(pred -- (list 'not (car pred))))
|
||||
positive-term))
|
||||
positive-term empty-quote))
|
||||
(positive-term (or (and predicate-with-args `(pred args -- (cons (intern pred) args)))
|
||||
(and predicate-without-args `(pred -- (list (intern pred))))
|
||||
(and plain-string `(s -- (list org-ql-default-predicate s)))))
|
||||
|
|
@ -963,6 +968,12 @@ value of `org-ql-predicates')."
|
|||
(keyword (substring (+ (not (or separator "=" "\"" (syntax-class whitespace))) (any))))
|
||||
(quoted-arg "\"" (substring (+ (not (or separator "\"")) (any))) "\"")
|
||||
(unquoted-arg (substring (+ (not (or separator "\"" (syntax-class whitespace))) (any))))
|
||||
(empty-quote
|
||||
;; This avoids aborting parsing or signaling an
|
||||
;; error if the user types in two successive
|
||||
;; quotation marks while typing a query (e.g. when
|
||||
;; using electric-pair-mode).
|
||||
"\"\"")
|
||||
(negation "!")
|
||||
(separator "," )))
|
||||
(closure (lambda (input &optional boolean)
|
||||
|
|
@ -983,7 +994,10 @@ value of `org-ql-predicates')."
|
|||
;; have to borrow some code. It ends up that we only have to
|
||||
;; borrow this `with-peg-rules' call, which isn't too bad.
|
||||
(eval `(with-peg-rules ,pexs
|
||||
(peg-run (peg ,(caar pexs)) #'peg-signal-failure))))))
|
||||
(peg-run (peg ,(caar pexs))
|
||||
(lambda (failures)
|
||||
(when org-ql-signal-peg-failure
|
||||
(peg-signal-failure failures)))))))))
|
||||
(pcase parsed-sexp
|
||||
(`(,one-predicate) one-predicate)
|
||||
(`(,_ . ,_) (cons boolean (reverse parsed-sexp)))
|
||||
|
|
|
|||
215
org-ql.info
215
org-ql.info
|
|
@ -73,6 +73,7 @@ Functions / Macros
|
|||
Changelog
|
||||
|
||||
* 0.8-pre: 08-pre.
|
||||
* 0.7.4: 074.
|
||||
* 0.7.3: 073.
|
||||
* 0.7.2: 072.
|
||||
* 0.7.1: 071.
|
||||
|
|
@ -1027,6 +1028,7 @@ releases.
|
|||
* Menu:
|
||||
|
||||
* 0.8-pre: 08-pre.
|
||||
* 0.7.4: 074.
|
||||
* 0.7.3: 073.
|
||||
* 0.7.2: 072.
|
||||
* 0.7.1: 071.
|
||||
|
|
@ -1058,7 +1060,7 @@ releases.
|
|||
* 0.1: 01.
|
||||
|
||||
|
||||
File: README.info, Node: 08-pre, Next: 073, Up: Changelog
|
||||
File: README.info, Node: 08-pre, Next: 074, Up: Changelog
|
||||
|
||||
5.1 0.8-pre
|
||||
===========
|
||||
|
|
@ -1096,9 +1098,19 @@ File: README.info, Node: 08-pre, Next: 073, Up: Changelog
|
|||
(https://github.com/yantar92) for his feedback.)
|
||||
|
||||
|
||||
File: README.info, Node: 073, Next: 072, Prev: 08-pre, Up: Changelog
|
||||
File: README.info, Node: 074, Next: 073, Prev: 08-pre, Up: Changelog
|
||||
|
||||
5.2 0.7.3
|
||||
5.2 0.7.4
|
||||
=========
|
||||
|
||||
*Fixes*
|
||||
• Ignore empty quoted strings in plain-string queries (#383
|
||||
(https://github.com/alphapapa/org-ql/issues/383)).
|
||||
|
||||
|
||||
File: README.info, Node: 073, Next: 072, Prev: 074, Up: Changelog
|
||||
|
||||
5.3 0.7.3
|
||||
=========
|
||||
|
||||
*Fixes*
|
||||
|
|
@ -1116,7 +1128,7 @@ File: README.info, Node: 073, Next: 072, Prev: 08-pre, Up: Changelog
|
|||
|
||||
File: README.info, Node: 072, Next: 071, Prev: 073, Up: Changelog
|
||||
|
||||
5.3 0.7.2
|
||||
5.4 0.7.2
|
||||
=========
|
||||
|
||||
*Fixes*
|
||||
|
|
@ -1137,7 +1149,7 @@ File: README.info, Node: 072, Next: 071, Prev: 073, Up: Changelog
|
|||
|
||||
File: README.info, Node: 071, Next: 07, Prev: 072, Up: Changelog
|
||||
|
||||
5.4 0.7.1
|
||||
5.5 0.7.1
|
||||
=========
|
||||
|
||||
*Fixes*
|
||||
|
|
@ -1156,7 +1168,7 @@ File: README.info, Node: 071, Next: 07, Prev: 072, Up: Changelog
|
|||
|
||||
File: README.info, Node: 07, Next: 063, Prev: 071, Up: Changelog
|
||||
|
||||
5.5 0.7
|
||||
5.6 0.7
|
||||
=======
|
||||
|
||||
*Added*
|
||||
|
|
@ -1216,7 +1228,7 @@ File: README.info, Node: 07, Next: 063, Prev: 071, Up: Changelog
|
|||
|
||||
File: README.info, Node: 063, Next: 062, Prev: 07, Up: Changelog
|
||||
|
||||
5.6 0.6.3
|
||||
5.7 0.6.3
|
||||
=========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1232,7 +1244,7 @@ File: README.info, Node: 063, Next: 062, Prev: 07, Up: Changelog
|
|||
|
||||
File: README.info, Node: 062, Next: 061, Prev: 063, Up: Changelog
|
||||
|
||||
5.7 0.6.2
|
||||
5.8 0.6.2
|
||||
=========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1243,7 +1255,7 @@ File: README.info, Node: 062, Next: 061, Prev: 063, Up: Changelog
|
|||
|
||||
File: README.info, Node: 061, Next: 06, Prev: 062, Up: Changelog
|
||||
|
||||
5.8 0.6.1
|
||||
5.9 0.6.1
|
||||
=========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1261,8 +1273,8 @@ File: README.info, Node: 061, Next: 06, Prev: 062, Up: Changelog
|
|||
|
||||
File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog
|
||||
|
||||
5.9 0.6
|
||||
=======
|
||||
5.10 0.6
|
||||
========
|
||||
|
||||
*Added*
|
||||
• Macro ‘org-ql-defpred’, used to define search predicates. (See
|
||||
|
|
@ -1328,7 +1340,7 @@ File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog
|
|||
|
||||
File: README.info, Node: 052, Next: 051, Prev: 06, Up: Changelog
|
||||
|
||||
5.10 0.5.2
|
||||
5.11 0.5.2
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1339,7 +1351,7 @@ File: README.info, Node: 052, Next: 051, Prev: 06, Up: Changelog
|
|||
|
||||
File: README.info, Node: 051, Next: 05, Prev: 052, Up: Changelog
|
||||
|
||||
5.11 0.5.1
|
||||
5.12 0.5.1
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1352,7 +1364,7 @@ File: README.info, Node: 051, Next: 05, Prev: 052, Up: Changelog
|
|||
|
||||
File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog
|
||||
|
||||
5.12 0.5
|
||||
5.13 0.5
|
||||
========
|
||||
|
||||
*Added*
|
||||
|
|
@ -1393,7 +1405,7 @@ File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog
|
|||
|
||||
File: README.info, Node: 049, Next: 048, Prev: 05, Up: Changelog
|
||||
|
||||
5.13 0.4.9
|
||||
5.14 0.4.9
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1404,7 +1416,7 @@ File: README.info, Node: 049, Next: 048, Prev: 05, Up: Changelog
|
|||
|
||||
File: README.info, Node: 048, Next: 047, Prev: 049, Up: Changelog
|
||||
|
||||
5.14 0.4.8
|
||||
5.15 0.4.8
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1416,7 +1428,7 @@ File: README.info, Node: 048, Next: 047, Prev: 049, Up: Changelog
|
|||
|
||||
File: README.info, Node: 047, Next: 046, Prev: 048, Up: Changelog
|
||||
|
||||
5.15 0.4.7
|
||||
5.16 0.4.7
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1429,7 +1441,7 @@ File: README.info, Node: 047, Next: 046, Prev: 048, Up: Changelog
|
|||
|
||||
File: README.info, Node: 046, Next: 045, Prev: 047, Up: Changelog
|
||||
|
||||
5.16 0.4.6
|
||||
5.17 0.4.6
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1442,7 +1454,7 @@ File: README.info, Node: 046, Next: 045, Prev: 047, Up: Changelog
|
|||
|
||||
File: README.info, Node: 045, Next: 044, Prev: 046, Up: Changelog
|
||||
|
||||
5.17 0.4.5
|
||||
5.18 0.4.5
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1454,7 +1466,7 @@ File: README.info, Node: 045, Next: 044, Prev: 046, Up: Changelog
|
|||
|
||||
File: README.info, Node: 044, Next: 043, Prev: 045, Up: Changelog
|
||||
|
||||
5.18 0.4.4
|
||||
5.19 0.4.4
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1466,7 +1478,7 @@ File: README.info, Node: 044, Next: 043, Prev: 045, Up: Changelog
|
|||
|
||||
File: README.info, Node: 043, Next: 042, Prev: 044, Up: Changelog
|
||||
|
||||
5.19 0.4.3
|
||||
5.20 0.4.3
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1476,7 +1488,7 @@ File: README.info, Node: 043, Next: 042, Prev: 044, Up: Changelog
|
|||
|
||||
File: README.info, Node: 042, Next: 041, Prev: 043, Up: Changelog
|
||||
|
||||
5.20 0.4.2
|
||||
5.21 0.4.2
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1485,7 +1497,7 @@ File: README.info, Node: 042, Next: 041, Prev: 043, Up: Changelog
|
|||
|
||||
File: README.info, Node: 041, Next: 04, Prev: 042, Up: Changelog
|
||||
|
||||
5.21 0.4.1
|
||||
5.22 0.4.1
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1495,7 +1507,7 @@ File: README.info, Node: 041, Next: 04, Prev: 042, Up: Changelog
|
|||
|
||||
File: README.info, Node: 04, Next: 032, Prev: 041, Up: Changelog
|
||||
|
||||
5.22 0.4
|
||||
5.23 0.4
|
||||
========
|
||||
|
||||
_Note:_ The next release, 0.5, may include changes which will require
|
||||
|
|
@ -1576,7 +1588,7 @@ automatically, as they will be pushed to the ‘master’ branch when ready.
|
|||
|
||||
File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog
|
||||
|
||||
5.23 0.3.2
|
||||
5.24 0.3.2
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1589,7 +1601,7 @@ File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog
|
|||
|
||||
File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog
|
||||
|
||||
5.24 0.3.1
|
||||
5.25 0.3.1
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1599,7 +1611,7 @@ File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog
|
|||
|
||||
File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog
|
||||
|
||||
5.25 0.3
|
||||
5.26 0.3
|
||||
========
|
||||
|
||||
*Added*
|
||||
|
|
@ -1667,7 +1679,7 @@ File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog
|
|||
|
||||
File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog
|
||||
|
||||
5.26 0.2.3
|
||||
5.27 0.2.3
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1677,7 +1689,7 @@ File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog
|
|||
|
||||
File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog
|
||||
|
||||
5.27 0.2.2
|
||||
5.28 0.2.2
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1688,7 +1700,7 @@ File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog
|
|||
|
||||
File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog
|
||||
|
||||
5.28 0.2.1
|
||||
5.29 0.2.1
|
||||
==========
|
||||
|
||||
*Fixed*
|
||||
|
|
@ -1698,7 +1710,7 @@ File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog
|
|||
|
||||
File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog
|
||||
|
||||
5.29 0.2
|
||||
5.30 0.2
|
||||
========
|
||||
|
||||
*Added*
|
||||
|
|
@ -1781,7 +1793,7 @@ File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog
|
|||
|
||||
File: README.info, Node: 01, Prev: 02, Up: Changelog
|
||||
|
||||
5.30 0.1
|
||||
5.31 0.1
|
||||
========
|
||||
|
||||
First tagged release.
|
||||
|
|
@ -1839,75 +1851,76 @@ GPLv3
|
|||
|
||||
Tag Table:
|
||||
Node: Top225
|
||||
Node: Contents1845
|
||||
Node: Screenshots1968
|
||||
Node: Installation2086
|
||||
Node: Quelpa2600
|
||||
Node: Helm support3128
|
||||
Node: Usage3531
|
||||
Node: Commands3929
|
||||
Node: org-ql-find4394
|
||||
Node: org-ql-open-link5212
|
||||
Node: org-ql-refile6067
|
||||
Node: org-ql-search6395
|
||||
Node: helm-org-ql8326
|
||||
Node: org-ql-view8704
|
||||
Node: org-ql-view-sidebar9234
|
||||
Node: org-ql-view-recent-items9614
|
||||
Node: org-ql-sparse-tree10110
|
||||
Node: Queries10910
|
||||
Node: Non-sexp query syntax12027
|
||||
Node: General predicates13786
|
||||
Node: Ancestor/descendant predicates20773
|
||||
Node: Date/time predicates21901
|
||||
Node: Functions / Macros25025
|
||||
Node: Agenda-like views25323
|
||||
Ref: Function org-ql-block25485
|
||||
Node: Listing / acting-on results26746
|
||||
Ref: Caching26954
|
||||
Ref: Function org-ql-select27867
|
||||
Ref: Function org-ql-query30293
|
||||
Ref: Macro org-ql (deprecated)32067
|
||||
Node: Custom predicates32382
|
||||
Ref: Macro org-ql-defpred32606
|
||||
Node: Dynamic block36047
|
||||
Node: Links38771
|
||||
Node: Tips39458
|
||||
Node: Changelog39782
|
||||
Node: 08-pre40592
|
||||
Node: 07342357
|
||||
Node: 07243092
|
||||
Node: 07144011
|
||||
Node: 0744820
|
||||
Node: 06347744
|
||||
Node: 06248275
|
||||
Node: 06148580
|
||||
Node: 0649148
|
||||
Node: 05252202
|
||||
Node: 05152504
|
||||
Node: 0552929
|
||||
Node: 04954460
|
||||
Node: 04854742
|
||||
Node: 04755091
|
||||
Node: 04655500
|
||||
Node: 04555908
|
||||
Node: 04456269
|
||||
Node: 04356628
|
||||
Node: 04256831
|
||||
Node: 04156992
|
||||
Node: 0457239
|
||||
Node: 03261340
|
||||
Node: 03161743
|
||||
Node: 0361940
|
||||
Node: 02365240
|
||||
Node: 02265474
|
||||
Node: 02165754
|
||||
Node: 0265959
|
||||
Node: 0170037
|
||||
Node: Notes70138
|
||||
Node: Comparison with Org Agenda searches70300
|
||||
Node: org-sidebar71189
|
||||
Node: License71468
|
||||
Node: Contents1859
|
||||
Node: Screenshots1982
|
||||
Node: Installation2100
|
||||
Node: Quelpa2614
|
||||
Node: Helm support3142
|
||||
Node: Usage3545
|
||||
Node: Commands3943
|
||||
Node: org-ql-find4408
|
||||
Node: org-ql-open-link5226
|
||||
Node: org-ql-refile6081
|
||||
Node: org-ql-search6409
|
||||
Node: helm-org-ql8340
|
||||
Node: org-ql-view8718
|
||||
Node: org-ql-view-sidebar9248
|
||||
Node: org-ql-view-recent-items9628
|
||||
Node: org-ql-sparse-tree10124
|
||||
Node: Queries10924
|
||||
Node: Non-sexp query syntax12041
|
||||
Node: General predicates13800
|
||||
Node: Ancestor/descendant predicates20787
|
||||
Node: Date/time predicates21915
|
||||
Node: Functions / Macros25039
|
||||
Node: Agenda-like views25337
|
||||
Ref: Function org-ql-block25499
|
||||
Node: Listing / acting-on results26760
|
||||
Ref: Caching26968
|
||||
Ref: Function org-ql-select27881
|
||||
Ref: Function org-ql-query30307
|
||||
Ref: Macro org-ql (deprecated)32081
|
||||
Node: Custom predicates32396
|
||||
Ref: Macro org-ql-defpred32620
|
||||
Node: Dynamic block36061
|
||||
Node: Links38785
|
||||
Node: Tips39472
|
||||
Node: Changelog39796
|
||||
Node: 08-pre40620
|
||||
Node: 07442385
|
||||
Node: 07342612
|
||||
Node: 07243344
|
||||
Node: 07144263
|
||||
Node: 0745072
|
||||
Node: 06347996
|
||||
Node: 06248527
|
||||
Node: 06148832
|
||||
Node: 0649400
|
||||
Node: 05252456
|
||||
Node: 05152758
|
||||
Node: 0553183
|
||||
Node: 04954714
|
||||
Node: 04854996
|
||||
Node: 04755345
|
||||
Node: 04655754
|
||||
Node: 04556162
|
||||
Node: 04456523
|
||||
Node: 04356882
|
||||
Node: 04257085
|
||||
Node: 04157246
|
||||
Node: 0457493
|
||||
Node: 03261594
|
||||
Node: 03161997
|
||||
Node: 0362194
|
||||
Node: 02365494
|
||||
Node: 02265728
|
||||
Node: 02166008
|
||||
Node: 0266213
|
||||
Node: 0170291
|
||||
Node: Notes70392
|
||||
Node: Comparison with Org Agenda searches70554
|
||||
Node: org-sidebar71443
|
||||
Node: License71722
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
|
|
|||
|
|
@ -648,6 +648,14 @@ with keyword arg NOW in PLIST."
|
|||
|
||||
;; TODO: Other predicates.
|
||||
|
||||
(it "Ignores empty quoted strings"
|
||||
(expect (org-ql--query-string-to-sexp "\"\"")
|
||||
:to-equal nil)
|
||||
(expect (org-ql--query-string-to-sexp "foo \"\" bar")
|
||||
:to-equal '(and (rifle "foo") (rifle "bar")))
|
||||
(expect (org-ql--query-string-to-sexp "foo \"baz\" bar")
|
||||
:to-equal '(and (rifle "foo") (rifle "baz") (rifle "bar"))))
|
||||
|
||||
(it "Negated terms"
|
||||
(expect (org-ql--query-string-to-sexp "todo: !todo:CHECK,SOMEDAY")
|
||||
:to-equal '(and (todo) (not (todo "CHECK" "SOMEDAY"))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue