summaryrefslogtreecommitdiff
path: root/src/command_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2016-03-08 21:35:56 +0000
committerMaxime Coste <frrrwww@gmail.com>2016-03-08 21:35:56 +0000
commit9e15181dc9b56435c5e1d3ab87dd03404d6c31c9 (patch)
tree2fcf0f09cea4755e36c7295b517676a234c10c51 /src/command_manager.cc
parent21ae66215163976ea4c826dcdf55e04ddce54748 (diff)
Rework container helpers, use pipe syntax and cleanup implementation
use 'container | filter(func) | reverse() | transform(func)' instead of 'transform(reverse(filter(container), func), func)' to express container transformations.
Diffstat (limited to 'src/command_manager.cc')
-rw-r--r--src/command_manager.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc
index 65de501c..4902f068 100644
--- a/src/command_manager.cc
+++ b/src/command_manager.cc
@@ -515,12 +515,15 @@ CommandInfo CommandManager::command_info(const Context& context, StringView comm
Completions CommandManager::complete_command_name(const Context& context,
StringView query) const
{
- return{0, query.length(), Kakoune::complete(query, query.length(), concatenated(
- transformed(filtered(m_commands, [](const CommandMap::value_type& cmd)
- { return not (cmd.second.flags & CommandFlags::Hidden); }),
- [](const CommandMap::value_type& cmd) { return StringView{cmd.first}; }),
- transformed(context.aliases().flatten_aliases(),
- [](AliasRegistry::AliasDesc alias) { return alias.first; })))};
+ auto candidates = Kakoune::complete(
+ query, query.length(), concatenated(
+ m_commands
+ | filter([](const CommandMap::value_type& cmd) { return not (cmd.second.flags & CommandFlags::Hidden); })
+ | transform([](const CommandMap::value_type& cmd) { return StringView{cmd.first}; }),
+ context.aliases().flatten_aliases()
+ | transform([](AliasRegistry::AliasDesc alias) { return alias.first; })));
+
+ return {0, query.length(), std::move(candidates)};
}
Completions CommandManager::complete(const Context& context,