-
Notifications
You must be signed in to change notification settings - Fork 123
/
atodeyomu.js
57 lines (53 loc) · 1.78 KB
/
atodeyomu.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// PLUGIN_INFO//{{{
var PLUGIN_INFO = xml`
<VimperatorPlugin>
<name>{NAME}</name>
<description>atodeyomu</description>
<author mail="[email protected]" homepage="http://d.hatena.ne.jp/hogelog/">hogelog</author>
<version>0.0.1</version>
<minVersion>2.2</minVersion>
<maxVersion>2.3</maxVersion>
<updateURL>https://github.com/vimpr/vimperator-plugins/raw/master/atodeyomu.js</updateURL>
<license>public domain</license>
<detail><![CDATA[
]]></detail>
</VimperatorPlugin>`;
//}}}
(function(){
var yomudata = storage.newMap("atodeyomu", {store: true});
if(!yomudata.get("yomulist"))
yomudata.set("yomulist", {});
var yomulist = yomudata.get("yomulist");
__context__.funcs = {
yomulist: function() yomulist,
onload: function()
{
let url = content.location.href;
if (yomulist[url]) {
delete yomulist[url];
}
},
install: function() gBrowser.addEventListener("load", __context__.funcs.onload, true),
uninstall: function() gBrowser.removeEventListener("load", __context__.funcs.onload, true),
};
__context__.funcs.install();
commands.addUserCommand(["atode"], "atode yomu",
function(args){
yomulist[content.location.href] = args.literalArg || content.document.title;
}, {
literal: 0
}, true);
commands.addUserCommand(["yomu"], "ima yomu",
function(args){
let url = args.literalArg;
let where = options.get("activate").has("tabopen") ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB;
liberator.open(url, where);
}, {
literal: 0,
completer: function(context, args){
context.title = ["yomu"];
context.completions = [[url, yomulist[url]] for(url in yomulist)];
},
}, true);
})();
// vim: fdm=marker sw=4 ts=4 et: