aboutsummaryrefslogtreecommitdiffstats
path: root/gmperator.js
diff options
context:
space:
mode:
authorhogelog2008-11-28 11:25:12 +0000
committerhogelog2008-11-28 11:25:12 +0000
commit7fdf0e7e0def412599f43a4c98a003be6f469782 (patch)
treef39cbe7e5ee5875ff41fb2d4f32318cb861b3086 /gmperator.js
parentcc0637a241575b304921afad07fbae30f7162b31 (diff)
downloadvimperator-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.js31
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