mu/mu4e: implement mu4e-compose-complete-max

Allow limiting number of contacts for auto-completion to a specific number;
defaulting to 2000.
This commit is contained in:
Dirk-Jan C. Binnema
2022-05-06 21:58:51 +03:00
parent ffce3dda21
commit 836bfc9062
5 changed files with 35 additions and 12 deletions

View File

@ -304,7 +304,7 @@ using ContactSet = std::set<std::reference_wrapper<const Contact>,
ContactLessThan>;
void
ContactsCache::for_each(const EachContactFunc& each_contact) const
ContactsCache::for_each(const EachContactFunc& each_contact, size_t max_num) const
{
std::lock_guard<std::mutex> l_{priv_->mtx_};
@ -316,8 +316,13 @@ ContactsCache::for_each(const EachContactFunc& each_contact) const
for (const auto& item : priv_->contacts_)
sorted.emplace(item.second);
for (const auto& ci : sorted)
// sadly, there's no set::resize
size_t n{};
for (const auto& ci : sorted) {
if (max_num > 0 && n++ >= max_num)
break;
each_contact(ci);
}
}
bool