diff options
author | hogelog | 2008-11-28 11:25:12 +0000 |
---|---|---|
committer | hogelog | 2008-11-28 11:25:12 +0000 |
commit | 7fdf0e7e0def412599f43a4c98a003be6f469782 (patch) | |
tree | f39cbe7e5ee5875ff41fb2d4f32318cb861b3086 /gmperator.js | |
parent | cc0637a241575b304921afad07fbae30f7162b31 (diff) | |
download | vimperator-plugins-7fdf0e7e0def412599f43a4c98a003be6f469782.tar.bz2 |
* add ":gmcommand" command gmperator.js.
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/branches/1.2@25253 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'gmperator.js')
-rw-r--r-- | gmperator.js | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/gmperator.js b/gmperator.js index 24b2e36..8a1781f 100644 --- a/gmperator.js +++ b/gmperator.js @@ -4,7 +4,7 @@ * @description Vimperator plugin for Greasemonkey * @author teramako teramako@gmail.com * @namespace http://d.hatena.ne.jp/teramako/ - * @version 0.5b + * @version 0.6b * ==/VimperatorPlugin== * * --------------------------- @@ -29,6 +29,8 @@ * -i[nclude] {expr[,expr,...]} -> change includes to expr list ("," demiliter) * -e[xclude] {expr[,expr,...]} -> change excludes to expr list ("," demiliter) * + * :gmcommand {command name} -> run Greasemonkey Command + * * Caution: * The change is permanent, not only the session. * And cannot get back. @@ -342,6 +344,33 @@ commands.addUserCommand(['gmset'], 'change settings for Greasemonkey scripts', / scriptsCompleter(filter, false) } ); //}}} +liberator.commands.addUserCommand(["gmcommand", "gmcmd"], "run Greasemonkey Command", //{{{ + function(args, special) { + var commander = GM_BrowserUI.getCommander(getBrowser().selectedTab.linkedBrowser.contentWindow); + for (var i = 0; i < commander.menuItems.length; i++) { + var menuItem = commander.menuItems[i]; + if (menuItem.getAttribute("label") == args) { + menuItem._commandFunc(); + return; + } + } + liberator.echoerr(args+" is not defined userscript command."); + }, + { + completer: function(filter) { + var commander = GM_BrowserUI.getCommander(getBrowser().selectedTab.linkedBrowser.contentWindow); + var completions = []; + var exp = new RegExp(".*" + filter + ".*"); + for (var i = 0; i < commander.menuItems.length; i++) { + var label = commander.menuItems[i].getAttribute("label"); + if (!filter || exp.test(label)) { + completions.push([label, label]); + } + } + return [0, completions]; + } + } +); //}}} // --------------------------- // Utils |