summaryrefslogtreecommitdiff
path: root/src/command_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/command_manager.cc')
-rw-r--r--src/command_manager.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc
index 973e95de..33815be4 100644
--- a/src/command_manager.cc
+++ b/src/command_manager.cc
@@ -9,16 +9,18 @@ namespace Kakoune
{
void CommandManager::register_command(const std::string& command_name, Command command,
+ unsigned flags,
const CommandCompleter& completer)
{
- m_commands[command_name] = CommandAndCompleter { command, completer };
+ m_commands[command_name] = CommandDescriptor { command, flags, completer };
}
void CommandManager::register_command(const std::vector<std::string>& command_names, Command command,
+ unsigned flags,
const CommandCompleter& completer)
{
for (auto command_name : command_names)
- register_command(command_name, command, completer);
+ register_command(command_name, command, flags, completer);
}
typedef std::vector<std::pair<size_t, size_t>> TokenList;
@@ -97,6 +99,9 @@ void CommandManager::execute(const CommandParameters& params,
if (command_it == m_commands.end())
throw command_not_found(*begin);
+ if (command_it->second.flags & IgnoreSemiColons)
+ end = params.end();
+
command_it->second.command(CommandParameters(begin + 1, end), context);
}