doc/sexp-queries: replace definition lists with block quotes.

This document contains meaningful markup in the terms, which makeinfo
complains about. Replace the use of definition lists with regular
paragraphs containing quote blocks. This is accomplished by splitting
the "term" from the definition with a blank line.
This commit is contained in:
David Bremner 2021-10-11 09:56:15 -03:00
parent 00fdf10937
commit 93104f0d9d

View file

@ -31,10 +31,12 @@ An *s-expression* is either an atom, or list of whitespace delimited
s-expressions inside parentheses. Atoms are either s-expressions inside parentheses. Atoms are either
*basic value* *basic value*
A basic value is an unquoted string containing no whitespace, double quotes, or A basic value is an unquoted string containing no whitespace, double quotes, or
parentheses. parentheses.
*quoted string* *quoted string*
Double quotes (") delimit strings possibly containing whitespace Double quotes (") delimit strings possibly containing whitespace
or parentheses. These can contain double quote characters by or parentheses. These can contain double quote characters by
escaping with backslash. E.g. ``"this is a quote \""``. escaping with backslash. E.g. ``"this is a quote \""``.
@ -48,9 +50,11 @@ a *field*, *logical operation*, or *modifier*, and 0 or more
subqueries. subqueries.
``*`` ``*``
"*" matches any non-empty string in the current field. "*" matches any non-empty string in the current field.
``()`` ``()``
The empty list matches all messages The empty list matches all messages
*term* *term*
@ -62,19 +66,23 @@ subqueries.
phrase splitting see :any:`fields`. phrase splitting see :any:`fields`.
``(`` *field* |q1| |q2| ... |qn| ``)`` ``(`` *field* |q1| |q2| ... |qn| ``)``
Restrict the queries |q1| to |qn| to *field*, and combine with *and* Restrict the queries |q1| to |qn| to *field*, and combine with *and*
(for most fields) or *or*. See :any:`fields` for more information. (for most fields) or *or*. See :any:`fields` for more information.
``(`` *operator* |q1| |q2| ... |qn| ``)`` ``(`` *operator* |q1| |q2| ... |qn| ``)``
Combine queries |q1| to |qn|. Currently supported operators are Combine queries |q1| to |qn|. Currently supported operators are
``and``, ``or``, and ``not``. ``(not`` |q1| ... |qn| ``)`` is equivalent ``and``, ``or``, and ``not``. ``(not`` |q1| ... |qn| ``)`` is equivalent
to ``(and (not`` |q1| ``) ... (not`` |qn| ``))``. to ``(and (not`` |q1| ``) ... (not`` |qn| ``))``.
``(`` *modifier* |q1| |q2| ... |qn| ``)`` ``(`` *modifier* |q1| |q2| ... |qn| ``)``
Combine queries |q1| to |qn|, and reinterpret the result (e.g. as a regular expression). Combine queries |q1| to |qn|, and reinterpret the result (e.g. as a regular expression).
See :any:`modifiers` for more information. See :any:`modifiers` for more information.
``(macro (`` |p1| ... |pn| ``) body)`` ``(macro (`` |p1| ... |pn| ``) body)``
Define saved query with parameter substitution. The syntax is Define saved query with parameter substitution. The syntax is
recognized only in saved s-expression queries (see ``squery.*`` in recognized only in saved s-expression queries (see ``squery.*`` in
:any:`notmuch-config(1)`). Parameter names in ``body`` must be :any:`notmuch-config(1)`). Parameter names in ``body`` must be
@ -164,26 +172,31 @@ MODIFIERS
that are neither operators nor fields. that are neither operators nor fields.
``(infix`` *atom* ``)`` ``(infix`` *atom* ``)``
Interpret *atom* as an infix notmuch query (see Interpret *atom* as an infix notmuch query (see
:any:`notmuch-search-terms(7)`). Not supported inside fields. :any:`notmuch-search-terms(7)`). Not supported inside fields.
``(matching`` |q1| |q2| ... |qn| ``)`` ``(of`` |q1| |q2| ... |qn| ``)`` ``(matching`` |q1| |q2| ... |qn| ``)`` ``(of`` |q1| |q2| ... |qn| ``)``
Match all messages have the same values of the current field as Match all messages have the same values of the current field as
those matching all of |q1| ... |qn|. Supported in most term [#not-path]_ or those matching all of |q1| ... |qn|. Supported in most term [#not-path]_ or
phrase fields. Most commonly used in the ``thread`` field. phrase fields. Most commonly used in the ``thread`` field.
``(query`` *atom* ``)`` ``(query`` *atom* ``)``
Expand to the saved query named by *atom*. See Expand to the saved query named by *atom*. See
:any:`notmuch-config(1)` for more. Note that the saved query must :any:`notmuch-config(1)` for more. Note that the saved query must
be in infix syntax (:any:`notmuch-search-terms(7)`). Not supported be in infix syntax (:any:`notmuch-search-terms(7)`). Not supported
inside fields. inside fields.
``(regex`` *atom* ``)`` ``(rx`` *atom* ``)`` ``(regex`` *atom* ``)`` ``(rx`` *atom* ``)``
Interpret *atom* as a POSIX.2 regular expression (see Interpret *atom* as a POSIX.2 regular expression (see
:manpage:`regex(7)`). This applies in term fields and a subset [#not-phrase]_ of :manpage:`regex(7)`). This applies in term fields and a subset [#not-phrase]_ of
phrase fields (see :any:`field-table`). phrase fields (see :any:`field-table`).
``(starts-with`` *subword* ``)`` ``(starts-with`` *subword* ``)``
Matches any term starting with *subword*. This applies in either Matches any term starting with *subword*. This applies in either
phrase or term :any:`fields <fields>`, or outside of fields [#not-body]_. Note that phrase or term :any:`fields <fields>`, or outside of fields [#not-body]_. Note that
a ``starts-with`` query cannot be part of a phrase. The a ``starts-with`` query cannot be part of a phrase. The
@ -193,63 +206,80 @@ EXAMPLES
======== ========
``Wizard`` ``Wizard``
Match all messages containing the word "wizard", ignoring case. Match all messages containing the word "wizard", ignoring case.
``added`` ``added``
Match all messages containing "added", but also those containing "add", "additional", Match all messages containing "added", but also those containing "add", "additional",
"Additional", "adds", etc... via stemming. "Additional", "adds", etc... via stemming.
``(and Bob Marley)`` ``(and Bob Marley)``
Match messages containing words "Bob" and "Marley", or their stems Match messages containing words "Bob" and "Marley", or their stems
The words need not be adjacent. The words need not be adjacent.
``(not Bob Marley)`` ``(not Bob Marley)``
Match messages containing neither "Bob" nor "Marley", nor their stems, Match messages containing neither "Bob" nor "Marley", nor their stems,
``"quick fox"`` ``quick-fox`` ``quick@fox`` ``"quick fox"`` ``quick-fox`` ``quick@fox``
Match the *phrase* "quick" followed by "fox" in phrase fields (or Match the *phrase* "quick" followed by "fox" in phrase fields (or
outside a field). Match the literal string in a term field. outside a field). Match the literal string in a term field.
``(folder (of (id 1234@invalid)))`` ``(folder (of (id 1234@invalid)))``
Match any message in the same folder as the one with Message-Id "1234@invalid" Match any message in the same folder as the one with Message-Id "1234@invalid"
``(id 1234@invalid blah@test)`` ``(id 1234@invalid blah@test)``
Matches Message-Id "1234@invalid" *or* Message-Id "blah@test" Matches Message-Id "1234@invalid" *or* Message-Id "blah@test"
``(and (infix "date:2009-11-18..2009-11-18") (tag unread))`` ``(and (infix "date:2009-11-18..2009-11-18") (tag unread))``
Match messages in the given date range with tag unread. Match messages in the given date range with tag unread.
``(starts-with prelim)`` ``(starts-with prelim)``
Match any words starting with "prelim". Match any words starting with "prelim".
``(subject quick "brown fox")`` ``(subject quick "brown fox")``
Match messages whose subject contains "quick" (anywhere, stemmed) and Match messages whose subject contains "quick" (anywhere, stemmed) and
the phrase "brown fox". the phrase "brown fox".
``(subject (starts-with prelim))`` ``(subject (starts-with prelim))``
Matches any word starting with "prelim", inside a message subject. Matches any word starting with "prelim", inside a message subject.
``(subject (starts-wih quick) "brown fox")`` ``(subject (starts-wih quick) "brown fox")``
Match messages whose subject contains "quick brown fox", but also Match messages whose subject contains "quick brown fox", but also
"brown fox quicksand". "brown fox quicksand".
``(thread (of (id 1234@invalid)))`` ``(thread (of (id 1234@invalid)))``
Match any message in the same thread as the one with Message-Id "1234@invalid" Match any message in the same thread as the one with Message-Id "1234@invalid"
``(thread (matching (from bob@example.com) (to bob@example.com)))`` ``(thread (matching (from bob@example.com) (to bob@example.com)))``
Match any (messages in) a thread containing a message from Match any (messages in) a thread containing a message from
"bob@example.com" and a (possibly distinct) message to "bob at "bob@example.com" and a (possibly distinct) message to "bob at
example.com") example.com")
``(to (or bob@example.com mallory@example.org))`` ``(or (to bob@example.com) (to mallory@example.org))`` ``(to (or bob@example.com mallory@example.org))`` ``(or (to bob@example.com) (to mallory@example.org))``
Match in the "To" or "Cc" headers, "bob@example.com", Match in the "To" or "Cc" headers, "bob@example.com",
"mallory@example.org", and also "bob@example.com.au" since it "mallory@example.org", and also "bob@example.com.au" since it
contains the adjacent triple "bob", "example", "com". contains the adjacent triple "bob", "example", "com".
``(not (to *))`` ``(not (to *))``
Match messages with an empty or invalid 'To' and 'Cc' field. Match messages with an empty or invalid 'To' and 'Cc' field.
``(List *)`` ``(List *)``
Match messages with a non-empty List-Id header, assuming Match messages with a non-empty List-Id header, assuming
configuration ``index.header.List=List-Id`` configuration ``index.header.List=List-Id``