Show
Ignore:
Timestamp:
11/29/08 05:08:15 (6 weeks ago)
Author:
drry
Message:
  • fixed regexes.
  • bumped up the version.
  • et cetera.
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/vimperator-plugins/trunk/gmperator.js

    r25283 r25306  
    55 * @author         teramako teramako@gmail.com 
    66 * @namespace      http://d.hatena.ne.jp/teramako/ 
    7  * @version        0.6b 
     7 * @version        0.6c 
    88 * ==/VimperatorPlugin== 
    99 * 
     
    9191const Ci = Components.interfaces; 
    9292const gmID = '@greasemonkey.mozdev.org/greasemonkey-service;1'; 
    93 if (!Cc[gmID]) { 
     93if (!Cc[gmID]){ 
    9494    liberator.log('Greasemonkey is not installed',0); 
    9595    return; 
     
    112112                containers[panelID] = gmCon; 
    113113                this.__defineGetter__(panelID,function() gmCon); 
    114                 //liberator.log('gmpeartor: Registered: ' + panelID + ' - ' + uri, 8); 
     114                //liberator.log('gmpeartor: Registered: ' + panelID + ' - ' + uri,8); 
    115115            } 
    116116            gmCon.sandbox = sandbox; 
    117117            gmCon.addScript(script); 
    118118            gmCon.uri = uri; 
    119             triggerGMEvent('GMInjectedScript', uri, script._filename); 
     119            triggerGMEvent('GMInjectedScript',uri,script._filename); 
    120120            if (panelID == this.currentPanel){ 
    121                 triggerGMEvent('GMActiveScript', uri, script._filename); 
     121                triggerGMEvent('GMActiveScript',uri,script._filename); 
    122122            } 
    123123        }, 
     
    131131        }, 
    132132        getSandboxFromWindow: function(win){ 
    133             for each(var c in containers){ 
    134                 if(c.sandbox.window == win) return sandbox; 
     133            for each (let c in containers){ 
     134                if (c.sandbox.window == win) return sandbox; 
    135135            } 
    136136            return null; 
     
    138138        getContainersFromURI: function(uri){ 
    139139            var list = []; 
    140             for each(var c in containers){ 
     140            for each (let c in containers){ 
    141141                if (c.uri == uri) list.push(c); 
    142142            } 
    143143            return list.length > 0 ? list : null; 
    144         }, 
     144        } 
    145145    }; 
    146146    // }}} 
     
    160160        }; 
    161161    } 
    162     appendCode(gmSvc, 'evalInSandbox', function(code,uri,sandbox,script){ 
     162    appendCode(gmSvc,'evalInSandbox',function(code,uri,sandbox,script){ 
    163163        liberator.plugins.gmperator.register(uri,sandbox,script); 
    164164    }); 
    165165    function getPanelID(win){ 
    166166        var tabs = getBrowser().mTabs; 
    167         for (var i=0; i<tabs.length; i++){ 
    168             var tab = tabs.item(i); 
     167        for (let i=0,l=tabs.length; i<l; i++){ 
     168            let tab = tabs.item(i); 
    169169            if (tab.linkedBrowser.contentWindow == win){ 
    170170                return tab.linkedPanel; 
     
    183183        var container; 
    184184        if (container = containers[panelID]){ 
    185             liberator.log(panelID + '\n' + container.uri +'\n'+ container.scripts.length, 8); 
     185            liberator.log(panelID + '\n' + container.uri +'\n'+ container.scripts.length,8); 
    186186            container.scripts.forEach(function(script){ 
    187                 triggerGMEvent('GMActiveScript', container.uri, script._filename); 
     187                triggerGMEvent('GMActiveScript',container.uri,script._filename); 
    188188            }); 
    189189        } 
     
    195195     * @param {String} filename script filename 
    196196     */ 
    197     function triggerGMEvent(name, uri, filename){ 
    198         autocommands.trigger(name, uri+'\n'+filename); 
    199         liberator.log('gmpeartor: '+ name + ' ' + uri+'\n'+filename, 8); 
     197    function triggerGMEvent(name,uri,filename){ 
     198        autocommands.trigger(name,uri+'\n'+filename); 
     199        liberator.log('gmpeartor: '+ name + ' ' + uri+'\n'+filename,8); 
    200200    } 
    201201    getBrowser().mTabContainer.addEventListener('TabClose',updateGmContainerList,false); 
    202202    getBrowser().mTabBox.addEventListener('TabSelect',dispatchGMTabSelect,false); 
    203203 
    204     config.autocommands.push(["GMInjectedScript","Triggered when UserScript is injected"]); 
    205     config.autocommands.push(["GMActiveScript","Triggered when location is changed and injected UserScripts are exist"]); 
    206     config.dialogs.push(["userscriptmanager", "Greasemonkey Manager", function(){GM_openUserScriptManager();}]); 
     204    config.autocommands.push(['GMInjectedScript','Triggered when UserScript is injected']); 
     205    config.autocommands.push(['GMActiveScript','Triggered when location is changed and injected UserScripts are exist']); 
     206    config.dialogs.push(['userscriptmanager','Greasemonkey Manager',function(){GM_openUserScriptManager();}]); 
    207207    // }}} 
    208208    return manager; 
     
    212212// User Command 
    213213// --------------------------- 
    214 commands.addUserCommand(['gmli[st]','lsgm'], 'list Greasemonkey scripts', //{{{ 
     214commands.addUserCommand(['gmli[st]','lsgm'],'list Greasemonkey scripts', //{{{ 
    215215    function(args){ 
    216216        var xml = <></>; 
     
    218218        var reg; 
    219219        if (args.bang || args.string == 'full'){ 
    220             reg = new RegExp('.*'); 
    221         } else if(args.string){ 
     220            reg = new RegExp(); 
     221        } else if (args.string){ 
    222222            reg = new RegExp(args.string,'i'); 
    223223        } 
    224224        if (reg){ 
    225             for each(var s in scripts){ 
    226                 if (reg.test(s.name) || reg.test(s._filename)) { 
     225            for each (let s in scripts){ 
     226                if (reg.test(s.name) || reg.test(s._filename)){ 
    227227                    xml += scriptToString(s); 
    228228                } 
    229229            } 
    230230        } else { 
    231             var table = <table/>; 
    232             var tr; 
    233             for each(var script in scripts){ 
     231            let table = <table/>; 
     232            let tr; 
     233            for each (let script in scripts){ 
    234234                tr = <tr/>; 
    235235                if (script.enabled){ 
     
    248248                <caption class="hl-Title" style="text-align:left">{script.name}</caption> 
    249249            </table>; 
    250             [['FileName','_filename'], ['NameSpace','namespace'], ['Description','description'], 
    251              ['Includes','includes'], ['Excludes','excludes'], ['Enabled','enabled']].forEach(function(prop){ 
    252                 var tr = <tr> 
     250            [['FileName','_filename'],['NameSpace','namespace'],['Description','description'], 
     251             ['Includes','includes'],['Excludes','excludes'],['Enabled','enabled']].forEach(function(prop){ 
     252                let tr = <tr> 
    253253                    <th style="font-weight:bold;text-align:left;vertical-align:top">{prop[0]}</th> 
    254254                </tr>; 
    255                 var contents = script[prop[1]]; 
    256                 if (typeof contents == "string" || typeof contents == "boolean"){ 
     255                let contents = script[prop[1]]; 
     256                if (typeof contents == 'string' || typeof contents == 'boolean'){ 
    257257                    tr.* += <td>{contents}</td>; 
    258258                } else { 
    259                     var td = <td/>; 
    260                     for (var i=0; i<contents.length; i++){ 
     259                    let td = <td/>; 
     260                    for (let i=0,l=contents.length; i<l; i++){ 
    261261                        td.* += contents[i]; 
    262262                        if (contents[i+1]) td.* += <br/>; 
     
    272272    } 
    273273); //}}} 
    274 commands.addUserCommand(['gmlo[ad]'], 'load Greasemonkey scripts', //{{{ 
     274commands.addUserCommand(['gmlo[ad]'],'load Greasemonkey scripts', //{{{ 
    275275    function(args){ 
    276         if (!args.string) { 
     276        if (!args.string){ 
    277277            liberator.echoerr('Usage: :gmlo[ad][!] {name|filename}'); 
    278278            return; 
     
    280280        var scripts = GM_getConfig().scripts; 
    281281        var script; 
    282         for (var i=0; i<scripts.length; i++){ 
     282        for (let i=0,l=scripts.length; i<l; i++){ 
    283283            if (scripts[i]._filename == args.string || scripts[i].name == args.string){ 
    284284                script = scripts[i]; 
     
    286286            } 
    287287        } 
    288         if (!script) { 
     288        if (!script){ 
    289289            liberator.echoerr('no such a user script'); 
    290290            return; 
     
    295295            liberator.echo('loading: ' +script._filename); 
    296296        } 
     297        var href,unsafewin; 
    297298        try { 
    298             var href = buffer.URL; 
    299             var unsafewin = window.content.document.defaultView.wrappedJSObject; 
     299            href = buffer.URL; 
     300            unsafewin = window.content.document.defaultView.wrappedJSObject; 
    300301            GM_BrowserUI.gmSvc.wrappedJSObject.injectScripts([script],href,unsafewin,window); 
    301         } catch(e){ 
     302        } catch (e){ 
    302303            liberator.log(e); 
    303304            liberator.echoerr(e); 
     
    307308        window.setTimeout(function(){ 
    308309            var loadEvent = document.createEvent('Event'); 
    309             loadEvent.initEvent('load',true,true, window.content.document,1); 
     310            loadEvent.initEvent('load',true,true,window.content.document,1); 
    310311            window.content.document.dispatchEvent(loadEvent); 
    311312        },100); 
     
    315316    } 
    316317); //}}} 
    317 commands.addUserCommand(['gmset'], 'change settings for Greasemonkey scripts', //{{{ 
     318commands.addUserCommand(['gmset'],'change settings for Greasemonkey scripts', //{{{ 
    318319    function(args){ 
    319         if (args.length == 0) { 
     320        if (args.length == 0){ 
    320321            if (args.bang) GM_setEnabled(!GM_getEnabled()); // toggle enable/disable Greasemonkey 
    321322            return; 
     
    324325        var config = GM_getConfig(); 
    325326        var script; 
    326         for (var i=0; i<config.scripts.length; i++){ 
     327        for (let i=0,l=config.scripts.length; i<l; i++){ 
    327328            if (config.scripts[i]._filename == filename){ 
    328329                script = config.scripts[i]; 
     
    339340        config._save(); 
    340341    },{ 
    341         completer: function(context) scriptsCompleter(context.filter, false), 
     342        completer: function(context) scriptsCompleter(context.filter,false), 
    342343        options: [ 
    343344            [['-name','-n'],    commands.OPTION_STRING], 
     
    348349    } 
    349350); //}}} 
    350 commands.addUserCommand(["gmcommand", "gmcmd"], "run Greasemonkey Command", //{{{ 
    351     function(args, special) { 
     351commands.addUserCommand(['gmcommand','gmcmd'],'run Greasemonkey Command', //{{{ 
     352    function(args,special){ 
    352353        var commander = GM_BrowserUI.getCommander(content); 
    353         for (var i = 0; i < commander.menuItems.length; i++) { 
    354             var menuItem = commander.menuItems[i]; 
    355             if (menuItem.getAttribute("label") == args.string) { 
     354        for (let i=0,l=commander.menuItems.length; i<l; i++){ 
     355            let menuItem = commander.menuItems[i]; 
     356            if (menuItem.getAttribute('label') == args.string){ 
    356357                menuItem._commandFunc(); 
    357358                return; 
    358359            } 
    359360        } 
    360         liberator.echoerr(args.string + " is not defined userscript command."); 
     361        liberator.echoerr(args.string + ' is not defined userscript command.'); 
    361362    }, 
    362363    { 
    363         completer: function(context) { 
     364        completer: function(context){ 
    364365            var items = GM_BrowserUI.getCommander(content).menuItems; 
    365366            var completions = []; 
    366             var exp = new RegExp(".*" + context.filter + ".*","i"); 
     367            var exp = new RegExp(context.filter,'i'); 
    367368            context.title = ["UserScript's Commands"]; 
    368369            context.completions = [[items[i].getAttribute('label'),'-'] for (i in items)].filter(function(item){ 
    369370                return this.test(item[0]); 
    370             }, new RegExp(".*"+context.filter+".*","i")); 
     371            },exp); 
    371372        } 
    372373    } 
     
    387388} 
    388389GmContainer.prototype = { 
    389     addScript : function(script) { 
     390    addScript : function(script){ 
    390391        if (!this.hasScript(script)){ 
    391             return this.scripts.push(script) 
     392            return this.scripts.push(script); 
    392393        } 
    393394        return false; 
     
    395396    hasScript : function(script){ 
    396397        var filename; 
    397         switch( typeof(script) ){ 
     398        switch (typeof script){ 
    398399            case 'object': filename = script._filename; break; 
    399400            case 'string': filename = script; break; 
     
    409410    if (!filter) isAll=true; 
    410411    if (flag){ 
    411         for each(var s in scripts){ 
     412        for each (let s in scripts){ 
    412413            if (isAll || s.name.toLowerCase().indexOf(filter) == 0 || 
    413414                s._filename.indexOf(filter) == 0) 
    414415            { 
    415                 candidates.push([s.name, s.description]); 
    416                 candidates.push([s._filename, s.description]); 
     416                candidates.push([s.name,s.description]); 
     417                candidates.push([s._filename,s.description]); 
    417418            } 
    418419        } 
    419420    } else { 
    420         for each(var s in scripts){ 
     421        for each (let s in scripts){ 
    421422            if (isAll || s._filename.indexOf(filter) == 0) 
    422423            { 
    423                 candidates.push([s._filename, s.description]); 
     424                candidates.push([s._filename,s.description]); 
    424425            } 
    425426        }