Changeset 25283 for lang/javascript/vimperator-plugins
- Timestamp:
- 11/29/08 00:05:39 (6 weeks ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/vimperator-plugins/trunk/gmperator.js
r25258 r25283 213 213 // --------------------------- 214 214 commands.addUserCommand(['gmli[st]','lsgm'], 'list Greasemonkey scripts', //{{{ 215 function(arg ){216 var str = '';215 function(args){ 216 var xml = <></>; 217 217 var scripts = GM_getConfig().scripts; 218 218 var reg; 219 if (arg .bang || arg == 'full'){219 if (args.bang || args.string == 'full'){ 220 220 reg = new RegExp('.*'); 221 } else if( arg){222 reg = new RegExp(arg ,'i');221 } else if(args.string){ 222 reg = new RegExp(args.string,'i'); 223 223 } 224 224 if (reg){ 225 225 for each(var s in scripts){ 226 if ( reg.test(s.name) || reg.test(s._filename)) {227 str += scriptToString(s) + '\n';226 if (reg.test(s.name) || reg.test(s._filename)) { 227 xml += scriptToString(s); 228 228 } 229 229 } … … 241 241 table.* += tr; 242 242 } 243 str += table.toSource().replace(/\n/g,'');244 } 245 echo(str,true);243 xml += table; 244 } 245 liberator.echo(xml,true); 246 246 function scriptToString(script){ 247 247 var table = <table> … … 266 266 table.* += tr; 267 267 }); 268 return table.toSource().replace(/\n/g,''); 269 } 268 return table; 269 } 270 },{ 271 bang:true 270 272 } 271 273 ); //}}} 272 274 commands.addUserCommand(['gmlo[ad]'], 'load Greasemonkey scripts', //{{{ 273 function(arg ){274 if (!arg ) {275 echoerr('Usage: :gmlo[ad][!] {name|filename}');275 function(args){ 276 if (!args.string) { 277 liberator.echoerr('Usage: :gmlo[ad][!] {name|filename}'); 276 278 return; 277 279 } … … 279 281 var script; 280 282 for (var i=0; i<scripts.length; i++){ 281 if (scripts[i]._filename == arg || scripts[i].name == arg){283 if (scripts[i]._filename == args.string || scripts[i].name == args.string){ 282 284 script = scripts[i]; 283 285 break; … … 285 287 } 286 288 if (!script) { 287 echoerr('no such a user script');289 liberator.echoerr('no such a user script'); 288 290 return; 289 } else if (liberator.plugins.gmperator.currentContainer.hasScript(script._filename) && !arg .bang){290 echoerr(script._filename + ' is already loaded!');291 } else if (liberator.plugins.gmperator.currentContainer.hasScript(script._filename) && !args.bang){ 292 liberator.echoerr(script._filename + ' is already loaded!'); 291 293 return; 292 294 } else { 293 echo('loading: ' +script._filename);295 liberator.echo('loading: ' +script._filename); 294 296 } 295 297 try { … … 298 300 GM_BrowserUI.gmSvc.wrappedJSObject.injectScripts([script],href,unsafewin,window); 299 301 } catch(e){ 300 l og(e);301 echoerr(e);302 liberator.log(e); 303 liberator.echoerr(e); 302 304 } 303 305 /* … … 310 312 */ 311 313 },{ 312 completer: function( filter) scriptsCompleter(filter,true)314 completer: function(context) scriptsCompleter(context.filter,true) 313 315 } 314 316 ); //}}} 315 317 commands.addUserCommand(['gmset'], 'change settings for Greasemonkey scripts', //{{{ 316 318 function(args){ 317 var options = [ [['-name','-n'], commands.OPTION_STRING],318 [['-include','-i'], commands.OPTION_LIST],319 [['-exclude','-e'], commands.OPTION_LIST] ];320 319 if (args.length == 0) { 321 320 if (args.bang) GM_setEnabled(!GM_getEnabled()); // toggle enable/disable Greasemonkey … … 340 339 config._save(); 341 340 },{ 342 completer: function(filter) 343 scriptsCompleter(filter, false) 341 completer: function(context) scriptsCompleter(context.filter, false), 342 options: [ 343 [['-name','-n'], commands.OPTION_STRING], 344 [['-include','-i'], commands.OPTION_LIST], 345 [['-exclude','-e'], commands.OPTION_LIST] 346 ], 347 bang:true 344 348 } 345 349 ); //}}} 346 350 commands.addUserCommand(["gmcommand", "gmcmd"], "run Greasemonkey Command", //{{{ 347 351 function(args, special) { 348 var commander = GM_BrowserUI.getCommander( getBrowser().selectedTab.linkedBrowser.contentWindow);352 var commander = GM_BrowserUI.getCommander(content); 349 353 for (var i = 0; i < commander.menuItems.length; i++) { 350 354 var menuItem = commander.menuItems[i]; 351 if (menuItem.getAttribute("label") == args ) {355 if (menuItem.getAttribute("label") == args.string) { 352 356 menuItem._commandFunc(); 353 357 return; 354 358 } 355 359 } 356 echoerr(args+" is not defined userscript command.");360 liberator.echoerr(args.string + " is not defined userscript command."); 357 361 }, 358 362 { 359 completer: function( filter) {360 var commander = GM_BrowserUI.getCommander(getBrowser().selectedTab.linkedBrowser.contentWindow);363 completer: function(context) { 364 var items = GM_BrowserUI.getCommander(content).menuItems; 361 365 var completions = []; 362 var exp = new RegExp(".*" + filter + ".*"); 363 for (var i = 0; i < commander.menuItems.length; i++) { 364 var label = commander.menuItems[i].getAttribute("label"); 365 if (!filter || exp.test(label)) { 366 completions.push([label, label]); 367 } 368 } 369 return [0, completions]; 366 var exp = new RegExp(".*" + context.filter + ".*","i"); 367 context.title = ["UserScript's Commands"]; 368 context.completions = [[items[i].getAttribute('label'),'-'] for (i in items)].filter(function(item){ 369 return this.test(item[0]); 370 }, new RegExp(".*"+context.filter+".*","i")); 370 371 } 371 372 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)