diff options
| author | Maxime Coste <mawww@kakoune.org> | 2025-07-08 10:33:56 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2025-07-08 12:07:33 +1000 |
| commit | fea08fc18d268ace4f843ec2b57cc33e36562098 (patch) | |
| tree | 0573099b42c357f6031191bcf92f0b0f44e67481 /src/buffer_manager.cc | |
| parent | 2823c5e94c1bad72a7a22ea37452d2390d5b1e17 (diff) | |
Remove uses of Regex in BufferManager by taking a more general filter
Diffstat (limited to 'src/buffer_manager.cc')
| -rw-r--r-- | src/buffer_manager.cc | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/buffer_manager.cc b/src/buffer_manager.cc index ea86beb9..539f160b 100644 --- a/src/buffer_manager.cc +++ b/src/buffer_manager.cc @@ -7,7 +7,6 @@ #include "buffer_utils.hh" #include "ranges.hh" #include "string.hh" -#include "regex.hh" namespace Kakoune { @@ -83,21 +82,21 @@ Buffer& BufferManager::get_buffer(StringView name) return *res; } -Buffer* BufferManager::get_buffer_matching_ifp(const Regex& regex) +Buffer* BufferManager::get_buffer_matching_ifp(const FunctionRef<bool (Buffer&)>& filter) { for (auto& buf : m_buffers | reverse()) { - if (StringView name = buf->name(); regex_match(name.begin(), name.end(), regex)) + if (filter(*buf)) return buf.get(); } return nullptr; } -Buffer& BufferManager::get_buffer_matching(const Regex& regex) +Buffer& BufferManager::get_buffer_matching(const FunctionRef<bool (Buffer&)>& filter) { - Buffer* res = get_buffer_matching_ifp(regex); + Buffer* res = get_buffer_matching_ifp(filter); if (not res) - throw runtime_error{format("no buffer matching '{}'", regex.str())}; + throw runtime_error{format("no buffer found")}; return *res; } |
