diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2009-04-11 14:49:34 +0200 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2009-04-11 14:49:34 +0200 |
commit | acb57723343d61cc287a260333c28d802d6ea70f (patch) | |
tree | 6d154d5b7b2e1fcdc3b0702e9a5693d342e710a6 /src/core/wee-command.c | |
parent | 8ac00cdac6ba3a2caf9a7b282701e3bb22c988de (diff) | |
download | weechat-acb57723343d61cc287a260333c28d802d6ea70f.zip |
Add support of many templates for completion of command arguments, rename default completion items
Diffstat (limited to 'src/core/wee-command.c')
-rw-r--r-- | src/core/wee-command.c | 187 |
1 files changed, 112 insertions, 75 deletions
diff --git a/src/core/wee-command.c b/src/core/wee-command.c index cd11607c3..85f0a9328 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -1753,42 +1753,46 @@ command_key (void *data, struct t_gui_buffer *buffer, return WEECHAT_RC_OK; } - /* reset keys (only with "-yes", for security reason) */ - if (string_strcasecmp (argv[1], "reset") == 0) + /* bind a key (or display binding) */ + if (string_strcasecmp (argv[1], "bind") == 0) { - if ((argc >= 3) && (string_strcasecmp (argv[2], "-yes") == 0)) + if (argc == 3) { - gui_keyboard_free_all (&gui_keys, &last_gui_key); - gui_keyboard_default_bindings (); - gui_chat_printf (NULL, - _("Default key bindings restored")); + ptr_key = NULL; + internal_code = gui_keyboard_get_internal_code (argv[2]); + if (internal_code) + ptr_key = gui_keyboard_search (NULL, internal_code); + if (ptr_key) + { + gui_chat_printf (NULL, ""); + gui_chat_printf (NULL, _("Key:")); + command_key_display (ptr_key); + } + else + { + gui_chat_printf (NULL, + _("No key found")); + } + if (internal_code) + free (internal_code); + return WEECHAT_RC_OK; } - else + + /* bind new key */ + gui_keyboard_verbose = 1; + ptr_key = gui_keyboard_bind (NULL, argv[2], argv_eol[3]); + gui_keyboard_verbose = 0; + if (!ptr_key) { gui_chat_printf (NULL, - _("%sError: \"-yes\" argument is required for " - "keys reset (security reason)"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]); + _("%sError: unable to bind key \"%s\""), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], + argv[2]); return WEECHAT_RC_ERROR; } return WEECHAT_RC_OK; } - /* add missing keys */ - if (string_strcasecmp (argv[1], "missing") == 0) - { - old_keys_count = gui_keys_count; - gui_keyboard_verbose = 1; - gui_keyboard_default_bindings (); - gui_keyboard_verbose = 0; - keys_added = (gui_keys_count > old_keys_count) ? - gui_keys_count - old_keys_count : 0; - gui_chat_printf (NULL, - NG_("%d new key added", "%d new keys added", keys_added), - keys_added); - return WEECHAT_RC_OK; - } - /* unbind a key */ if (string_strcasecmp (argv[1], "unbind") == 0) { @@ -1812,40 +1816,40 @@ command_key (void *data, struct t_gui_buffer *buffer, return WEECHAT_RC_OK; } - /* display a key */ - if (argc == 2) + /* reset keys (only with "-yes", for security reason) */ + if (string_strcasecmp (argv[1], "reset") == 0) { - ptr_key = NULL; - internal_code = gui_keyboard_get_internal_code (argv[1]); - if (internal_code) - ptr_key = gui_keyboard_search (NULL, internal_code); - if (ptr_key) + if ((argc >= 3) && (string_strcasecmp (argv[2], "-yes") == 0)) { - gui_chat_printf (NULL, ""); - gui_chat_printf (NULL, _("Key:")); - command_key_display (ptr_key); + gui_keyboard_free_all (&gui_keys, &last_gui_key); + gui_keyboard_default_bindings (); + gui_chat_printf (NULL, + _("Default key bindings restored")); } else { gui_chat_printf (NULL, - _("No key found")); + _("%sError: \"-yes\" argument is required for " + "keys reset (security reason)"), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]); + return WEECHAT_RC_ERROR; } - if (internal_code) - free (internal_code); return WEECHAT_RC_OK; } - /* bind new key */ - gui_keyboard_verbose = 1; - ptr_key = gui_keyboard_bind (NULL, argv[1], argv_eol[2]); - gui_keyboard_verbose = 0; - if (!ptr_key) + /* add missing keys */ + if (string_strcasecmp (argv[1], "missing") == 0) { + old_keys_count = gui_keys_count; + gui_keyboard_verbose = 1; + gui_keyboard_default_bindings (); + gui_keyboard_verbose = 0; + keys_added = (gui_keys_count > old_keys_count) ? + gui_keys_count - old_keys_count : 0; gui_chat_printf (NULL, - _("%sError: unable to bind key \"%s\""), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], - argv[1]); - return WEECHAT_RC_ERROR; + NG_("%d new key added", "%d new keys added", keys_added), + keys_added); + return WEECHAT_RC_OK; } return WEECHAT_RC_OK; @@ -3658,10 +3662,17 @@ command_init () " /bar scroll nicklist #weechat y-100%\n" " scroll to end of nicklist on current buffer:\n" " /bar scroll nicklist * ye"), - "add|default|del|set|hide|show|toggle|scroll|list|listfull|" - "listitems %r name|hidden|priority|conditions|position|" - "filling_top_bottom|filling_left_right|size|size_max|" - "color_fg|color_delim|color_bg|separator|items", + "add %(bars_names) root|window bottom|top|left|right" + " || default" + " || del %(bars_names)|-all" + " || set %(bars_names) %(bars_options)" + " || hide %(bars_names)" + " || show %(bars_names)" + " || toggle %(bars_names)" + " || scroll %(bars_names) %(buffers_plugins_names)|*" + " || list" + " || listfull" + " || listitems", &command_bar, NULL); hook_command (NULL, "buffer", N_("manage buffers"), @@ -3686,7 +3697,15 @@ command_init () " close buffer: /buffer close\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1"), - "clear|move|close|list|notify|localvar|set|%b %b", + "clear -all|%(buffers_numbers)" + " || move %(buffers_numbers)" + " || close" + " || list" + " || notify" + " || localvar" + " || set" + " || %(buffers_names)" + " || %(buffers_numbers)", &command_buffer, NULL); hook_command (NULL, "command", N_("launch explicit WeeChat or plugin command"), @@ -3695,7 +3714,7 @@ command_init () "command)\n" "command: command to execute (a '/' is automatically " "added if not found at beginning of command)"), - "%p|" PLUGIN_CORE " %P", + "%(plugins_names)|" PLUGIN_CORE " %(plugins_commands)", &command_command, NULL); hook_command (NULL, "debug", N_("control debug for core/plugins"), @@ -3709,7 +3728,7 @@ command_init () "windows: display windows tree\n" " text: send \"debug\" signal with \"text\" as " "argument"), - "%p|core|list|dump|buffer|windows", + "%(plugins_names)|core|list|dump|buffer|windows", &command_debug, NULL); hook_command (NULL, "filter", N_("filter messages in buffers, to hide/show them according " @@ -3745,14 +3764,19 @@ command_init () " filter lines containing \"weechat sucks\" on IRC " "channel #weechat:\n" " /filter add sucks irc.freenode.#weechat * weechat sucks"), - "list|enable|disable|toggle|add|rename|del %F %B", + "list" + " || enable %(filters_names)" + " || disable %(filters_names)" + " || toggle %(filters_names)" + " || add %(filters_names) %(buffers_plugins_names)|*" + " || del %(filters_names)|-all", &command_filter, NULL); hook_command (NULL, "help", N_("display help about commands and options"), N_("[command | option]"), N_("command: a command name\n" " option: an option name (use /set to see list)"), - "%h|%o", + "%(commands)|%(config_options)", &command_help, NULL); hook_command (NULL, "history", N_("show buffer command history"), @@ -3791,14 +3815,18 @@ command_init () &command_input, NULL); hook_command (NULL, "key", N_("bind/unbind keys"), - N_("[key [command [args]]] | [unbind key] | [reset -yes] | " - "[missing]"), - N_(" key: display or bind this key to a command\n" - " unbind: unbind a key\n" - " reset: restore bindings to the default values and " + N_("[bind key [command [args]]] | [unbind key] | " + "[reset -yes] | [missing]"), + N_(" bind: bind a command to a key or display command " + "bound to key\n" + " unbind: remove a key binding\n" + " reset: restore bindings to the default values and " "delete ALL personal bindings (use carefully!)\n" - " missing: add missing keys (using default bindings)"), - "unbind|reset|missing", + "missing: add missing keys (using default bindings)"), + "bind %(keys_codes) %(commands)" + " || unbind %(key_codes)" + " || reset" + " || missing", &command_key, NULL); hook_command (NULL, "layout", N_("save/apply/reset layout for buffers and windows"), @@ -3824,7 +3852,12 @@ command_init () "all plugins, then autoload plugins)\n" " unload: unload one or all plugins\n\n" "Without argument, this command lists loaded plugins."), - "list|listfull|load|autoload|reload|unload %f|%p", + "list %(plugins_names)" + " || listfull %(plugins_names)" + " || load %(filename)" + " || autoload" + " || reload %(plugins_names)" + " || unload %(plugins_names)", &command_plugin, NULL); hook_command (NULL, "proxy", N_("manage proxies"), @@ -3854,7 +3887,10 @@ command_init () " /proxy add myproxy socks5 sample.host.org 3128 myuser mypass\n" " delete a proxy:\n" " /proxy del myproxy"), - "add|del|set|list %y name|type|ipv6|address|port|username|password", + "add %(proxies_names) http|socks4|socks5" + " || del %(proxies_names)" + " || set %(proxies_names) %(proxies_options)" + " || list ", &command_proxy, NULL); hook_command (NULL, "quit", N_("quit WeeChat"), @@ -3867,7 +3903,7 @@ command_init () N_("file: configuration file to reload\n\n" "Without argument, all files (WeeChat and plugins) are " "reloaded."), - "%c|%*", + "%(config_files)|%*", &command_reload, NULL); hook_command (NULL, "save", N_("save configuration files to disk"), @@ -3875,7 +3911,7 @@ command_init () N_("file: configuration file to save\n\n" "Without argument, all files (WeeChat and plugins) are " "saved."), - "%c|%*", + "%(config_files)|%*", &command_save, NULL); hook_command (NULL, "set", N_("set config options"), @@ -3890,7 +3926,7 @@ command_init () "For all types, you can use null to remove " "option value (undefined value). This works only " "for some special plugin variables."), - "%o %v", + "%(config_options) %(config_option_values)", &command_set, NULL); hook_command (NULL, "unset", N_("unset/reset config options"), @@ -3899,7 +3935,7 @@ command_init () "to mass-reset options, use carefully!)\n\n" "According to option, it's reset (for standard options) " "or removed (for optional settings, like server values)."), - "%o", + "%(config_options)", &command_unset, NULL); hook_command (NULL, "upgrade", N_("upgrade WeeChat without disconnecting from servers"), @@ -3909,7 +3945,7 @@ command_init () "This command run again a WeeChat binary, so it should " "have been compiled or installed with a package manager " "before running this command."), - "%f", + "%(filename)", &command_upgrade, NULL); hook_command (NULL, "uptime", N_("show WeeChat uptime"), @@ -3967,10 +4003,11 @@ command_init () " scroll 2 lines up: /window scroll -2\n" " scroll 2 days up: /window scroll -2d\n" " scroll to beginning of current day: /window scroll -d"), - "list|-1|+1|up|down|left|right|splith|splitv|resize|merge|" - "page_up|page_down|refresh|scroll_up|scroll|scroll_down|" - "scroll_top|scroll_bottom|scroll_previous_highlight|" - "scroll_next_highlight|zoom all", + "list|-1|+1|up|down|left|right|splith|splitv|resize|page_up|" + "page_down|refresh|scroll_up|scroll|scroll_down|scroll_top|" + "scroll_bottom|scroll_previous_highlight|" + "scroll_next_highlight|zoom" + " || merge all", &command_window, NULL); } |