From bf224a143dbef3f1ec586c330eae587e43162320 Mon Sep 17 00:00:00 2001 From: teramako Date: Wed, 2 Apr 2008 20:34:08 +0000 Subject: lang/javascript/vimperator-plugins/trunk/gmperator.js: change specification of gmset command options and using liberator.commands.parseArgs method git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@8702 d0d07461-0603-4401-acd4-de1884942a52 --- gmperator.js | 91 +++++++++++++++++++++++------------------------------------- 1 file changed, 35 insertions(+), 56 deletions(-) (limited to 'gmperator.js') diff --git a/gmperator.js b/gmperator.js index ba92925..e9d4821 100644 --- a/gmperator.js +++ b/gmperator.js @@ -1,8 +1,8 @@ /** * gmperator - vimperator plugin for Greasemonkey - * For vimperator 0.5.3 + * For vimperator 0.6pre * @author teramako teramako@gmail.com - * @version 0.1a + * @version 0.2a * * Usage: * @@ -18,24 +18,23 @@ * :gmset! {filename} -> toogle enable/disable the script * :gmset {filename} {options} * {options}: - * n[ame]={value} -> change name to {value} - * i[nclude]={expr[,expr,...]} -> change includes to expr list ("," demiliter) - * e[xclude]={expr[,expr,...]} -> change excludes to expr list ("," demiliter) + * -n[ame] {value} -> change name to {value} + * -i[nclude] {expr[,expr,...]} -> change includes to expr list ("," demiliter) + * -e[xclude] {expr[,expr,...]} -> change excludes to expr list ("," demiliter) * * Caution: * The change is permanent, not only the session. * And cannot get back. * * ex) - * :gmset! {filename} n=fooScriptName i=http://*,https://* e=http://example.com/* + * :gmset! {filename} -n fooScriptName -i http://*,https://* -e http://example.com/* * toggle enable or disable, * name to "fooScriptName", * includes to "http://*" and "https://*", * and excludes to "http://example.com/*" */ (function(){ -vimperator.commands.add(new vimperator.Command( - ['gmli[st]','lsgm'], +commands.addUserCommand(['gmli[st]','lsgm'], 'list Greasemonkey scripts', function(arg,special){ var str = ''; var scripts = getScripts(); @@ -61,7 +60,7 @@ vimperator.commands.add(new vimperator.Command( str += ' (' + scripts[i].filename + ')\n' } } - vimperator.echo(str); + echo(str); function scriptToString(script){ return [ '' + script.name + '::', @@ -75,13 +74,9 @@ vimperator.commands.add(new vimperator.Command( 'enabled: ' + script.enabled ].join('\n'); } - },{ - usage: ['gmli[st] [full] | {filter}','lsgm [full] | {filter}'], - shortHelp: 'list Greasemonkey scripts' } -)); -vimperator.commands.add(new vimperator.Command( - ['gmlo[ad]'], +); +commands.addUserCommand(['gmlo[ad]'], 'load Greasemonkey script', function(arg){ if (!arg) return; var scripts = getScripts(); @@ -93,17 +88,17 @@ vimperator.commands.add(new vimperator.Command( } } if (!script) { - vimperator.echoerr('Usage: :gmlo[ad] {name|filename}'); + echoerr('Usage: :gmlo[ad] {name|filename}'); return; } else { - vimperator.echo('load: ' +script.filename); + echo('load: ' +script.filename); } try { var href = vimperator.buffer.URL; var unsafewin = window.content.document.defaultView.wrappedJSObject; GM_BrowserUI.gmSvc.wrappedJSObject.injectScripts([script],href,unsafewin,window); } catch(e){ - vimperator.log(e); + log(e); } /* // do you have idea how to dispatch load event to only the script ? @@ -114,22 +109,20 @@ vimperator.commands.add(new vimperator.Command( },100); */ },{ - usage: ['gmlo[ad] {name|filename}'], - shortHelp: 'load Greasemonkey script', + args: ['{name|filename}'], completer: function(filter){ return scriptsCompleter(filter,true); } } -)); -vimperator.commands.add(new vimperator.Command( - ['gmset'], +); +commands.addUserCommand(['gmset'], 'change setting a greasemonkey script', function(arg, special){ - if (!arg && special) { // toggle enable/disable greasemonkey - GM_setEnabled(!GM_getEnabled()); + var res = liberator.commands.parseArgs(arg, this.args); + if (!res) { + if (special) GM_setEnabled(!GM_getEnabled()); // toggle enable/disable greasemonkey return; } - var args = arg.split(/\s+/); - var filename = args.shift(); + var filename = res.args[0]; var config = new Config(); config.load(); var script; @@ -143,45 +136,31 @@ vimperator.commands.add(new vimperator.Command( if (special){ // toggle enable/disable the script if {filename} is exist script.enabled = !script.enabled; } - for (var i=0; i 0){ + script.name = liberator.commands.getOption(res.opts, '-name', script.name); + script.includes = liberator.commands.getOption(res.opts, '-include', script.includes); + script.excludes = liberator.commands.getOption(res.opts, '-exclude', script.excludes); + } config.save(); },{ - usage: [ - 'gmset!', - 'gmset[!] {filename}', - 'gmset[!] {filename} n[ame]={name}', - 'gmset[!] {filename} i[nclude]={expr[,expr,...]}', - 'gmset[!] {filename} e[xeclude]={expr[,expr,...]}' + args: [ + [['-name','-n'], liberator.commands.OPTION_STRING], + [['-include','-i'], liberator.commands.OPTION_LIST], + [['-exclude','-e'], liberator.commands.OPTION_LIST] ], shortHelp: 'change setting a greasemonkey script', help: [ 'toggle enable/disable with "!", if {filename} is exist, if not toggle greasemonkey', - '
n
name
change the name
', - '
i
include
change the inclue list ("," demiliter)
', - '
e
exclude
change the exclude list ("," demiliter)
', + '
-n
-name
change the name
', + '
-i
-include
change the inclue list ("," demiliter)
', + '
-e
-exclude
change the exclude list ("," demiliter)
', 'Caution: the change is permanent, not the only session.
And cannot get back.' ].join(''), completer: function(filter){ - return scriptsCompleter(filter, false); + return scriptsCompleter(filter, false); } } -)); +); function getScripts(){ var config = new Config(); config.load(); @@ -209,7 +188,7 @@ function scriptsCompleter(filter,flag){ } } } - return candidates; + return [0,candidates]; } })(); -- cgit v1.2.3