summaryrefslogtreecommitdiff
path: root/src/buffer_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer_manager.cc')
-rw-r--r--src/buffer_manager.cc11
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;
}