summaryrefslogtreecommitdiff
path: root/src/buffer_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2011-11-12 14:06:49 +0000
committerMaxime Coste <frrrwww@gmail.com>2011-11-12 14:06:49 +0000
commitf5ad32f1373d68db7e9f3170f2a306c3c5195b8c (patch)
treebebe38bb7fd9c260920422af8d21d1a9a770208c /src/buffer_manager.cc
parent82baa55eed7f908a02b9b60260e0e5cd78a9ad4d (diff)
Completion: decentralise, move buffer name completion to BufferManager
Diffstat (limited to 'src/buffer_manager.cc')
-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 27187080..c3211f7c 100644
--- a/src/buffer_manager.cc
+++ b/src/buffer_manager.cc
@@ -36,5 +36,17 @@ Buffer* BufferManager::get_buffer(const std::string& name)
return m_buffers[name].get();
}
+CandidateList BufferManager::complete_buffername(const std::string& prefix,
+ size_t cursor_pos)
+{
+ std::string real_prefix = prefix.substr(0, cursor_pos);
+ CandidateList result;
+ for (auto& buffer : m_buffers)
+ {
+ if (buffer.first.substr(0, real_prefix.length()) == real_prefix)
+ result.push_back(buffer.first);
+ }
+ return result;
+}
}