summaryrefslogtreecommitdiff
path: root/src/command_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2018-02-20 22:09:03 +1100
committerMaxime Coste <mawww@kakoune.org>2018-02-20 23:32:31 +1100
commit6d111d4bd78f340b397a5f45dc8c22a245f676e0 (patch)
tree40405243945b743f43bbd838daa0c7233384bb78 /src/command_manager.cc
parent6239357e99af08ded2c532405ee2f6eba6ef8ad9 (diff)
Re-introduce aliases in command name completion
Aliases are considered again in command name completion, but only if they are more than 3 charactes long. This should prevent cluttering with aliases while still letting long ones being completed.
Diffstat (limited to 'src/command_manager.cc')
-rw-r--r--src/command_manager.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc
index ed489183..45200e11 100644
--- a/src/command_manager.cc
+++ b/src/command_manager.cc
@@ -540,7 +540,11 @@ Completions CommandManager::complete_command_name(const Context& context, String
| filter([](const CommandMap::Item& cmd) { return not (cmd.value.flags & CommandFlags::Hidden); })
| transform(std::mem_fn(&CommandMap::Item::key));
- return {0, query.length(), Kakoune::complete(query, query.length(), commands)};
+ auto aliases = context.aliases().flatten_aliases()
+ | transform(std::mem_fn(&HashItem<String, String>::key))
+ | filter([](auto& alias) { return alias.length() > 3; });
+
+ return {0, query.length(), Kakoune::complete(query, query.length(), concatenated(commands, aliases))};
}
Completions CommandManager::complete(const Context& context,