Show
Ignore:
Timestamp:
12/02/08 00:26:29 (6 weeks ago)
Author:
teramako
Message:

仕様変更

Files:
1 modified

Legend:

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

    r25492 r25649  
    22 * ==VimperatorPlugin== 
    33 * @name toggler 
    4  * @version 0.1 
     4 * @version 0.2 
    55 * @author teramako <teramako at gmail.com> 
    66 * ==/VimperatorPlugin== 
     
    1010 * まず、最初に以下の例ように.vimperatorrcに定義する 
    1111js <<EOM 
    12 liberator.globalVariables.toggler = [ 
    13   ["name",[ setting commands ]], 
    14   ["go",["set go=","set go=m","set go=b"]], 
    15   ["sb",["sbclose","sbar Console"]] 
    16   ["go_and_sb", [["set go=","sbclose"],["set go=mTb","sbar Console"]]] 
    17   ... 
    18 ]; 
     12liberator.globalVariables.toggler = { 
     13  name: [ setting commands ]], 
     14  go: ["set go=","set go=m","set go=b"], 
     15  sb: ["sbclose","sbar Console"], 
     16  go_and_sb: [ 
     17    ["set go=","sbclose"], 
     18    ["set go=mTb","sbar Console"] 
     19  ], 
     20  //... 
     21}; 
    1922EOM 
    2023 *  
     
    5356        }, 
    5457        list: function(){ 
    55                 var data = this.cmds.map(function(cmd, i){ 
    56                         return [i==this.index ? "*" : "", cmd]; 
    57                 }); 
    58                 liberator.echo(template.table(this.name, data), true); 
     58                var data = this.cmds.map(function(cmd, i) [i==this.index ? "*" : "", cmd], this); 
     59                return template.table(this.name, data); 
    5960        } 
    6061}; 
     
    8687                } 
    8788        }, 
     89        reload: function(){ 
     90                if (liberator.globalVariables.toggler){ 
     91                        settings = {}; 
     92                        for (var [name, toggler] in Iterator(liberator.globalVariables.toggler)) 
     93                                this.add(name, toggler); 
     94                } 
     95        }, 
    8896        list: function(name){ 
     97                var xml = <></>; 
    8998                if (name && (name in settings)){ 
    90                         settings[name].list(); 
    91                         return; 
     99                        xml += settings[name].list(); 
     100                } else { 
     101                        for each (let setting in settings){ 
     102                                xml += setting.list(); 
     103                        } 
    92104                } 
    93                 for each (let setting in settings){ 
    94                         setting.list(); 
    95                 } 
     105                liberator.echo(xml, true); 
    96106        } 
    97107}; 
     
    116126                ], 
    117127                completer: function(context,args){ 
    118                         var filter = context.filter.split(/\s+/).pop(); 
     128                        var filter = args.length > 0 ? args[args.length-1] : ""; 
    119129                        var reg = new RegExp(filter ? "^" + flter : ""); 
    120130                        context.title= ["Name", args.bang ? "Previous" : "Next"]; 
     
    130140        true); 
    131141 
    132 if (liberator.globalVariables.toggler){ 
    133         liberator.globalVariables.toggler.forEach(function(toggler){ 
    134                 manager.add(toggler[0], toggler[1]); 
    135         }); 
    136 } 
     142manager.reload(); 
    137143return manager; 
    138144})();