summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-08-14 14:26:36 +0200
committerMaxime Coste <frrrwww@gmail.com>2012-08-14 14:26:36 +0200
commite00c81171248268cd7f61c0a9e139a8065b48eed (patch)
tree49876550b3122dbeb89568ea5a160f955fe8deb3 /src
parentb630189ce52886d4284f800c46eee500a2ec0e6c (diff)
complete_buffername try regex matching when prefix matching does not work
Diffstat (limited to 'src')
-rw-r--r--src/buffer_manager.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/buffer_manager.cc b/src/buffer_manager.cc
index 9aba924d..c5235cb1 100644
--- a/src/buffer_manager.cc
+++ b/src/buffer_manager.cc
@@ -3,6 +3,7 @@
#include "assert.hh"
#include "buffer.hh"
#include "exception.hh"
+#include "regex.hh"
namespace Kakoune
{
@@ -62,6 +63,17 @@ CandidateList BufferManager::complete_buffername(const String& prefix,
if (name.substr(0, real_prefix.length()) == real_prefix)
result.push_back(name);
}
+ // no prefix completion found, check regex matching
+ if (result.empty())
+ {
+ Regex ex(real_prefix.begin(), real_prefix.end());
+ for (auto& buffer : m_buffers)
+ {
+ const String& name = buffer->name();
+ if (boost::regex_search(name.begin(), name.end(), ex))
+ result.push_back(name);
+ }
+ }
return result;
}