summaryrefslogtreecommitdiff
path: root/src/main.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-01-15 03:02:08 +0000
committerMaxime Coste <frrrwww@gmail.com>2012-01-15 03:02:08 +0000
commitf259af9326b4e2140f856f1651eaeb0d74537621 (patch)
tree14dd4064c0562500c25c4b3e58f49ed92f292ed7 /src/main.cc
parentbe5cf9236750eb1fd38f0dd3ebc4da2af1fd87ab (diff)
CommandManager: add flags support and IgnoreSemiColons flag
commands are now registred with flags, and the IgnoreSemiColons flag permit to specify a command which needs all the parameters on the line, bypassing the command sequence operator ';'. the hook command is tagged as such.
Diffstat (limited to 'src/main.cc')
-rw-r--r--src/main.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main.cc b/src/main.cc
index 74cec3ba..6d3c726c 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -895,38 +895,46 @@ int main(int argc, char* argv[])
HooksManager hooks_manager;
command_manager.register_command(std::vector<std::string>{ "e", "edit" }, edit,
+ CommandManager::None,
PerArgumentCommandCompleter{ complete_filename });
command_manager.register_command(std::vector<std::string>{ "q", "quit" }, quit<false>);
command_manager.register_command(std::vector<std::string>{ "q!", "quit!" }, quit<true>);
command_manager.register_command(std::vector<std::string>{ "w", "write" }, write_buffer,
+ CommandManager::None,
PerArgumentCommandCompleter{ complete_filename });
command_manager.register_command(std::vector<std::string>{ "wq" }, write_and_quit<false>);
command_manager.register_command(std::vector<std::string>{ "wq!" }, write_and_quit<true>);
command_manager.register_command(std::vector<std::string>{ "b", "buffer" }, show_buffer,
+ CommandManager::None,
PerArgumentCommandCompleter {
std::bind(&BufferManager::complete_buffername, &buffer_manager, _1, _2)
});
command_manager.register_command(std::vector<std::string>{ "ah", "addhl" }, add_highlighter,
+ CommandManager::None,
PerArgumentCommandCompleter {
std::bind(&HighlighterRegistry::complete_highlighter, &highlighter_registry, _1, _2)
});
command_manager.register_command(std::vector<std::string>{ "rh", "rmhl" }, rm_highlighter,
+ CommandManager::None,
PerArgumentCommandCompleter {
[&](const std::string& prefix, size_t cursor_pos)
{ return main_context.window->complete_highlighterid(prefix, cursor_pos); }
});
command_manager.register_command(std::vector<std::string>{ "af", "addfilter" }, add_filter,
+ CommandManager::None,
PerArgumentCommandCompleter {
std::bind(&FilterRegistry::complete_filter, &filter_registry, _1, _2)
});
command_manager.register_command(std::vector<std::string>{ "rf", "rmfilter" }, rm_filter,
+ CommandManager::None,
PerArgumentCommandCompleter {
[&](const std::string& prefix, size_t cursor_pos)
{ return main_context.window->complete_filterid(prefix, cursor_pos); }
});
- command_manager.register_command(std::vector<std::string>{ "hook" }, add_hook);
+ command_manager.register_command(std::vector<std::string>{ "hook" }, add_hook, CommandManager::IgnoreSemiColons);
command_manager.register_command(std::vector<std::string>{ "source" }, exec_commands_in_file,
+ CommandManager::None,
PerArgumentCommandCompleter{ complete_filename });
command_manager.register_command(std::vector<std::string>{ "exec" }, exec_string);