Changeset 8202 for lang

Show
Ignore:
Timestamp:
03/20/08 19:54:09 (6 years ago)
Author:
drry
Message:

lang/javascript/vimperator-plugins/autoIgnoreKey.js
lang/javascript/vimperator-plugins/copy.js
lang/javascript/vimperator-plugins/encodingSwitcher.js
lang/javascript/vimperator-plugins/lookupDictionary.js
lang/javascript/vimperator-plugins/splitBrowser.js:

  • 正規表現を修正しました。
  • ループを整理しました。
  • 空白とインデントを修整しました。
  • ほか。
Location:
lang/javascript/vimperator-plugins
Files:
5 modified

Legend:

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

    r8191 r8202  
    1515var ignorePageList = [ 
    1616        /^https?:\/\/mail\.google\.com\//, 
    17         'http://reader.livedoor.com/reader/' 
     17        /^http:\/\/reader\.livedoor\.com\/(?:reader|public)\// 
    1818]; 
    1919document.getElementById('appcontent').addEventListener('DOMContentLoaded',function(event){ 
  • lang/javascript/vimperator-plugins/copy.js

    r8192 r8202  
    1616 * 
    1717 * If non-argument, used `default' 
    18  *  
     18 * 
    1919 * Change the value by `set' command. (only the current session) 
    2020 * :set copy_{label}=.... 
     
    3333 *        %HTMLSEL% -> to the html string of selection 
    3434 */ 
    35 var template = [ 
     35const templates = [ 
    3636        { label: 'titleAndURL',    value: '%TITLE%\n%URL%' }, 
    3737        { label: 'title',          value: '%TITLE%' }, 
     
    4141]; 
    4242// used when argument is none 
    43 var defaultValue = template[0].label; 
     43const defaultValue = templates[0].label; 
    4444vimperator.commands.add(new vimperator.Command( ['copy'], 
    4545        function(arg, special){ 
     
    9494                        if (!filter){ return templates; } 
    9595                        var candidates = []; 
    96                         for (var i=0; i<templates.length; i++){ 
    97                                 if (templates[i][0].indexOf(filter) == 0 || ('copy_'+templates[i][0]).indexOf(filter) == 0){ 
    98                                         candidates.push(templates[i]); 
     96                        templates.forEach(function(template){ 
     97                                if (template[0].indexOf(filter) == 0 || ('copy_'+template[0]).indexOf(filter) == 0){ 
     98                                        candidates.push(template); 
    9999                                } 
    100                         } 
     100                        }); 
    101101                        return candidates; 
    102102                } 
     
    124124        return str.replace(/%TITLE%/g,vimperator.buffer.title) 
    125125                  .replace(/%URL%/g,vimperator.buffer.URL) 
    126                           .replace(/%SEL%/g,sel.toString()) 
    127                           .replace(/%HTMLSEL%/g,htmlsel); 
     126                  .replace(/%SEL%/g,sel.toString()) 
     127                  .replace(/%HTMLSEL%/g,htmlsel); 
    128128} 
    129129 
    130 for (var i=0; i<template.length; i++){ 
    131         vimperator.options.add(new vimperator.Option( ['copy_'+template[i].label, template[i].label], 'string',{ 
    132                 defaultValue: template[i].value, 
    133                 shortHelp: 'Copy template: `' + vimperator.util.escapeHTML(template[i].value) + "'" 
     130templates.forEach(function(template){ 
     131        vimperator.options.add(new vimperator.Option( ['copy_'+template.label, template.label], 'string',{ 
     132                defaultValue: template.value, 
     133                shortHelp: 'Copy template: `' + vimperator.util.escapeHTML(template.value) + "'" 
    134134        })); 
    135 } 
     135}); 
    136136vimperator.completion.exTabCompletion = function (str) { 
    137137        var [count, cmd, special, args] = vimperator.commands.parseCommand(str); 
    138138        var completions = []; 
    139139        var start = 0; 
    140         var matches = str.match(/^(:*\d*)\w*$/); 
     140        var matches = str.match(/^:*\d*(?=\w*$)/); 
    141141        if (matches) { 
    142142                completions = this.command(cmd); 
    143                 start = matches[1].length; 
     143                start = matches[0].length; 
    144144        } else { 
    145145                var command = vimperator.commands.get(cmd); 
     
    154154                                } 
    155155                        } else if (command.hasName("echo") || command.hasName("echoerr") || 
    156                                  command.hasName("javascript") || command.hasName("copy")) { 
    157                                 var skip = args.match(/^(.*?)(\w*)$/); 
     156                                   command.hasName("javascript") || command.hasName("copy")) { 
     157                                var skip = args.match(/^.*?(?=\w*$)/); 
    158158                                if (skip) 
    159                                         start += skip[1].length; 
     159                                        start += skip[0].length; 
    160160                        } 
    161161                        completions = command.completer.call(this, args); 
     
    163163        } 
    164164        return [start, completions]; 
    165 } 
     165}; 
    166166})(); 
    167167 
  • lang/javascript/vimperator-plugins/encodingSwitcher.js

    r8197 r8202  
    3131if (!RDFCU) var RDFCU = Cc['@mozilla.org/rdf/container-utils;1'].getService(Ci.nsIRDFContainerUtils); 
    3232var cm = RDF.GetDataSource('rdf:charset-menu'); 
    33 var sbService = Cc['@mozilla.org/intl/stringbundle;1'].getService(Ci.nsIStringBundleService) 
     33var sbService = Cc['@mozilla.org/intl/stringbundle;1'].getService(Ci.nsIStringBundleService); 
    3434var sbCharTitle = sbService.createBundle('chrome://global/locale/charsetTitles.properties'); 
    3535CreateMenu('browser'); 
     
    3939        var res = allEnum.getNext().QueryInterface(Ci.nsIRDFResource); 
    4040        var value = res.Value; 
    41         if ( RDFCU.IsContainer(cm, res) || value.indexOf('charset.') == 0 || value.indexOf('----') ==0) { 
     41        if (RDFCU.IsContainer(cm, res) || value.indexOf('charset.') == 0 || value.indexOf('----') == 0) { 
    4242                continue; 
    4343        } 
     
    5151                encodings.push([value,label]); 
    5252        } 
    53  
    5453} 
    5554function createDetector(name){ 
     
    6160} 
    6261function getDetector(name){ 
    63         for (var i=0; i<detectors.length; i++){ 
    64                 if (detectors[i][0].toLowerCase() == name.toLowerCase()){ 
    65                         return detectors[i][0] + detectors[i][2]; 
     62        detectors.forEach(function(detector){ 
     63                if (detector[0].toLowerCase() == name.toLowerCase()){ 
     64                        return detector[0] + detector[2]; 
    6665                } 
    67         } 
     66        }); 
    6867} 
    6968function getEncoding(name){ 
    7069        for (var i=0; i<encodings.length; i++){ 
    71                 if (encodings[i][0].toLowerCase() == name.toLowerCase()){ 
    72                         return encodings[i][0]; 
     70        encodings.forEach(function(encoding){ 
     71                if (encoding[0].toLowerCase() == name.toLowerCase()){ 
     72                        return encoding[0]; 
    7373                } 
    74         } 
     74        }); 
    7575} 
    7676function isValid(array, value){ 
    77         for (var i=0; i<array.length; i++){ 
    78                 if (array[i][0].toLowerCase() == value.toLowerCase()){ 
    79                         return true; 
    80                 } 
    81         } 
    82         return false; 
     77        return array.some(function(v){ 
     78                return v[0].toLowerCase() == value.toLowerCase(); 
     79        }); 
    8380} 
    8481function completion(array, filter){ 
    8582        if (!filter) return array; 
    8683        filter = filter.toLowerCase(); 
    87         var c = []; 
    88         for (var i=0; i<array.length; i++){ 
    89                 if (array[i][0].toLowerCase().indexOf(filter) == 0){ 
    90                         c.push(array[i]); 
    91                 } 
    92         } 
    93         return c; 
     84        return array.filter(function(v){ 
     85                return v[0].toLowerCase().indexOf(filter) == 0; 
     86        }); 
    9487} 
    9588var sbCharDefault = sbService.createBundle(gPrefService.getDefaultBranch('intl.charset.').getCharPref('default')); 
    96 var DEFAULT_CHARSET = sbCharDefault.GetStringFromName('intl.charset.default'); 
     89const DEFAULT_CHARSET = sbCharDefault.GetStringFromName('intl.charset.default'); 
    9790vimperator.options.add(new vimperator.Option( ['fileencoding','fenc'], 'string', 
    9891        { 
     
    120113)); 
    121114var sbCharDetector = sbService.createBundle(gPrefService.getDefaultBranch('intl.charset.').getCharPref('detector')); 
    122 var DEFAULT_DETECTOR = createDetector(sbCharDetector.GetStringFromName('intl.charset.detector'))[0]; 
     115const DEFAULT_DETECTOR = createDetector(sbCharDetector.GetStringFromName('intl.charset.detector'))[0]; 
    123116vimperator.options.add(new vimperator.Option( ['autodetector','audet'], 'string', 
    124117        { 
     
    161154        var str = []; 
    162155        str.push('<table>'); 
    163         for (var i=0; i<list.length; i++){ 
    164                 if (reg.test(list[i][0]) || reg.test(list[i][1])){ 
     156        list.forEach(function(i){ 
     157                if (reg.test(i[0]) || reg.test(i[1])){ 
    165158                        str.push('<tr>'); 
    166                         if (current == list[i][0]){ 
    167                                 str.push('<td class="hl-Title">' + list[i][0] + '</td><td class="hl-Title">' + list[i][1] + '</td>'); 
     159                        if (current == i[0]){ 
     160                                str.push('<td class="hl-Title">' + i[0] + '</td><td class="hl-Title">' + i[1] + '</td>'); 
    168161                        } else { 
    169                                 str.push('<td>' + list[i][0] + '</td><td>' + list[i][1] + '</td>'); 
     162                                str.push('<td>' + i[0] + '</td><td>' + i[1] + '</td>'); 
    170163                        } 
    171164                        str.push('</tr>'); 
    172165                } 
    173         } 
     166        }); 
    174167        str.push('</table>'); 
    175168        vimperator.echo( str.join(''), true); 
  • lang/javascript/vimperator-plugins/lookupDictionary.js

    r8194 r8202  
    44 * @author teramako teramako@gmail.com 
    55 * @version 0.1 
    6  *  
     6 * 
    77 * Lookup web dictionary 
    88 * And show the result in the bottom of the window 
    99 */ 
    1010(function(){ 
    11 var dictionalyList = [ 
     11const dictionalyList = [ 
    1212        { 
    1313                names: ['eiji[ro]'], 
     
    7070                        } 
    7171                } 
    72         } 
     72        }; 
    7373        xhr.open('GET',url,true); 
    7474        xhr.send(null); 
     
    7979 */ 
    8080function createHTMLDocument(str){ 
    81         str = str.replace(/^.*?<html.*?>|[\r\n]*|<\/html>.*$/ig, ''); 
     81        str = str.replace(/^[\s\S]*?<html[^>]*>|[\r\n]+|<\/html\s*>[\s\S]*$/ig, ''); 
    8282        var htmlFragment = document.implementation.createDocument(null,'html',null); 
    8383        var range = document.createRange(); 
     
    9999                if (nodesSnapshot.snapshotLength == 0) return; 
    100100                result = document.createElementNS(null,'div'); 
    101                 for (var i=0; i<nodesSnapshot.snapshotLength; i++) result.appendChild(nodesSnapshot.snapshotItem(i)); 
     101                for (var i=0; i<nodesSnapshot.snapshotLength; result.appendChild(nodesSnapshot.snapshotItem(i++))); 
    102102        } else { 
    103103                var node = doc.evaluate(xpath,doc.documentElement,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null); 
  • lang/javascript/vimperator-plugins/splitBrowser.js

    r8195 r8202  
    4545)); 
    4646vimperator.commands.add(new vimperator.Command(['on[ly]'], 
    47   function(){ 
    48     if (SplitBrowser.browsers.length > 0) { 
    49       SplitBrowser.removeAllSubBrowsers(); // 分割したブラウザをすべて閉じる 
    50       // 好みで↑↓選ぼう 
    51       // SplitBrowser.gatherSubBrowsers(); // すべての分割したブラウザをタブに集める 
    52     } else { 
    53       vimperator.echoerr('SubBrowser is none'); 
    54     } 
    55   },{ 
    56     usage: ['on[ly]'], 
    57     shortHelp: 'close split browsers', 
    58     help: 'Close all split browsers' 
    59   } 
     47        function(){ 
     48                if (SplitBrowser.browsers.length > 0) { 
     49                        SplitBrowser.removeAllSubBrowsers(); // 分割したブラウザをすべて閉じる 
     50                        // 好みで↑↓選ぼう 
     51                        // SplitBrowser.gatherSubBrowsers(); // すべての分割したブラウザをタブに集める 
     52                } else { 
     53                        vimperator.echoerr('SubBrowser is none'); 
     54                } 
     55        },{ 
     56                usage: ['on[ly]'], 
     57                shortHelp: 'close split browsers', 
     58                help: 'Close all split browsers' 
     59        } 
    6060)); 
    6161 
     
    9494                                        if (browsers[i+1]){ 
    9595                                                SplitBrowser.getSubBrowserById(browsers[i+1].id).browser.contentWindow.focus(); 
    96                                                 return true; 
    9796                                        } else { 
    9897                                                gBrowser.contentWindow.focus(); 
    99                                                 return true; 
    10098                                        } 
     99                                        return true; 
    101100                                } 
    102101                        } 
     
    198197)); //}}} 
    199198/** 
    200  * openSubBrowser at ExtendedHint mode  
     199 * openSubBrowser at ExtendedHint mode 
    201200 * @param {Number} aPosition split direction 
    202201 */ 
     
    214213        var subBrowser = openSubBrowser(urls[0], aPosition); 
    215214        if (urls.length > 1){ 
    216                 for (var i=1; i<urls.length; i++){ 
    217                         subBrowser.browser.addTab(urls[i],null,null,null); 
    218                 } 
     215                for (var i=1, l=urls.length; i < l; subBrowser.browser.addTab(urls[i++],null,null,null)) 
     216                        ; 
    219217        } 
    220218} //}}} 
     
    225223 */ 
    226224function openSubBrowser(url, aPosition){ // {{{ 
    227         var subBrowser = SplitBrowser.addSubBrowser(url, null, aPosition ? aPosition : SplitBrowser.POSITION_TOP); 
     225        var subBrowser = SplitBrowser.addSubBrowser(url, null, aPosition || SplitBrowser.POSITION_TOP); 
    228226        subBrowser.addEventListener('load',function(){ 
    229227                subBrowser.removeEventListener('load',arguments.callee,true); 
     
    241239        if (urls.length == 0) { return false; } 
    242240        if (!where) { where = vimperator.CURRENT_TAB; } 
    243          
     241 
    244242        var url = typeof urls[0] == 'string' ? urls[0] : urls[0][0]; 
    245243        var postdata = typeof urls[0] == 'string' ? null : urls[0][1]; 
     
    261259                        window.open(); 
    262260                        var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] 
    263                                 .getService(Components.interfaces.nsIWindowMediator); 
     261                                           .getService(Components.interfaces.nsIWindowMediator); 
    264262                        whichwindow = vm.getMostRecentWindow('navigator:browser'); 
    265263                        whichwindow.loadURI(url, null, postdata); 
     
    269267                        return false; 
    270268        } 
    271         for (var i=1; i<urls.length; i++){ 
     269        for (var i=1, l=urls.length; i < l; i++){ 
    272270                url = typeof urls[i] == 'string' ? urls[i] : urls[i][0]; 
    273271                postdata = typeof urls[i] == 'string' ? null : urls[i][1]; 
    274272                whichwindow.SplitBrowser.activeBrowser.addTab(url, null, null, postdata); 
    275273        } 
    276 } //}}} 
     274}; //}}} 
    277275})(); 
    278276