-
Notifications
You must be signed in to change notification settings - Fork 123
/
Copy pathspeeddial.js
41 lines (40 loc) · 1.73 KB
/
speeddial.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
// Vimperator plugin: "SpeedDial"
// Last Change: 22-Oct-2008. Jan 2008
// License: Creative Commons
// Maintainer: mattn <[email protected]> - http://mattn.kaoriya.net/
//
// Commands:
// :sd 1
// open url registered as 1 in current tab.
// :sd! 1
// open url registered as 1 in new tab.
// Note:
// you can able to complete urls with tab key.
(function() {
const pref = Components.classes["@mozilla.org/preferences;1"].getService(Components.interfaces.nsIPrefBranch);
var nsISupportsString = Components.interfaces.nsISupportsWString ||
Components.interfaces.nsISupportsString;
liberator.modules.commands.addUserCommand(["sd", "speeddial"], "speeddial",
function(args){
var arg = args.string;
if (arg.match(/^[0-9]+$/))
arg = pref.getComplexValue("extensions.speeddial.thumbnail-" + arg + "-url", nsISupportsString).data;
else
if (arg.length == 0)
arg = "chrome://speeddial/content/speeddial.xul";
liberator.open(arg, args.bang ? liberator.NEW_TAB : liberator.CURRENT_TAB);
}, {
bang: true,
completer: function(filter) {
candidates = [];
for (var n = 1; n <= 9; n++) {
var url = pref.getComplexValue("extensions.speeddial.thumbnail-" + n + "-url", nsISupportsString).data;
var label = pref.getComplexValue("extensions.speeddial.thumbnail-" + n + "-label", nsISupportsString).data;
if (url && label) candidates.push([url, n + ":" + label]);
}
return [0,candidates];
}
}
);
})();
// vim:sw=4 ts=4 et: