server: make parsed queries available to mu4e

Basically, make the "mu find .... --analyze" information available in
mu4e, through a function mu4e-server-last-query.

This is shows the query as the server saw it, as well as the parse
s-expressions. This can be useful to see how some query is interpreted.
This commit is contained in:
Dirk-Jan C. Binnema
2025-01-05 22:41:24 +02:00
parent b389160066
commit 5f8e0b71f0
2 changed files with 28 additions and 4 deletions

View File

@ -1,5 +1,5 @@
/*
** Copyright (C) 2020-2023 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
** Copyright (C) 2020-2025 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
**
** This program is free software; you can redistribute it and/or modify it
** under the terms of the GNU General Public License as published by the
@ -39,6 +39,7 @@
#include "mu-maildir.hh"
#include "mu-query.hh"
#include "mu-query-parser.hh"
#include "mu-store.hh"
#include "utils/mu-utils.hh"
@ -703,7 +704,12 @@ Server::Private::find_handler(const Command& cmd)
output_sexp(Sexp().put_props(":erase", Sexp::t_sym));
const auto bsize{static_cast<size_t>(batch_size)};
const auto foundnum = output_results(*qres, bsize);
output_sexp(Sexp().put_props(":found", foundnum));
output_sexp(Sexp().put_props(
":found", foundnum,
":query", q,
":query-sexp", parse_query(q, false/*!expand*/).to_string(),
":query-sexp-expanded", parse_query(q, true/*expand*/).to_string()));
}
void