<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/doc, branch debian/0.34-1</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.34-1</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.34-1'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2021-09-05T00:07:19Z</updated>
<entry>
<title>doc/sexp-queries: update synopsis and description</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:45Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=49aa44bb012e8c2412b5447119b78b61842740b8'/>
<id>urn:sha1:49aa44bb012e8c2412b5447119b78b61842740b8</id>
<content type='text'>
I chose to go with a somewhat terse synopsis to try to keep the length
of the page down.
</content>
</entry>
<entry>
<title>lib/parse-sexp: apply macros</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:41Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=551254eb76c9bb558078f04f21df1f6089cb03d6'/>
<id>urn:sha1:551254eb76c9bb558078f04f21df1f6089cb03d6</id>
<content type='text'>
Macros implement lazy evaluation and lexical scope.  The former is
needed to make certain natural constructs work sensibly (e.g. (tag
,param)) but the latter is mainly future-proofing in case the DSL is
is extended to allow local bindings.

For technical background, see chapters 6 and 17 of [1] (or some other
intermediate programming languages textbook).

[1] http://cs.brown.edu/courses/cs173/2012/book/
</content>
</entry>
<entry>
<title>CLI/config support saving s-expression queries</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:38Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=81b9dbd110593d6b1a370efb3576bf39585af2ea'/>
<id>urn:sha1:81b9dbd110593d6b1a370efb3576bf39585af2ea</id>
<content type='text'>
This commit does not enable using saved s-expression queries, only
saving and retrieving them from the config file or the database. Use
in queries will be enabled in a following commit.
</content>
</entry>
<entry>
<title>lib/parse-sexp: handle saved queries</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:37Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6ab2d9b1a2e62b76960df8e80ff2a45d9c6a8551'/>
<id>urn:sha1:6ab2d9b1a2e62b76960df8e80ff2a45d9c6a8551</id>
<content type='text'>
This provides functionality analogous to query: in the Xapian
QueryParser based parser. Perhaps counterintuitively, the saved
queries currently have to be in the original query syntax (i.e. not
s-expressions).
</content>
</entry>
<entry>
<title>lib/parse-sexp: parse user headers</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:35Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=a07ef8abf5248c1128ddc75b8139ae807a88abd9'/>
<id>urn:sha1:a07ef8abf5248c1128ddc75b8139ae807a88abd9</id>
<content type='text'>
One subtle aspect is the replacement of _find_prefix with
_notmuch_database_prefix, which understands user headers. Otherwise
the code mainly consists of creating a fake prefix record (since the
user prefixes are not in the prefix table) and error handling.
</content>
</entry>
<entry>
<title>lib/parse-sexp: support infix subqueries</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:34Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=cc5992a30470222791c24849da04a3c0403ecce5'/>
<id>urn:sha1:cc5992a30470222791c24849da04a3c0403ecce5</id>
<content type='text'>
This is necessary so that programs can take infix syntax queries from
a user and use the sexp query syntax to construct e.g. a refinement of
that query.
</content>
</entry>
<entry>
<title>lib/parse-sexp: expand queries</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:33Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=afe85e65786df1df9abf261393b4b4e6e2e86009'/>
<id>urn:sha1:afe85e65786df1df9abf261393b4b4e6e2e86009</id>
<content type='text'>
The code here is just gluing together _notmuch_query_expand with the
existing sexp parser infrastructure.
</content>
</entry>
<entry>
<title>lib/parse-sexp: support regular expressions</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:29Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=1870b3ae4bae5e68296e63acc81965eea04a1a7a'/>
<id>urn:sha1:1870b3ae4bae5e68296e63acc81965eea04a1a7a</id>
<content type='text'>
At least to the degree that the Xapian QueryParser based parser
also supports them. Support short alias 'rx' as it seems to make more
complex queries nicer to read.
</content>
</entry>
<entry>
<title>lib/parse-sexp: add '*' as syntactic sugar for '(starts-with "")'</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:25Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=0ca4ad2670b22e975a018f9f662ea3a762840583'/>
<id>urn:sha1:0ca4ad2670b22e975a018f9f662ea3a762840583</id>
<content type='text'>
Users that insist on using a literal '*' as a tag, can continue to do
so by quoting it when searching.
</content>
</entry>
<entry>
<title>lib/parse-sexp: 'starts-with' wildcard searches</title>
<updated>2021-09-05T00:07:19Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-08-24T15:17:24Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=011d06f4d6fec8083581676ba9f9448fe7bea1be'/>
<id>urn:sha1:011d06f4d6fec8083581676ba9f9448fe7bea1be</id>
<content type='text'>
The many tests potentially overkill, but they could catch typos in the
prefixes table. As a simplifying assumption, for now we assume a
single argument to the wildcard operator, as this matches the Xapian
semantics. The name 'starts-with' is chosen to emphasize the supported
case of wildcards in currrent (1.4.x) Xapian.
</content>
</entry>
</feed>
