summaryrefslogtreecommitdiff
path: root/src/function_group.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-11-18 22:17:50 +0000
committerMaxime Coste <frrrwww@gmail.com>2013-11-18 22:17:50 +0000
commitd27548dd154631ce627dfeb8abbf0a8540e73366 (patch)
treeb027c55ca0d9608e6fbad7ab2915e9684f7d8bc6 /src/function_group.hh
parentf57f065d7618999bbdd9f92439550d90fd9b5adc (diff)
Resurect idvaluemap, order of traversal matters
This reverts commit 2b9b161d424c1168636042adc6678bb3df2be3f9.
Diffstat (limited to 'src/function_group.hh')
-rw-r--r--src/function_group.hh19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/function_group.hh b/src/function_group.hh
index 82e4fc7c..739b7ffb 100644
--- a/src/function_group.hh
+++ b/src/function_group.hh
@@ -2,10 +2,8 @@
#define function_group_hh_INCLUDED
#include "exception.hh"
+#include "idvaluemap.hh"
#include "string.hh"
-#include "completion.hh"
-
-#include <unordered_map>
namespace Kakoune
{
@@ -25,14 +23,14 @@ public:
void append(FunctionAndId&& function)
{
- if (m_functions.find(function.first) != m_functions.end())
+ if (m_functions.contains(function.first))
throw runtime_error("duplicate id: " + function.first);
- m_functions.insert(std::forward<FunctionAndId>(function));
+ m_functions.append(std::forward<FunctionAndId>(function));
}
void remove(const String& id)
{
- m_functions.erase(id);
+ m_functions.remove(id);
}
FunctionGroup& get_group(const String& id)
@@ -48,20 +46,19 @@ public:
CandidateList complete_id(const String& prefix, ByteCount cursor_pos) const
{
- return complete_key(m_functions, prefix, cursor_pos);
+ return m_functions.complete_id(prefix, cursor_pos);
}
CandidateList complete_group_id(const String& prefix, ByteCount cursor_pos) const
{
- return complete_key_if(
- m_functions, prefix, cursor_pos,
- [](const FunctionAndId& func) {
+ return m_functions.complete_id_if(
+ prefix, cursor_pos, [](const FunctionAndId& func) {
return func.second.template target<FunctionGroup>() != nullptr;
});
}
private:
- std::unordered_map<String, Function> m_functions;
+ idvaluemap<String, Function> m_functions;
};
}