Fix: (link) Save excursion around regexp search

Fixes #279.  Thanks to Marc Fargas (@telenieko) for reporting.

Released as 0.6.2.
This commit is contained in:
Adam Porter 2022-05-27 02:01:00 -05:00
parent f666fe150f
commit 991906c183
3 changed files with 272 additions and 252 deletions

View file

@ -522,6 +522,11 @@ Simple links may also be written manually in either sexp or non-sexp form, like:
/Note:/ Breaking changes may be made before version 1.0, but in the event of major changes, attempts at backward compatibility will be made with obsolescence declarations, translation of arguments, etc. Users who need stability guarantees before 1.0 may choose to use tagged stable releases.
** 0.6.2
*Fixed*
+ ~link~ predicate when used in an ~or~'ed query. ([[https://github.com/alphapapa/org-ql/issues/279][#279]]. Thanks to [[https://github.com/telenieko][Marc Fargas]] for reporting.)
** 0.6.1
*Fixed*

View file

@ -2,7 +2,7 @@
;; Author: Adam Porter <adam@alphapapa.net>
;; Url: https://github.com/alphapapa/org-ql
;; Version: 0.6.1
;; Version: 0.6.2
;; Package-Requires: ((emacs "26.1") (dash "2.18.1") (f "0.17.2") (map "2.1") (org "9.0") (org-super-agenda "1.2") (ov "1.0.6") (peg "1.0") (s "1.12.0") (transient "0.1") (ts "0.2-pre"))
;; Keywords: hypermedia, outlines, Org, agenda
@ -1461,7 +1461,8 @@ any link is found."
(setf description (regexp-quote description)))
(when target
(setf target (regexp-quote target))))
(when (re-search-forward org-ql-link-regexp (org-entry-end-position) t)
(when (save-excursion
(re-search-forward org-ql-link-regexp (org-entry-end-position) t))
(pcase description-or-target
('nil (and (or (null target)
(string-match-p target (match-string 1)))

View file

@ -11,6 +11,14 @@ File: README.info, Node: Top, Next: Contents, Up: (dir)
org-ql
******
This package provides a query language for Org files. It offers two
syntax styles: Lisp-like sexps and search engine-like keywords.
It includes three libraries: The org-ql library is flexible and may
be used as a backend for other tools. The libraries org-ql-search and
helm-org-ql (a separate package) provide interactive search commands
and saved views.
* Menu:
* Contents::
@ -23,15 +31,11 @@ org-ql
— The Detailed Node Listing —
Installation
* Quelpa::
* Helm support::
Usage
* Commands::
@ -50,8 +54,6 @@ Commands
* org-ql-view-recent-items::
* org-ql-sparse-tree::
Queries
* Non-sexp query syntax::
@ -59,8 +61,6 @@ Queries
* Ancestor/descendant predicates::
* Date/time predicates::
Functions / Macros
* Agenda-like views::
@ -69,6 +69,7 @@ Functions / Macros
Changelog
* 0.6.2: 062.
* 0.6.1: 061.
* 0.6: 06.
* 0.5.2: 052.
@ -93,20 +94,11 @@ Changelog
* 0.2: 02.
* 0.1: 01.
Notes
* Comparison with Org Agenda searches::
* org-sidebar::
This package provides a query language for Org files. It offers two
syntax styles: Lisp-like sexps and search engine-like keywords.
It includes three libraries: The org-ql library is flexible and may
be used as a backend for other tools. The libraries org-ql-search and
helm-org-ql (a separate package) provide interactive search commands and
saved views.

File: README.info, Node: Contents, Next: Screenshots, Prev: Top, Up: Top
@ -127,13 +119,13 @@ File: README.info, Node: Installation, Next: Usage, Prev: Screenshots, Up: T
3 Installation
**************
The package org-ql may be installed directly from MELPA
The package org-ql may be installed directly from MELPA
(https://melpa.org/#/org-ql) or with other tools like Quelpa
(https://framagit.org/steckerhalter/quelpa).
After installation, you can use the commands without additional
configuration. To use the functions and macros in your own Elisp code,
use libraries org-ql and org-ql-view.
use libraries org-ql and org-ql-view.
* Menu:
@ -164,8 +156,8 @@ File: README.info, Node: Helm support, Prev: Quelpa, Up: Installation
3.2 Helm support
================
The command helm-org-ql is available in the package helm-org-ql. It may
be installed from MELPA, or with Quelpa, like so:
The command helm-org-ql is available in the package helm-org-ql. It
may be installed from MELPA, or with Quelpa, like so:
(use-package helm-org-ql
:quelpa (helm-org-ql :fetcher github :repo "alphapapa/org-ql"
@ -248,10 +240,10 @@ Interactively, with prefix, leave narrowed.
priority.
*Bindings:* Keys bound in results buffer.
r: Refresh results. With prefix, prompt to adjust search
r: Refresh results. With prefix, prompt to adjust search
parameters.
v: Show transient view dispatcher (like Magits popups).
• C-x C-s: Save query to variable org-ql-views (accessible with
v: Show transient view dispatcher (like Magits popups).
C-x C-s: Save query to variable org-ql-views (accessible with
command org-ql-view).
*Note:* The view buffer is currently put in org-agenda-mode, which
@ -268,12 +260,12 @@ File: README.info, Node: helm-org-ql, Next: org-ql-view, Prev: org-ql-search,
-----------------
_Note: This command uses . It is available separately in the package
helm-org-ql._
helm-org-ql._
This command displays matches with Helm.
• Press C-x C-s in the Helm session to save the results to an
org-ql-search buffer.
• Press C-x C-s in the Helm session to save the results to an
org-ql-search buffer.

File: README.info, Node: org-ql-view, Next: org-ql-view-sidebar, Prev: helm-org-ql, Up: Commands
@ -284,10 +276,10 @@ File: README.info, Node: org-ql-view, Next: org-ql-view-sidebar, Prev: helm-o
Choose and display a view stored in org-ql-views.
*Bindings:* Keys bound in view buffer.
g, r: Refresh results. With prefix, prompt to adjust search
g, r: Refresh results. With prefix, prompt to adjust search
parameters.
v: Show transient view dispatcher (like Magits popups).
• C-x C-s: Save query to variable org-ql-views (accessible with
v: Show transient view dispatcher (like Magits popups).
C-x C-s: Save query to variable org-ql-views (accessible with
command org-ql-view).

@ -296,9 +288,9 @@ File: README.info, Node: org-ql-view-sidebar, Next: org-ql-view-recent-items,
4.1.4 org-ql-view-sidebar
-------------------------
Show a sidebar window listing views stored in org-ql-views for easy
access. In the sidebar, press RET or mouse-1 to show the view at point,
and press c to customize the view at point.
Show a sidebar window listing views stored in org-ql-views for easy
access. In the sidebar, press RET or mouse-1 to show the view at
point, and press c to customize the view at point.

File: README.info, Node: org-ql-view-recent-items, Next: org-ql-sparse-tree, Prev: org-ql-view-sidebar, Up: Commands
@ -308,8 +300,8 @@ File: README.info, Node: org-ql-view-recent-items, Next: org-ql-sparse-tree,
Show items in FILES from last DAYS days with timestamps of TYPE.
TYPE may be ts, ts-active, ts-inactive, clocked, closed,
deadline, planning, or scheduled. FILES defaults to those
returned by the function org-agenda-files.
deadline, planning, or scheduled. FILES defaults to those
returned by the function org-agenda-files.

File: README.info, Node: org-ql-sparse-tree, Prev: org-ql-view-recent-items, Up: Commands
@ -336,7 +328,7 @@ File: README.info, Node: Queries, Next: Functions / Macros, Prev: Commands,
===========
• • • •
An org-ql query is a Lisp expression which may contain arbitrary
An org-ql query is a Lisp expression which may contain arbitrary
expressions, as well as calling certain built-in predicates. It is
byte-compiled into a predicate function which is tested with point on
each heading in an Org buffer; when it returns non-nil, the heading
@ -365,11 +357,11 @@ File: README.info, Node: Non-sexp query syntax, Next: General predicates, Up:
4.2.1 Non-sexp query syntax
---------------------------
The command org-ql-search also accepts, and the command helm-org-ql only
accepts, an alternative, non-sexp query syntax. The syntax is simple,
and a few examples of queries in both syntaxes should suffice. By
default, when multiple predicates are used, they are combined with
boolean and.
The command org-ql-search also accepts, and the command helm-org-ql
only accepts, an alternative, non-sexp query syntax. The syntax is
simple, and a few examples of queries in both syntaxes should suffice.
By default, when multiple predicates are used, they are combined with
boolean and.
Sexp syntax Non-sexp syntax
-------------------------------------------------------------------------------------------------------
@ -385,9 +377,9 @@ Sexp syntax Non-sexp syntax
(and (tags "space") (not (regexp "moon"))) tags:space !moon
(priority >= B) priority:A,B
Note that the effort, level, and priority predicates do not support
comparators in the non-sexp syntax, so multiple arguments should be
passed instead, as seen in the last example.
Note that the effort, level, and priority predicates do not
support comparators in the non-sexp syntax, so multiple arguments should
be passed instead, as seen in the last example.

File: README.info, Node: General predicates, Next: Ancestor/descendant predicates, Prev: Non-sexp query syntax, Up: Queries
@ -409,14 +401,14 @@ Arguments are listed next to predicate names, where applicable.
Matches if effort is between DURATIONs, inclusive. (effort
COMPARATOR DURATION): Matches if effort compares to DURATION
with COMPARATOR. COMPARATOR may be <, <=, >, or >=.
DURATION should be an Org effort string, like 5 or 0:05.
DURATION should be an Org effort string, like 5 or 0:05.
habit
Return non-nil if entry is a habit.
heading (&rest strings)
Return non-nil if current entrys heading matches all STRINGS.
Matching is done case-insensitively.
• Aliases: h.
heading-regexp (&rest regexps)
• Aliases: h.
heading-regexp (&rest regexps)
Return non-nil if current entrys heading matches all REGEXPS
(regexp strings). Matching is done case-insensitively.
• Aliases: h*.
@ -436,8 +428,8 @@ Arguments are listed next to predicate names, where applicable.
outline-path (&rest strings)
Return non-nil if current nodes outline path matches all of
STRINGS. Each string may appear as a substring in any part of
the nodes outline path. For example, the path Food/Fruits/Grapes
would match (olp "Fruit" "Grape").
the nodes outline path. For example, the path
Food/Fruits/Grapes would match (olp "Fruit" "Grape").
• Aliases: olp.
outline-path-segment (&rest strings)
Return non-nil if current nodes outline path matches STRINGS.
@ -469,8 +461,8 @@ Arguments are listed next to predicate names, where applicable.
Return non-nil if current entry matches all of REGEXPS (regexp
strings). Matches against entire entry, from beginning of its
heading to the next heading.
• Aliases: r.
src (&key lang regexps)
• Aliases: r.
src (&key lang regexps)
Return non-nil if current entry contains an Org Babel source block.
If LANG is non-nil, match blocks of that language. If REGEXPS
is non-nil, require that blocks contents match all regexps.
@ -552,10 +544,10 @@ to look forward, or negative to look backward), a string parseable by
Return non-nil if current entry has a timestamp in given
period. Without arguments, return non-nil if entry has a
timestamp.
ts-active, ts-a
Like ts, but only matches active timestamps.
ts-inactive, ts-i
Like ts, but only matches inactive timestamps.
ts-active, ts-a
Like ts, but only matches active timestamps.
ts-inactive, ts-i
Like ts, but only matches inactive timestamps.
The following predicates, in addition to the keyword arguments, can
also take a single argument, a number, which looks backward or forward a
@ -583,8 +575,8 @@ searching for items planned in the next few days:
• *Forward-looking*
deadline
Return non-nil if current entry has deadline in given period.
If argument is auto, return non-nil if entry has deadline
within org-deadline-warning-days. Without arguments, return
If argument is auto, return non-nil if entry has deadline
within org-deadline-warning-days. Without arguments, return
non-nil if entry has any deadline.
planning
Return non-nil if current entry has planning timestamp (i.e.
@ -622,7 +614,7 @@ File: README.info, Node: Agenda-like views, Next: Listing / acting-on results,
For use as a custom agenda block type in
org-agenda-custom-commands. For example, you could define a
custom series command like this, which would list all priority A
items tagged Emacs with to-do keyword SOMEDAY, followed by the
items tagged Emacs with to-do keyword SOMEDAY, followed by the
standard agenda view, in a single buffer:
(setq org-agenda-custom-commands
@ -642,8 +634,8 @@ File: README.info, Node: Agenda-like views, Next: Listing / acting-on results,
However, the org-ql-block version runs in about 1/5th the time.
The variable org-ql-block-header may be bound to a string to use as
the block header, otherwise the header is formed automatically.
The variable org-ql-block-header may be bound to a string to use
as the block header, otherwise the header is formed automatically.

File: README.info, Node: Listing / acting-on results, Next: Custom predicates, Prev: Agenda-like views, Up: Functions / Macros
@ -791,7 +783,7 @@ File: README.info, Node: Custom predicates, Prev: Listing / acting-on results,
• See: Custom predicate tutorial (examples/defpred.org)
1. Macro: org-ql-defpred
1. Macro: org-ql-defpred
_Arguments:_ (name args docstring &key body preambles
normalizers)
@ -880,9 +872,9 @@ supported:
• Each column may also be specified as a list with the second
element being a header string. For example, to abbreviate the
priority column: (priority "P").
• For certain columns, like property, arguments may be passed by
specifying the column type itself as a list. For example, to
display a column showing the values of a property named
• For certain columns, like property, arguments may be passed
by specifying the column type itself as a list. For example,
to display a column showing the values of a property named
milestone, with the header being abbreviated to M:
((property "milestone") "M").
:sort One or a list of Org QL sorting methods (see
@ -897,7 +889,7 @@ in the following example).
For example, this dynamic block shows the first seven headings that
are to-do items with priority A or B, sorted by deadline then priority,
with certain columns (including the value of the agenda-group property
with certain columns (including the value of the agenda-group property
with a custom header) and timestamp format:
#+BEGIN: org-ql :query "todo: priority:A,B" :columns (todo (priority "P") ((property "agenda-group") "Group") deadline heading) :sort (deadline priority) :take 7 :ts-format "%Y-%m-%d %H:%M"
@ -940,7 +932,7 @@ File: README.info, Node: Tips, Prev: Links, Up: Usage
========
• Org QL View buffers can be bookmarked with Emacs bookmark commands,
e.g. C-x r m. This also integrates with org-sidebar
e.g. C-x r m. This also integrates with org-sidebar
(https://github.com/alphapapa/org-sidebar) and Burly
(https://github.com/alphapapa/burly.el).
@ -958,6 +950,7 @@ releases.
* Menu:
* 0.6.2: 062.
* 0.6.1: 061.
* 0.6: 06.
* 0.5.2: 052.
@ -983,9 +976,20 @@ releases.
* 0.1: 01.

File: README.info, Node: 061, Next: 06, Up: Changelog
File: README.info, Node: 062, Next: 061, Up: Changelog
5.1 0.6.1
5.1 0.6.2
=========
*Fixed*
link predicate when used in an ored query. (#279
(https://github.com/alphapapa/org-ql/issues/279). Thanks to Marc
Fargas (https://github.com/telenieko) for reporting.)

File: README.info, Node: 061, Next: 06, Prev: 062, Up: Changelog
5.2 0.6.1
=========
*Fixed*
@ -1003,11 +1007,11 @@ File: README.info, Node: 061, Next: 06, Up: Changelog

File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog
5.2 0.6
5.3 0.6
=======
*Added*
• Macro org-ql-defpred, used to define search predicates. (See
• Macro org-ql-defpred, used to define search predicates. (See
tutorial (examples/defpred.org).)
• Predicate effort.
• Predicate heading-regexp, which matches regular expressions
@ -1028,14 +1032,14 @@ File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog
For example, :sort '(todo priority date) now does what :sort
'(date priority todo) did in earlier versions. (This change is
made to enable the new reverse sorting method.) Users who have
customized org-ql-views will need to update the stored views
customized org-ql-views will need to update the stored views
sorting methods to preserve the desired sort order.
• Helm support (including the command helm-org-ql) has been moved to
a separate package, helm-org-ql.
• Helm support (including the command helm-org-ql) has been moved
to a separate package, helm-org-ql.
• Predicate heading now matches plain strings instead of regular
expressions.
• Update dash dependency, and remove dependency on obsolete
dash-functional. (Fixes #179
• Update dash dependency, and remove dependency on obsolete
dash-functional. (Fixes #179
(https://github.com/alphapapa/org-ql/issues/179), #209
(https://github.com/alphapapa/org-ql/issues/209). Thanks to Mark
Hudnall (https://github.com/landakram), Akira Komamura
@ -1057,7 +1061,7 @@ File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog
*Internal*
• Predicates are now defined more cleanly with a macro
(org-ql-defpred) that consolidates functionality related to each
(org-ql-defpred) that consolidates functionality related to each
predicate. This will also allow users to more easily define custom
predicates.
• Version 1.0 of library peg is now required.
@ -1070,7 +1074,7 @@ File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog

File: README.info, Node: 052, Next: 051, Prev: 06, Up: Changelog
5.3 0.5.2
5.4 0.5.2
=========
*Fixed*
@ -1081,12 +1085,12 @@ File: README.info, Node: 052, Next: 051, Prev: 06, Up: Changelog

File: README.info, Node: 051, Next: 05, Prev: 052, Up: Changelog
5.4 0.5.1
5.5 0.5.1
=========
*Fixed*
• Custom sorting functions could corrupt the cache, causing items to
disappear after refreshing an org-ql-search buffer. (#186
disappear after refreshing an org-ql-search buffer. (#186
(https://github.com/alphapapa/org-ql/issues/186), #187
(https://github.com/alphapapa/org-ql/issues/187). Thanks to
Nathanael kinfe (https://github.com/natask).)
@ -1094,19 +1098,19 @@ File: README.info, Node: 051, Next: 05, Prev: 052, Up: Changelog

File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog
5.5 0.5
5.6 0.5
=======
*Added*
• View dispatcher using transient.el (like Magit), bound to v in
• View dispatcher using transient.el (like Magit), bound to v in
search/view buffers.
• Predicate link, which matches descriptions and targets in Org
• Predicate link, which matches descriptions and targets in Org
links.
• Predicate tags-regexp (alias: tags*), which matches regexps
against entry tags (e.g, helpful when a tag might end in "s").
• Emacs bookmark support: Org QL View buffers can be bookmarked with,
e.g. C-x r m and shown with, e.g. C-x r b. (This also enables
view restoration with Burly
e.g. C-x r m and shown with, e.g. C-x r b. (This also
enables view restoration with Burly
(https://github.com/alphapapa/burly.el).)
• Dynamic block support.
• Org link support (storing and opening links to Org QL View
@ -1114,7 +1118,7 @@ File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog
• Mascot.
*Changed*
• Binding to refresh search/view buffers changed to r.
• Binding to refresh search/view buffers changed to r.
*Internal*
• When formatting entries for Org QL View buffers, use internal
@ -1123,9 +1127,9 @@ File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog
Org versions before 9.3.
*Deprecated*
• Macro org-ql is marked obsolete. It will be removed in v0.7.
Functions org-ql-select and org-ql-query should be used instead.
(The macro serves only to confuse with regard to quoting
• Macro org-ql is marked obsolete. It will be removed in v0.7.
Functions org-ql-select and org-ql-query should be used
instead. (The macro serves only to confuse with regard to quoting
arguments.)
*Acknowledgments*
@ -1135,18 +1139,18 @@ File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog

File: README.info, Node: 049, Next: 048, Prev: 05, Up: Changelog
5.6 0.4.9
5.7 0.4.9
=========
*Fixed*
• Agenda restriction in org-ql-block. (Fixes #84
• Agenda restriction in org-ql-block. (Fixes #84
(https://github.com/alphapapa/org-ql/issues/84). Thanks to Ihor
Radchenko (https://github.com/yantar92).)

File: README.info, Node: 048, Next: 047, Prev: 049, Up: Changelog
5.7 0.4.8
5.8 0.4.8
=========
*Fixed*
@ -1158,12 +1162,12 @@ File: README.info, Node: 048, Next: 047, Prev: 049, Up: Changelog

File: README.info, Node: 047, Next: 046, Prev: 048, Up: Changelog
5.8 0.4.7
5.9 0.4.7
=========
*Fixed*
• Give a useful error if org-ql-search-directories-files is called
without a directories argument and org-directory doesnt exist.
• Give a useful error if org-ql-search-directories-files is called
without a directories argument and org-directory doesnt exist.
(Fixes #139 (https://github.com/alphapapa/org-ql/issues/139).
Thanks to Matt Huszagh (https://github.com/matthuszagh) for
reporting.)
@ -1171,12 +1175,12 @@ File: README.info, Node: 047, Next: 046, Prev: 048, Up: Changelog

File: README.info, Node: 046, Next: 045, Prev: 047, Up: Changelog
5.9 0.4.6
=========
5.10 0.4.6
==========
*Fixed*
• Compatibility with newer versions of the peg library, which removed
a macro used by this package. (Fixes #75
• Compatibility with newer versions of the peg library, which
removed a macro used by this package. (Fixes #75
(https://github.com/alphapapa/org-ql/issues/75). Thanks to Karl
Voit (https://github.com/novoid) and @karlicoss
(https://github.com/karlicoss) for reporting.)
@ -1184,7 +1188,7 @@ File: README.info, Node: 046, Next: 045, Prev: 047, Up: Changelog

File: README.info, Node: 045, Next: 044, Prev: 046, Up: Changelog
5.10 0.4.5
5.11 0.4.5
==========
*Fixed*
@ -1196,7 +1200,7 @@ File: README.info, Node: 045, Next: 044, Prev: 046, Up: Changelog

File: README.info, Node: 044, Next: 043, Prev: 045, Up: Changelog
5.11 0.4.4
5.12 0.4.4
==========
*Fixed*
@ -1208,17 +1212,17 @@ File: README.info, Node: 044, Next: 043, Prev: 045, Up: Changelog

File: README.info, Node: 043, Next: 042, Prev: 044, Up: Changelog
5.12 0.4.3
5.13 0.4.3
==========
*Fixed*
• When org-ql-view-refresh is called, ensure the buffer is an Org QL
View buffer.
• When org-ql-view-refresh is called, ensure the buffer is an Org
QL View buffer.

File: README.info, Node: 042, Next: 041, Prev: 043, Up: Changelog
5.13 0.4.2
5.14 0.4.2
==========
*Fixed*
@ -1227,24 +1231,24 @@ File: README.info, Node: 042, Next: 041, Prev: 043, Up: Changelog

File: README.info, Node: 041, Next: 04, Prev: 042, Up: Changelog
5.14 0.4.1
5.15 0.4.1
==========
*Fixed*
• level predicate used with arguments in plain queries. (Thanks to
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.15 0.4
5.16 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.
in their configs should avoid upgrading org-ql beyond 0.4
automatically, as they will be pushed to the master branch when ready.
*Added*
• *Commands*
@ -1258,13 +1262,13 @@ as they will be pushed to the master branch when ready.
• *Queries*
• Negation of terms in plain queries using !. For example,
tags:space !moon to exclude entries which contain moon.
• Predicates outline-path (alias olp) and outline-path-segment
(alias olps).
• Predicates outline-path (alias olp) and
outline-path-segment (alias olps).
• Predicate src, which matches Org Babel source blocks.
• Predicates parent and ancestors. (Thanks to Josh Moller-Mara
(https://github.com/mm--).)
• Alias h for heading predicate.
• Alias r for regexp predicate. (Thanks to Feng Shu
• Predicates parent and ancestors. (Thanks to Josh
Moller-Mara (https://github.com/mm--).)
• Alias h for heading predicate.
• Alias r for regexp predicate. (Thanks to Feng Shu
(https://github.com/tumashu).)
• Info manual.
• Function helm-org-ql-source, which returns a Helm source that
@ -1272,40 +1276,40 @@ as they will be pushed to the master branch when ready.
for custom Helm commands that search certain files.
• Display a message when views are refreshed. (Thanks to xeijin
(https://github.com/xeijin).)
• Respect Org Agenda restriction in org-ql-block. (Thanks to Ihor
• Respect Org Agenda restriction in org-ql-block. (Thanks to Ihor
Radchenko (https://github.com/yantar92) for reporting.)
• Option org-ql-view-sidebar-sort-views.
• Mouseover help-echo text for org-ql-views default view names.
• "Dangling tasks" default view in org-ql-views. (Users who have
modified org-ql-views from the default will not see the new view
• Option org-ql-view-sidebar-sort-views.
• Mouseover help-echo text for org-ql-views default view names.
• "Dangling tasks" default view in org-ql-views. (Users who have
modified org-ql-views from the default will not see the new view
unless they copy it into their config.)
*Changed*
• Some default org-ql-view views (users who have modified
org-ql-views from the default will not see the new views unless
• Some default org-ql-view views (users who have modified
org-ql-views from the default will not see the new views unless
they copy them into their config):
• Rename some views.
• "Stuck projects" view (now uses descendants instead of
children, which is more useful.
• "Stuck projects" view (now uses descendants instead of
children, which is more useful.
*Fixed*
• Inherit file tags when org-tag-inheritance is enabled. (Fixes #55
(https://github.com/alphapapa/org-ql/issues/55). Thanks to Mikhail
Skorzhinskiy (https://github.com/mskorzhinskiy).)
• Call helm-make-source directly instead of using
helm-build-sync-source macro. (Fixes #60
• Inherit file tags when org-tag-inheritance is enabled. (Fixes
#55 (https://github.com/alphapapa/org-ql/issues/55). Thanks to
Mikhail Skorzhinskiy (https://github.com/mskorzhinskiy).)
• Call helm-make-source directly instead of using
helm-build-sync-source macro. (Fixes #60
(https://github.com/alphapapa/org-ql/issues/60). Thanks to Matt
Huszagh (https://github.com/matthuszagh) for reporting.)
• Search/view buffers now always end with a newline, which prevents
side-scrolling of the window when calling end-of-buffer.
• Face for done to-do keywords in org-ql-view buffers. (Thanks to
side-scrolling of the window when calling end-of-buffer.
• Face for done to-do keywords in org-ql-view buffers. (Thanks to
Yiming Chen (https://github.com/dsdshcym).)
• Make view buffers read-only. (Fixes #72
(https://github.com/alphapapa/org-ql/issues/72). Thanks to xeijin
(https://github.com/xeijin).)
• Sorting with single sorter specified as an atom. (Thanks to Jeff
Filipovits (https://github.com/legalnonsense).)
• Autoload for org-ql-block agenda block. (Fixes #53
• Autoload for org-ql-block agenda block. (Fixes #53
(https://github.com/alphapapa/org-ql/issues/53). Thanks to reports
from Gus Cantieni (https://github.com/gcantieni), Karl Voit
(https://github.com/novoid), rieje (https://github.com/rieje), and
@ -1318,20 +1322,20 @@ as they will be pushed to the master branch when ready.

File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog
5.16 0.3.2
5.17 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
• 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.

File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog
5.17 0.3.1
5.18 0.3.1
==========
*Fixed*
@ -1341,103 +1345,106 @@ File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog

File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog
5.18 0.3
5.19 0.3
========
*Added*
• Alternative, non-sexp query syntax for commands org-ql-search and
helm-org-ql. See .
• Command helm-org-ql.
• Command org-ql-sparse-tree, like org-sparse-tree for org-ql
• Alternative, non-sexp query syntax for commands org-ql-search and
helm-org-ql. See .
• Command helm-org-ql.
• Command org-ql-sparse-tree, like org-sparse-tree for org-ql
queries. (Thanks to Akira Komamura (https://github.com/akirak).)
• Command org-ql-view-sidebar.
• Command org-ql-view-sidebar.
• Per-buffer, per-heading tag caching, which increases the speed of
tags-related queries by 6-7x.
• More tags-related predicates and aliases:
• For inherited tags: tags-inherited, inherited-tags, tags-i,
itags.
• For heading-local tags: tags-local, local-tags, tags-l, ltags.
• tags-all, tags&: Matches all given tags using boolean AND
(rather than boolean OR, which the tags predicate uses).
• Variable org-ql-block-header, which overrides the default header in
org-ql-block agenda blocks.
• Predicate (path).
• Option org-ql-views may now be customized in a guided, structured
way with the customization UI (e.g.
M-x customize-option RET org-ql-views RET, or press c in the
org-ql-view-sidebar buffer).
• Enable more Org Agenda commands in org-ql-view buffers (e.g.
• For inherited tags: tags-inherited, inherited-tags,
tags-i, itags.
• For heading-local tags: tags-local, local-tags, tags-l,
ltags.
tags-all, tags&: Matches all given tags using boolean
AND (rather than boolean OR, which the tags predicate
uses).
• Variable org-ql-block-header, which overrides the default header
in org-ql-block agenda blocks.
• Predicate (path).
• Option org-ql-views may now be customized in a guided, structured
way with the customization UI (e.g. M-x customize-option RET
org-ql-views RET, or press c in the org-ql-view-sidebar
buffer).
• Enable more Org Agenda commands in org-ql-view buffers (e.g.
setting deadlines and scheduling). (Fixes #35
(https://github.com/alphapapa/org-ql/issues/35). Thanks to Milan
Zamazal (https://github.com/mz-pdm) and Mikhail Skorzhinskii
(https://github.com/mskorzhinskiy).)
• Function org-ql-selects buffers-files argument can be a function
which returns a list of buffers and/or files.
• Function org-ql-selects buffers-files argument can be a
function which returns a list of buffers and/or files.
*Changed*
• Predicate heading now accepts multiple regexps, which are matched
with boolean AND.
• Predicate regexp now matches its regexp arguments with boolean AND.
• Package org-super-agenda is now a dependency. This removes the
• Predicate heading now accepts multiple regexps, which are matched
with boolean AND.
• Predicate regexp now matches its regexp arguments with boolean
AND.
• Package org-super-agenda is now a dependency. This removes the
need for awkward code to handle the case where its not installed,
and makes grouping features always available. Of course, the
global minor mode org-super-agenda-mode is not activated by org-ql,
so no behavior is changed in Org Agenda or org-ql; it only means
that commands like org-ql-search will always provide grouping when
called with the appropriate arguments.
global minor mode org-super-agenda-mode is not activated by
org-ql, so no behavior is changed in Org Agenda or org-ql; it
only means that commands like org-ql-search will always provide
grouping when called with the appropriate arguments.
*Removed*
• Macro org-ql-agenda. Instead, use function org-ql-search. See
also command org-ql-view, etc.
• Macro org-ql-agenda. Instead, use function org-ql-search. See
also command org-ql-view, etc.
*Fixed*
• Predicate heading now matches only against heading text, i.e. not
including tags at the end of the line, to-do keyword, etc.
• Predicate todo now matches case-sensitively, avoiding
non-todo-keyword matches (e.g. a heading which begins Waiting on
will no longer match for a todo keyword WAITING).
• Interactive completion in org-ql-search.
• Predicate heading now matches only against heading text, i.e.
not including tags at the end of the line, to-do keyword, etc.
• Predicate todo now matches case-sensitively, avoiding
non-todo-keyword matches (e.g. a heading which begins Waiting on
will no longer match for a todo keyword WAITING).
• Interactive completion in org-ql-search.
*Internal*
• Refactored code from file org-ql-agenda.el into files
org-ql-search.el and org-ql-view.el. Function and variable names
have been changed accordingly.
• Refactored code from file org-ql-agenda.el into files
org-ql-search.el and org-ql-view.el. Function and variable
names have been changed accordingly.

File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog
5.19 0.2.3
5.20 0.2.3
==========
*Fixed*
• Priority queries could fail to match headings whose to-do keywords
had non-alphabetic characters, like TO-READ.
had non-alphabetic characters, like TO-READ.

File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog
5.20 0.2.2
5.21 0.2.2
==========
*Fixed*
• (deadline auto) selector matched entries whose deadlines had a
(deadline auto) selector matched entries whose deadlines had a
warning period that had not yet been entered
(org-deadline-warning-days too soon).
(org-deadline-warning-days too soon).

File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog
5.21 0.2.1
5.22 0.2.1
==========
*Fixed*
• (descendants) selector matched against parent heading instead of
(descendants) selector matched against parent heading instead of
only descendants.

File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog
5.22 0.2
5.23 0.2
========
*Added*
@ -1458,7 +1465,7 @@ File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog
• Selectors ts-a and ts-i, aliases for ts-active and
ts-inactive.
• Selector ts now accepts a :type argument.
• Face org-ql-agenda-due-date.
• Face org-ql-agenda-due-date.
• Selectors (children) and (descendants).
• Function org-ql-search and macro org-ql-agenda accept a
:title argument, which is displayed in the header.
@ -1467,11 +1474,11 @@ File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog
• Customization group org-ql.
• Command org-ql-view, which displays views saved to variable
org-ql-views, which can be saved from org-ql-search buffers
with command org-ql-search-save, which is bound to C-x C-s in
with command org-ql-search-save, which is bound to C-x C-s in
view buffers.
• Variable org-ql-view-map, active in view buffers displayed by
org-ql-search, org-ql-agenda, and org-ql-view.
• random sort method.
random sort method.
• Save position when refreshing search buffers.
*Changed*
@ -1493,11 +1500,11 @@ File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog
Goodman (https://github.com/codygman), Samuel W. Flint
(https://github.com/swflint), and Vikas Rawal
(https://github.com/vikasrawal).)
• Dont overwrite bindings in org-agenda-mode-map.
• Dont overwrite bindings in org-agenda-mode-map.
• Dont search buffers without headings, and show a message if the
user attempts it.
• Dont search hidden/special buffers.
• Properly accept arbitrary sort functions in org-ql-select, etc.
• Properly accept arbitrary sort functions in org-ql-select, etc.
(Fixes #37 (https://github.com/alphapapa/org-ql/issues/37). Thanks
to Milan Zamazal (https://github.com/mz-pdm).)
• Planning-line-related predicates searched too far into entries.
@ -1511,7 +1518,7 @@ File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog
(https://github.com/dakra).)
*Internal*
• Optimizations for some query selectors, e.g. regexp and todo.
• Optimizations for some query selectors, e.g. regexp and todo.
These can provide a significant improvement for some queries. See
benchmarks in notes.org (notes.org).
• Library ts (https://github.com/alphapapa/ts.el) is now used for
@ -1520,7 +1527,7 @@ File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog

File: README.info, Node: 01, Prev: 02, Up: Changelog
5.23 0.1
5.24 0.1
========
First tagged release.
@ -1553,8 +1560,8 @@ regular expression syntax, like this:
+lisp +{^\*+\s-+TO-READ\s-}
But with org-ql-search, you would write a query like
lisp todo:TO-READ, or in Lisp syntax, (and "lisp" (todo "TO-READ")).
But with org-ql-search, you would write a query like lisp
todo:TO-READ, or in Lisp syntax, (and "lisp" (todo "TO-READ")).

File: README.info, Node: org-sidebar, Prev: Comparison with Org Agenda searches, Up: Notes
@ -1578,59 +1585,66 @@ GPLv3

Tag Table:
Node: Top225
Node: Contents1704
Node: Screenshots1827
Node: Installation1945
Node: Quelpa2441
Node: Helm support2969
Node: Usage3360
Node: Commands3758
Node: org-ql-search4231
Node: helm-org-ql5881
Node: org-ql-view6241
Node: org-ql-view-sidebar6741
Node: org-ql-view-recent-items7097
Node: org-ql-sparse-tree7581
Node: Queries8381
Node: Non-sexp query syntax9492
Node: General predicates11216
Node: Ancestor/descendant predicates17437
Node: Date/time predicates18565
Node: Functions / Macros21653
Node: Agenda-like views21951
Node: Listing / acting-on results23356
Node: Custom predicates28992
Node: Dynamic block32651
Node: Links35363
Node: Tips36050
Node: Changelog36368
Node: 06137101
Node: 0637657
Node: 05240668
Node: 05140968
Node: 0541385
Node: 04942859
Node: 04843133
Node: 04743480
Node: 04643875
Node: 04544275
Node: 04444636
Node: 04344995
Node: 04245192
Node: 04145353
Node: 0445594
Node: 03249527
Node: 03149906
Node: 0350103
Node: 02353078
Node: 02253306
Node: 02153574
Node: 0253773
Node: 0157808
Node: Notes57909
Node: Comparison with Org Agenda searches58071
Node: org-sidebar58943
Node: License59222
Node: Contents1728
Node: Screenshots1851
Node: Installation1969
Node: Quelpa2483
Node: Helm support3011
Node: Usage3414
Node: Commands3812
Node: org-ql-search4285
Node: helm-org-ql5959
Node: org-ql-view6337
Node: org-ql-view-sidebar6867
Node: org-ql-view-recent-items7247
Node: org-ql-sparse-tree7743
Node: Queries8543
Node: Non-sexp query syntax9660
Node: General predicates11419
Node: Ancestor/descendant predicates17658
Node: Date/time predicates18786
Node: Functions / Macros21910
Node: Agenda-like views22208
Ref: Function org-ql-block22370
Node: Listing / acting-on results23631
Ref: Caching23839
Ref: Function org-ql-select24752
Ref: Function org-ql-query27178
Ref: Macro org-ql (deprecated)28952
Node: Custom predicates29267
Ref: Macro org-ql-defpred29491
Node: Dynamic block32932
Node: Links35656
Node: Tips36343
Node: Changelog36667
Node: 06237415
Node: 06137708
Node: 0638276
Node: 05241330
Node: 05141630
Node: 0542053
Node: 04943582
Node: 04843862
Node: 04744209
Node: 04644616
Node: 04545024
Node: 04445385
Node: 04345744
Node: 04245947
Node: 04146108
Node: 0446355
Node: 03250456
Node: 03150859
Node: 0351056
Node: 02354356
Node: 02254590
Node: 02154870
Node: 0255075
Node: 0159153
Node: Notes59254
Node: Comparison with Org Agenda searches59416
Node: org-sidebar60305
Node: License60584

End Tag Table