unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* v3 sexpr query parser
@ 2021-07-30 12:55 David Bremner
  2021-07-30 12:55 ` [PATCH 01/27] configure: optional library sfsexp David Bremner
                   ` (26 more replies)
  0 siblings, 27 replies; 28+ messages in thread
From: David Bremner @ 2021-07-30 12:55 UTC (permalink / raw)
  To: notmuch

This obsoletes and replaces [1]. I updated the syntax to be more
orthogonal, and documented it [2].  The examples in the documentation
now show solutions for several outstanding feature requests, so even
if you don't feel up to reviewing the patch series, have a look at the
user syntax [2] and send feedback. It's much easier to change that now
before people start relying on it.

Gentle reminder for the lisp haters, there is no plan to discard or
deprecated the current query parser.

Looking at the issues from [1],

1) The new query parser is still only hooked into the notmuch search
subcommand. Still waiting on (2).
proceeding.

2) The command line option --query-syntax={sexp,xapian} is still a bit
klunky.  I was thinking maybe --squery would be a nice shorter
version.

3) There is now documentation, see [2] (or build it yourself).

4) I submitted a corpus of utf8 test expressions to upstream sfsexp,
so I'm feeling OK about utf8 support.

5) I did the more idiomatic thing mentioned.

6) I switched to the (List notmuch) style.

7) Wildcards within fields are now implemented, with the syntax
'(subject (starts-with *))'. I'm open to a shorter alias for
'starts-with'

One new comment/issue:

8) I'm not wild about the term "modifier" used in the
documentation. I'm open to suggestions for a better name.  I do think
the division into fields, operators, and "other" is helpful

[1]: id:20210718024021.3850340-1-david@tethera.net
[2]: https://www.cs.unb.ca/~bremner/scratch/notmuch-doc-wip/man7/notmuch-sexp-queries.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2021-07-30 12:58 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-30 12:55 v3 sexpr query parser David Bremner
2021-07-30 12:55 ` [PATCH 01/27] configure: optional library sfsexp David Bremner
2021-07-30 12:55 ` [PATCH 02/27] lib: split notmuch_query_create David Bremner
2021-07-30 12:55 ` [PATCH 03/27] lib: define notmuch_query_create_with_syntax David Bremner
2021-07-30 12:55 ` [PATCH 04/27] CLI/search+address: support sexpr queries David Bremner
2021-07-30 12:55 ` [PATCH 05/27] lib: add new status code for query syntax errors David Bremner
2021-07-30 12:55 ` [PATCH 06/27] lib/parse-sexp: parse single terms and the empty list David Bremner
2021-07-30 12:55 ` [PATCH 07/27] lib: leave stemmer object accessible David Bremner
2021-07-30 12:55 ` [PATCH 08/27] lib/parse-sexp: stem unquoted atoms David Bremner
2021-07-30 12:55 ` [PATCH 09/27] lib/parse-sexp: support and, not, and or David Bremner
2021-07-30 12:55 ` [PATCH 10/27] lib/parse-sexp: support subject field David Bremner
2021-07-30 12:55 ` [PATCH 11/27] util/unicode: allow calling from C++ David Bremner
2021-07-30 12:55 ` [PATCH 12/27] lib/parse-sexp: support phrase queries David Bremner
2021-07-30 12:55 ` [PATCH 13/27] lib/parse-sexp: add term prefix backed fields David Bremner
2021-07-30 12:55 ` [PATCH 14/27] lib/parse-sexp: 'starts-with' wildcard searches David Bremner
2021-07-30 12:55 ` [PATCH 15/27] lib/parse-sexp: add '*' as syntactic sugar for '(starts-with "")' David Bremner
2021-07-30 12:55 ` [PATCH 16/27] lib/parse-sexp: handle unprefixed terms David Bremner
2021-07-30 12:55 ` [PATCH 17/27] lib/query: generalize exclude handling to s-expression queries David Bremner
2021-07-30 12:55 ` [PATCH 18/27] lib: factor out query construction from regexp David Bremner
2021-07-30 12:55 ` [PATCH 19/27] lib/parse-sexp: support regular expressions David Bremner
2021-07-30 12:56 ` [PATCH 20/27] lib: generate actual Xapian query for "*" and "" David Bremner
2021-07-30 12:56 ` [PATCH 21/27] lib/query: factor out _notmuch_query_string_to_xapian_query David Bremner
2021-07-30 12:56 ` [PATCH 22/27] lib/thread-fp: factor out query expansion, rewrite in Xapian David Bremner
2021-07-30 12:56 ` [PATCH 23/27] lib/parse-sexp: expand queries David Bremner
2021-07-30 12:56 ` [PATCH 24/27] lib/parse-sexp: support infix subqueries David Bremner
2021-07-30 12:56 ` [PATCH 25/27] lib/parse-sexp: parse user headers David Bremner
2021-07-30 12:56 ` [PATCH 26/27] lib: factor out expansion of saved queries David Bremner
2021-07-30 12:56 ` [PATCH 27/27] lib/parse-sexp: handle " David Bremner

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).