ブックマークをタグで絞り込んで開く その2
- TreeStyleTab の チェック方法を修正
に 割り当て - タグに数字が含まれていると正常動作しない問題を修正
- オートコンプリートの補完でbookmarkは 数字が 補完されるように修正
- タグを一つも指定していない場合のエラーメッセージを追加
ソースはこちら
以下差分
diff -r f8a1af9da174 tagBookmark.js --- a/tagBookmark.js Sat May 02 00:34:07 2009 +0900 +++ b/tagBookmark.js Thu Jun 25 00:31:02 2009 +0900 @@ -15,7 +15,7 @@ let openURL = function(url){ liberator.open(url, liberator.NEW_TAB); }; - let openURLs = TreeStyleTabService ? + let openURLs = ("TreeStyleTabService" in window) ? function(list){ TreeStyleTabService.readyToOpenNewTabGroup(gBrowser); gBrowser.loadTabs(["about:blank"].concat(list)); @@ -47,13 +47,27 @@ } }; + var map ={ + modes:[liberator.modules.modes.NORMAL] + ,keys:["<C-t>"] + ,desc:"open bookmark from tag" + ,action:function open_cmd(){ + commandline.open("",":tagopen /",liberator.modules.modes.EX); + } + }; + + mappings.addUserMap(map.modes,map.keys, map.desc, map.action); cmd.addUserCommand(["tagopen"],"open bookmark from tag" ,function(args){ let tags=args[0].match(/([^/]+)/g); + if(!tags){ + liberator.echoerr("no tag list!"); + return; + } let c = new Check(); let all=true,m,cnt=0; let lastTag=tags[tags.length-1]; - if(/[0-9-,]+/.test(lastTag)){ + if(/^[0-9-,]+$/.test(lastTag)){ tags=tags.slice(0,-1); for(let r in mod.util.Array.itervalues(lastTag.split(","))){ c.addRule(r); @@ -93,7 +107,7 @@ if(tags[t1]) ++tags[t1]; else tags[t1] = 1; } - bm.push({text:path,desc:r.title||"(Untitled)",ico:r.icon,index:cnt++,url:r.url}); + bm.push({text:path+cnt,desc:r.title||"(Untitled)",ico:r.icon,index:cnt++,url:r.url}); } for(let a in mod.util.Array.itervalues(q)) delete tags[a]; @@ -111,3 +125,4 @@ } }); })();