diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2014-12-23 13:54:09 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2014-12-23 13:54:09 +0000 |
| commit | b6ff15aa757eb35fed5772d28e3c06b5e844a49e (patch) | |
| tree | d41ebca1b4fe4591017f5310749b263047ba9345 /src/client_manager.cc | |
| parent | 064fb81b8d38df3bc77e2211fb6bc5db84fedb97 (diff) | |
Unify completion from container content logic
Diffstat (limited to 'src/client_manager.cc')
| -rw-r--r-- | src/client_manager.cc | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/client_manager.cc b/src/client_manager.cc index 66b4bf62..213cc23f 100644 --- a/src/client_manager.cc +++ b/src/client_manager.cc @@ -2,6 +2,7 @@ #include "buffer_manager.hh" #include "command_manager.hh" +#include "containers.hh" #include "event_manager.hh" #include "face_registry.hh" #include "file.hh" @@ -172,19 +173,8 @@ void ClientManager::clear_mode_trashes() const CandidateList ClientManager::complete_client_name(StringView prefix, ByteCount cursor_pos) const { - auto real_prefix = prefix.substr(0, cursor_pos); - CandidateList result; - CandidateList subsequence_result; - for (auto& client : m_clients) - { - const String& name = client->context().name(); - - if (prefix_match(name, real_prefix)) - result.push_back(name); - if (subsequence_match(name, real_prefix)) - subsequence_result.push_back(name); - } - return result.empty() ? subsequence_result : result; + auto c = transformed(m_clients, [](const std::unique_ptr<Client>& c){ return c->context().name(); }); + return complete(prefix, cursor_pos, c, prefix_match, subsequence_match); } } |
