diff options
author | anekos | 2012-03-17 17:10:12 +0900 |
---|---|---|
committer | anekos | 2012-03-17 20:58:17 +0900 |
commit | d58a6a192eee077ad83bb206ba4e31f32759e73f (patch) | |
tree | af849b65984f999609becede78b6a0b97f983766 | |
parent | b4d39067cd86a1ea432a4b7fc286f5c62c751b11 (diff) | |
download | vimperator-plugins-d58a6a192eee077ad83bb206ba4e31f32759e73f.tar.bz2 |
Support completion
-rwxr-xr-x | google-results.js | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/google-results.js b/google-results.js index 1118106..93089f8 100755 --- a/google-results.js +++ b/google-results.js @@ -35,10 +35,11 @@ commands.addUserCommand(["gr"], "Google Results",
function (args) {
var doc = window.content.document;
- if(args >= 1) {
+ if(args.length >= 1) {
+ var num = parseInt(args.literalArg, 10);
var results = doc.querySelectorAll("div > ol > li > div > h3 > a");
- if(args <= results.length) {
- results[args - 1].click();
+ if(num <= results.length) {
+ results[num - 1].click();
}
else {
console.error("Not that many results");
@@ -47,5 +48,16 @@ commands.addUserCommand(["gr"], else {
(doc.querySelector("div > p > a.spell") || doc.querySelector("div > button")).click();
}
- });
+ }, {
+ literal: 0,
+ completer: function (context, args) {
+ var doc = window.content.document;
+ var es = doc.querySelectorAll("div > ol > li > div > h3 > a");
+ context.title = ['Title', 'URL'];
+ context.completions = [
+ [(n + 1) + ': ' + e.textContent, e.href]
+ for ([n, e] in Iterator(Array.slice(es)))
+ ];
+ }
+ }, true);
})();
|