diff options
author | teramako | 2008-12-01 15:26:29 +0000 |
---|---|---|
committer | teramako | 2008-12-01 15:26:29 +0000 |
commit | 0b31bf8554ad77b86fcbdfa13b40f5c0301cadec (patch) | |
tree | df3733d316fb9493ea22969989ec3ea6f0f61e29 /toggler.js | |
parent | 500ccc99036da134038dface3df1eaaac0bd53bf (diff) | |
download | vimperator-plugins-0b31bf8554ad77b86fcbdfa13b40f5c0301cadec.tar.bz2 |
仕様変更
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@25649 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'toggler.js')
-rw-r--r-- | toggler.js | 52 |
1 files changed, 29 insertions, 23 deletions
@@ -1,7 +1,7 @@ /** * ==VimperatorPlugin== * @name toggler - * @version 0.1 + * @version 0.2 * @author teramako <teramako at gmail.com> * ==/VimperatorPlugin== * @@ -9,13 +9,16 @@ * * まず、最初に以下の例ように.vimperatorrcに定義する js <<EOM -liberator.globalVariables.toggler = [ - ["name",[ setting commands ]], - ["go",["set go=","set go=m","set go=b"]], - ["sb",["sbclose","sbar Console"]] - ["go_and_sb", [["set go=","sbclose"],["set go=mTb","sbar Console"]]] - ... -]; +liberator.globalVariables.toggler = { + name: [ setting commands ]], + go: ["set go=","set go=m","set go=b"], + sb: ["sbclose","sbar Console"], + go_and_sb: [ + ["set go=","sbclose"], + ["set go=mTb","sbar Console"] + ], + //... +}; EOM * * 次に @@ -52,10 +55,8 @@ Toggler.prototype = { return this.cmds[this.index]; }, list: function(){ - var data = this.cmds.map(function(cmd, i){ - return [i==this.index ? "*" : "", cmd]; - }); - liberator.echo(template.table(this.name, data), true); + var data = this.cmds.map(function(cmd, i) [i==this.index ? "*" : "", cmd], this); + return template.table(this.name, data); } }; var manager = { @@ -85,14 +86,23 @@ var manager = { liberator.execute(cmd); } }, + reload: function(){ + if (liberator.globalVariables.toggler){ + settings = {}; + for (var [name, toggler] in Iterator(liberator.globalVariables.toggler)) + this.add(name, toggler); + } + }, list: function(name){ + var xml = <></>; if (name && (name in settings)){ - settings[name].list(); - return; - } - for each (let setting in settings){ - setting.list(); + xml += settings[name].list(); + } else { + for each (let setting in settings){ + xml += setting.list(); + } } + liberator.echo(xml, true); } }; @@ -115,7 +125,7 @@ commands.addUserCommand(["toggle"],"setting toggler", [["-list","-l"], commands.OPTION_NOARG] ], completer: function(context,args){ - var filter = context.filter.split(/\s+/).pop(); + var filter = args.length > 0 ? args[args.length-1] : ""; var reg = new RegExp(filter ? "^" + flter : ""); context.title= ["Name", args.bang ? "Previous" : "Next"]; var list = []; @@ -129,11 +139,7 @@ commands.addUserCommand(["toggle"],"setting toggler", }, true); -if (liberator.globalVariables.toggler){ - liberator.globalVariables.toggler.forEach(function(toggler){ - manager.add(toggler[0], toggler[1]); - }); -} +manager.reload(); return manager; })(); |